From 33ab055b433294f3458a3869412cb2514b913473 Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Tue, 12 Aug 2025 11:21:10 +0900 Subject: [PATCH] Add project Basic formatting applied. Unnecessary comments have been removed. Suspicious code is covered by TODO. --- .../ClientApi/DataTypes/ГисАдресныйОбъект.cs | 35 + Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs | 140 + .../DataTypes/ГисДоговорыИПриборы.cs | 197 + Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs | 24 + .../ClientApi/DataTypes/ГисЗданиеПомещение.cs | 8 + .../ClientApi/DataTypes/ГисКонтрагент.cs | 72 + .../ClientApi/DataTypes/ГисЛицевойСчет.cs | 112 + .../ClientApi/DataTypes/ГисОрганизация.cs | 57 + .../ClientApi/DataTypes/ГисПоказания.cs | 43 + .../ClientApi/DataTypes/ГисПомещение.cs | 21 + .../ClientApi/DataTypes/ГисПриборУчета.cs | 102 + .../DebtRequestsApi/HcsDebtRequestsApi.cs | 106 + .../DebtRequestsApi/HcsDebtRequestsMethod.cs | 135 + .../DebtRequestsApi/HcsDebtResponse.cs | 40 + .../HcsDebtResponseImporter.cs | 141 + .../DebtRequestsApi/HcsDebtSubrequest.cs | 39 + .../HcsDebtSubrequestExporter.cs | 251 + .../DeviceMeteringApi/HcsDeviceMeteringApi.cs | 27 + .../HcsDeviceMeteringMethod.cs | 118 + .../HcsDeviceMeteringUtil.cs | 22 + .../HcsMethodImportMeteringDevicesValues.cs | 76 + .../HcsFileStoreServiceApi.cs | 394 + .../ClientApi/FileStoreServiceApi/RFC2047.cs | 374 + Hcs.Client/ClientApi/HcsActionLogger.cs | 19 + Hcs.Client/ClientApi/HcsCertificateHelper.cs | 96 + Hcs.Client/ClientApi/HcsClient.cs | 70 + Hcs.Client/ClientApi/HcsClientConfig.cs | 95 + Hcs.Client/ClientApi/HcsConsoleLogger.cs | 12 + Hcs.Client/ClientApi/HcsConstants.cs | 119 + Hcs.Client/ClientApi/HcsException.cs | 29 + Hcs.Client/ClientApi/HcsFile.cs | 55 + Hcs.Client/ClientApi/HcsFileStoreContext.cs | 37 + .../ClientApi/HcsFileWriterMessageCapture.cs | 45 + .../ClientApi/HcsMemoryMessageCapture.cs | 49 + .../ClientApi/HcsNoResultsRemoteException.cs | 26 + Hcs.Client/ClientApi/HcsParallel.cs | 76 + Hcs.Client/ClientApi/HcsPartialStream.cs | 80 + Hcs.Client/ClientApi/HcsRemoteException.cs | 60 + .../ClientApi/HcsRestartTimeoutException.cs | 15 + Hcs.Client/ClientApi/HcsUtil.cs | 91 + Hcs.Client/ClientApi/HcsX509Tools.cs | 229 + .../HcsContractRegistryDownloader.cs | 132 + .../HcsHouseManagementApi.cs | 189 + .../HcsHouseManagementMethod.cs | 162 + .../HcsHouseManagementNsi.cs | 90 + .../HcsMethodExportAccountData.cs | 190 + .../HcsMethodExportHouse.cs | 101 + .../HcsMethodExportMeteringDeviceData.cs | 165 + ...sMethodExportSupplyResourceContractData.cs | 297 + ...portSupplyResourceContractObjectAddress.cs | 125 + .../HcsMethodImportAccountData.cs | 187 + .../HcsMethodImportMeteringDeviceData.cs | 207 + ...sMethodImportSupplyResourceContractData.cs | 386 + ...portSupplyResourceContractObjectAddress.cs | 133 + ...thodImportSupplyResourceContractProject.cs | 80 + Hcs.Client/ClientApi/IHcsLogger.cs | 10 + Hcs.Client/ClientApi/IHcsMessageCapture.cs | 11 + .../HcsMethodExportOrgRegistry.cs | 133 + .../HcsOrgRegistryCommonApi.cs | 48 + .../HcsOrgRegistryCommonMethod.cs | 112 + .../GostSigningEndpointBehavior.cs | 34 + .../GostSigningMessageInspector.cs | 120 + .../RemoteCaller/HcsPagedResultState.cs | 66 + .../RemoteCaller/HcsRemoteCallMethod.cs | 373 + .../RemoteCaller/HcsRequestHelper.cs | 84 + .../RemoteCaller/HcsServicePointConfig.cs | 18 + Hcs.Client/ClientApi/RemoteCaller/IHcsAck.cs | 8 + .../ClientApi/RemoteCaller/IHcsFault.cs | 8 + .../RemoteCaller/IHcsGetStateResult.cs | 7 + .../ClientApi/RemoteCaller/IHcsHeaderType.cs | 10 + ...btRequests.v14_5_0_1.AckRequest.datasource | 10 + ...Requests.v14_5_0_1.ResultHeader.datasource | 10 + ..._0_1.exportDebtRequestsResponse.datasource | 10 + ...1.exportDebtSubrequestsResponse.datasource | 10 + ...ests.v14_5_0_1.getStateResponse.datasource | 10 + ...quests.v14_5_0_1.getStateResult.datasource | 10 + ..._0_1.importDebtRequestsResponse.datasource | 10 + ...4_5_0_1.importResponsesResponse.datasource | 10 + .../Reference.cs | 5525 ++ .../Reference.svcmap | 35 + .../configuration.svcinfo | 11 + .../configuration91.svcinfo | 310 + .../hcs-base.xsd | 861 + .../hcs-debt-requests-service-async.wsdl | 163 + .../hcs-debt-requests-types.xsd | 1441 + .../hcs-nsi-base.xsd | 427 + .../xmldsig-core-schema.xsd | 213 + ...ceMetering.v14_5_0_1.AckRequest.datasource | 10 + ...Metering.v14_5_0_1.ResultHeader.datasource | 10 + ...rtMeteringDeviceHistoryResponse.datasource | 10 + ...ring.v14_5_0_1.getStateResponse.datasource | 10 + ...tering.v14_5_0_1.getStateResult.datasource | 10 + ...ortMeteringDeviceValuesResponse.datasource | 10 + .../Reference.cs | 5309 ++ .../Reference.svcmap | 36 + .../configuration.svcinfo | 11 + .../configuration91.svcinfo | 310 + .../hcs-base.xsd | 861 + .../hcs-device-metering-service-async.wsdl | 106 + .../hcs-device-metering-types.xsd | 997 + .../hcs-metering-device-base.xsd | 159 + .../hcs-nsi-base.xsd | 427 + .../xmldsig-core-schema.xsd | 213 + ...Management.v14_5_0_1.AckRequest.datasource | 10 + ...nagement.v14_5_0_1.ResultHeader.datasource | 10 + ...v14_5_0_1.demolishHouseResponse.datasource | 10 + ...5_0_1.exportAccountDataResponse.datasource | 10 + ...countIndividualServicesResponse.datasource | 10 + ...portBriefApartmentHouseResponse.datasource | 10 + ...1.exportBriefBasicHouseResponse.datasource | 10 + ....exportBriefLivingHouseResponse.datasource | 10 + ...BriefSocialHireContractResponse.datasource | 10 + ...fSupplyResourceContractResponse.datasource | 10 + ...14_5_0_1.exportCAChDataResponse.datasource | 10 + ...4_5_0_1.exportHouseDataResponse.datasource | 10 + ...xportMeteringDeviceDataResponse.datasource | 10 + ...0_1.exportOwnerDecisionResponse.datasource | 10 + ..._0_1.exportOwnerRefusalResponse.datasource | 10 + ...xportRolloverStatusCAChResponse.datasource | 10 + ..._1.exportStatusCAChDataResponse.datasource | 10 + ...sPublicPropertyContractResponse.datasource | 10 + ...plyResourceContractDataResponse.datasource | 10 + ...ntractObjectAddressDataResponse.datasource | 10 + ...0_1.exportVotingMessageResponse.datasource | 10 + ..._1.exportVotingProtocolResponse.datasource | 10 + ...ment.v14_5_0_1.getStateResponse.datasource | 10 + ...gement.v14_5_0_1.getStateResult.datasource | 10 + ...5_0_1.importAccountDataResponse.datasource | 10 + ...countIndividualServicesResponse.datasource | 10 + ...5_0_1.importCharterDataResponse.datasource | 10 + ..._0_1.importContractDataResponse.datasource | 10 + ...tExternalVotingProtocolResponse.datasource | 10 + ..._0_1.importHouseESPDataResponse.datasource | 10 + ..._0_1.importHouseOMSDataResponse.datasource | 10 + ...5_0_1.importHouseUODataResponse.datasource | 10 + ...mportMeteringDeviceDataResponse.datasource | 10 + ....importNotificationDataResponse.datasource | 10 + ...0_1.importOwnerDecisionResponse.datasource | 10 + ..._0_1.importOwnerRefusalResponse.datasource | 10 + ...tPublicPropertyContractResponse.datasource | 10 + ...plyResourceContractDataResponse.datasource | 10 + ...ntractObjectAddressDataResponse.datasource | 10 + ...urceContractProjectDataResponse.datasource | 10 + ...0_1.importVotingMessageResponse.datasource | 10 + ..._1.importVotingProtocolResponse.datasource | 10 + .../Reference.cs | 53183 ++++++++++++++++ .../Reference.svcmap | 42 + .../configuration.svcinfo | 11 + .../configuration91.svcinfo | 310 + .../hcs-account-base.xsd | 82 + .../hcs-base.xsd | 861 + .../hcs-bills-base.xsd | 93 + .../hcs-house-management-service-async.wsdl | 1049 + .../hcs-house-management-types.xsd | 19555 ++++++ .../hcs-individual-registry-base.xsd | 157 + .../hcs-metering-device-base.xsd | 159 + .../hcs-nsi-base.xsd | 427 + .../hcs-organizations-base.xsd | 121 + .../hcs-organizations-registry-base.xsd | 265 + .../hcs-premises-base.xsd | 73 + .../xmldsig-core-schema.xsd | 213 + ...stryCommon.v14_5_0_1.AckRequest.datasource | 10 + ...ryCommon.v14_5_0_1.ResultHeader.datasource | 10 + ..._0_1.exportDataProviderResponse.datasource | 10 + ...1.exportDelegatedAccessResponse.datasource | 10 + ...tObjectsDelegatedAccessResponse.datasource | 10 + ...5_0_1.exportOrgRegistryResponse.datasource | 10 + ...erritoryDelegatedAccessResponse.datasource | 10 + ...mmon.v14_5_0_1.getStateResponse.datasource | 10 + ...Common.v14_5_0_1.getStateResult.datasource | 10 + .../Reference.cs | 4647 ++ .../Reference.svcmap | 38 + .../configuration.svcinfo | 11 + .../configuration91.svcinfo | 310 + .../hcs-base.xsd | 861 + .../hcs-nsi-base.xsd | 427 + .../hcs-organizations-base.xsd | 121 + .../hcs-organizations-registry-base.xsd | 265 + ...zations-registry-common-service-async.wsdl | 181 + ...cs-organizations-registry-common-types.xsd | 594 + .../hcs-premises-base.xsd | 73 + .../xmldsig-core-schema.xsd | 213 + .../Asn1/Ber/Asn18BitCharString.cs | 21 + .../Asn1/Ber/Asn1BerDecodeBuffer.cs | 400 + .../Asn1/Ber/Asn1BerDecodeContext.cs | 72 + .../Asn1/Ber/Asn1BerEncodeBuffer.cs | 305 + .../Asn1/Ber/Asn1BerInputStream.cs | 41 + .../Asn1/Ber/Asn1BerMessageDumpHandler.cs | 135 + .../Asn1/Ber/Asn1BerOutputStream.cs | 277 + .../Asn1/Ber/Asn1BigInteger.cs | 136 + .../Asn1/Ber/Asn1BitString.cs | 454 + .../Asn1/Ber/Asn1BmpString.cs | 124 + .../GostCryptography/Asn1/Ber/Asn1Boolean.cs | 101 + .../Asn1/Ber/Asn1CerInputStream.cs | 12 + .../Asn1/Ber/Asn1CerOutputStream.cs | 236 + .../Asn1/Ber/Asn1CharRange.cs | 46 + .../GostCryptography/Asn1/Ber/Asn1CharSet.cs | 35 + .../Asn1/Ber/Asn1CharString.cs | 153 + .../GostCryptography/Asn1/Ber/Asn1Choice.cs | 52 + .../Asn1/Ber/Asn1ChoiceExt.cs | 23 + .../Asn1/Ber/Asn1DecodeBuffer.cs | 325 + .../Asn1/Ber/Asn1DerDecodeBuffer.cs | 17 + .../Asn1/Ber/Asn1DerEncodeBuffer.cs | 16 + .../Asn1/Ber/Asn1DerInputStream.cs | 42 + .../Asn1/Ber/Asn1DiscreteCharSet.cs | 58 + .../Asn1/Ber/Asn1EncodeBuffer.cs | 84 + .../Asn1/Ber/Asn1Enumerated.cs | 80 + .../Asn1/Ber/Asn1GeneralString.cs | 35 + .../Asn1/Ber/Asn1GeneralizedTime.cs | 343 + .../Asn1/Ber/Asn1GraphicString.cs | 35 + .../Asn1/Ber/Asn1Ia5String.cs | 35 + .../GostCryptography/Asn1/Ber/Asn1Integer.cs | 91 + .../Asn1/Ber/Asn1MessageBuffer.cs | 24 + .../GostCryptography/Asn1/Ber/Asn1Null.cs | 48 + .../Asn1/Ber/Asn1NumericString.cs | 35 + .../Asn1/Ber/Asn1ObjectDescriptor.cs | 35 + .../Asn1/Ber/Asn1ObjectIdentifier.cs | 133 + .../Asn1/Ber/Asn1OctetString.cs | 234 + .../GostCryptography/Asn1/Ber/Asn1OpenExt.cs | 86 + .../GostCryptography/Asn1/Ber/Asn1OpenType.cs | 102 + .../Asn1/Ber/Asn1OutputStream.cs | 86 + .../Asn1/Ber/Asn1PrintableString.cs | 35 + .../GostCryptography/Asn1/Ber/Asn1Real.cs | 370 + .../Asn1/Ber/Asn1RelativeOid.cs | 71 + .../GostCryptography/Asn1/Ber/Asn1RunTime.cs | 151 + .../GostCryptography/Asn1/Ber/Asn1Status.cs | 7 + .../Asn1/Ber/Asn1T61String.cs | 35 + .../GostCryptography/Asn1/Ber/Asn1Tag.cs | 106 + .../GostCryptography/Asn1/Ber/Asn1Time.cs | 554 + .../Asn1/Ber/Asn1TraceHandler.cs | 46 + .../GostCryptography/Asn1/Ber/Asn1Type.cs | 167 + .../Asn1/Ber/Asn1UniversalString.cs | 224 + .../GostCryptography/Asn1/Ber/Asn1UtcTime.cs | 358 + .../Asn1/Ber/Asn1Utf8String.cs | 98 + .../GostCryptography/Asn1/Ber/Asn1Util.cs | 337 + .../GostCryptography/Asn1/Ber/Asn1Value.cs | 169 + .../Asn1/Ber/Asn1VarWidthCharString.cs | 21 + .../Asn1/Ber/Asn1VideotexString.cs | 35 + .../Asn1/Ber/Asn1VisibleString.cs | 35 + .../GostCryptography/Asn1/Ber/BigInteger.cs | 809 + .../Asn1/Ber/IAsn1InputStream.cs | 12 + .../Asn1/Ber/IAsn1NamedEventHandler.cs | 9 + .../Asn1/Ber/IAsn1TaggedEventHandler.cs | 9 + .../GostCryptography/Asn1/Ber/IAsn1Type.cs | 12 + .../GostCryptography/Asn1/Ber/IntHolder.cs | 16 + .../GostCryptography/Asn1/Ber/Tokenizer.cs | 156 + .../Asn1/Gost/GostAsn1Choice.cs | 72 + .../Gost_28147_89/Gost_28147_89_BlobParams.cs | 69 + .../Gost_28147_89/Gost_28147_89_Constants.cs | 10 + .../Gost_28147_89_EncryptedKey.cs | 82 + .../Gost/Gost_28147_89/Gost_28147_89_Iv.cs | 35 + .../Gost/Gost_28147_89/Gost_28147_89_Key.cs | 44 + .../Gost_28147_89_KeyExchangeInfo.cs | 151 + .../Gost_28147_89/Gost_28147_89_KeyWrap.cs | 53 + .../Gost_28147_89_KeyWrapParams.cs | 66 + .../Gost/Gost_28147_89/Gost_28147_89_Mac.cs | 44 + .../Gost_28147_89/Gost_28147_89_Params.cs | 54 + .../Gost/Gost_R3410/Gost_R3410_KeyExchange.cs | 161 + .../Gost_R3410_KeyExchangeParams.cs | 157 + .../Gost_R3410/Gost_R3410_KeyTransport.cs | 60 + .../Gost/Gost_R3410/Gost_R3410_PublicKey.cs | 42 + .../Gost_R3410/Gost_R3410_PublicKeyParams.cs | 82 + .../Gost_R3410/Gost_R3410_PublicKeyType.cs | 9 + .../Gost_R3410/Gost_R3410_TransportParams.cs | 83 + .../Gost_R3410_2001_Constants.cs | 25 + .../Gost_R3410_2001_DhPublicKeyType.cs | 13 + .../Gost_R3410_2001_KeyExchange.cs | 17 + .../Gost_R3410_2001_KeyExchangeParams.cs | 27 + .../Gost_R3410_2001_PublicKey.cs | 13 + .../Gost_R3410_2001_PublicKeyParams.cs | 8 + .../Gost_R3410_2001_PublicKeyType.cs | 13 + .../Gost_R3411_2001_DigestParams.cs | 8 + .../Gost_R3411_2001_DigestParamsType.cs | 13 + .../Gost_R3410_2012_256_Constants.cs | 25 + .../Gost_R3410_2012_256_DhPublicKeyType.cs | 13 + .../Gost_R3410_2012_256_KeyExchange.cs | 17 + .../Gost_R3410_2012_256_KeyExchangeParams.cs | 27 + .../Gost_R3410_2012_256_PublicKey.cs | 13 + .../Gost_R3410_2012_256_PublicKeyParams.cs | 8 + .../Gost_R3410_2012_256_PublicKeyType.cs | 13 + .../Gost_R3411_2012_256_DigestParams.cs | 8 + .../Gost_R3411_2012_256_DigestParamsType.cs | 13 + .../Gost_R3410_2012_512_Constants.cs | 25 + .../Gost_R3410_2012_512_DhPublicKeyType.cs | 13 + .../Gost_R3410_2012_512_KeyExchange.cs | 17 + .../Gost_R3410_2012_512_KeyExchangeParams.cs | 27 + .../Gost_R3410_2012_512_PublicKey.cs | 13 + .../Gost_R3410_2012_512_PublicKeyParams.cs | 8 + .../Gost_R3410_2012_512_PublicKeyType.cs | 13 + .../Gost_R3411_2012_512_DigestParams.cs | 8 + .../Gost_R3411_2012_512_DigestParamsType.cs | 13 + .../Gost_R3410_94/Gost_R3410_94_Constants.cs | 25 + .../Gost_R3410_94_DhPublicKeyType.cs | 13 + .../Gost_R3410_94_KeyExchange.cs | 17 + .../Gost_R3410_94_KeyExchangeParams.cs | 27 + .../Gost_R3410_94/Gost_R3410_94_PublicKey.cs | 13 + .../Gost_R3410_94_PublicKeyParams.cs | 8 + .../Gost_R3410_94_PublicKeyType.cs | 13 + .../Gost_R3411_94_DigestParams.cs | 8 + .../Gost_R3411_94_DigestParamsType.cs | 13 + .../Gost_R3411/Gost_R3411_DigestParams.cs | 8 + .../Gost_R3411/Gost_R3411_DigestParamsType.cs | 9 + .../Asn1/Gost/PublicKey/AlgorithmId.cs | 17 + .../Gost/PublicKey/AlgorithmIdentifier.cs | 100 + .../Asn1/Gost/PublicKey/PkiConstants.cs | 116 + .../Gost/PublicKey/SubjectPublicKeyInfo.cs | 53 + .../GostCryptography/Asn1/NullParams.cs | 8 + Hcs.Client/GostCryptography/Asn1/OidValue.cs | 99 + .../Base/GostAsymmetricAlgorithm.cs | 54 + .../Base/GostExternalAsymmetricAlgorithm.cs | 53 + Hcs.Client/GostCryptography/Base/GostHMAC.cs | 42 + .../Base/GostHashAlgorithm.cs | 42 + .../Base/GostKeyExchangeAlgorithm.cs | 74 + .../Base/GostKeyExchangeDeformatter.cs | 18 + .../Base/GostKeyExchangeExportMethod.cs | 18 + .../Base/GostKeyExchangeFormatter.cs | 18 + .../Base/GostKeyedHashAlgorithm.cs | 42 + Hcs.Client/GostCryptography/Base/GostPrf.cs | 47 + .../Base/GostSignatureDeformatter.cs | 77 + .../Base/GostSignatureDescription.cs | 11 + .../Base/GostSignatureFormatter.cs | 72 + .../Base/GostSymmetricAlgorithm.cs | 39 + .../GostCryptography/Base/IGostAlgorithm.cs | 18 + .../GostCryptography/Base/ProviderType.cs | 81 + .../Config/GostCryptoConfig.cs | 227 + .../GostCryptography/ExceptionUtility.cs | 48 + .../Gost_28147_89_CryptoTransform.cs | 281 + .../Gost_28147_89_CryptoTransformMode.cs | 8 + .../Gost_28147_89_ImitHashAlgorithm.cs | 148 + .../Gost_28147_89_ImitHashAlgorithmBase.cs | 25 + .../Gost_28147_89_SymmetricAlgorithm.cs | 433 + .../Gost_28147_89_SymmetricAlgorithmBase.cs | 58 + .../Gost_R3410_2001_AsymmetricAlgorithm.cs | 127 + ...R3410_2001_EphemeralAsymmetricAlgorithm.cs | 107 + .../Gost_R3410_2001_KeyExchangeAlgorithm.cs | 18 + .../Gost_R3410_2001_KeyExchangeDeformatter.cs | 24 + .../Gost_R3410_2001_KeyExchangeFormatter.cs | 31 + ...ost_R3410_2001_KeyExchangeXmlSerializer.cs | 20 + .../Gost_R3410_2001_SignatureDescription.cs | 20 + ...Gost_R3410_2012_256_AsymmetricAlgorithm.cs | 122 + ...0_2012_256_EphemeralAsymmetricAlgorithm.cs | 107 + ...ost_R3410_2012_256_KeyExchangeAlgorithm.cs | 18 + ...t_R3410_2012_256_KeyExchangeDeformatter.cs | 24 + ...ost_R3410_2012_256_KeyExchangeFormatter.cs | 31 + ...R3410_2012_256_KeyExchangeXmlSerializer.cs | 20 + ...ost_R3410_2012_256_SignatureDescription.cs | 20 + ...Gost_R3410_2012_512_AsymmetricAlgorithm.cs | 122 + ...0_2012_512_EphemeralAsymmetricAlgorithm.cs | 107 + ...ost_R3410_2012_512_KeyExchangeAlgorithm.cs | 18 + ...t_R3410_2012_512_KeyExchangeDeformatter.cs | 24 + ...ost_R3410_2012_512_KeyExchangeFormatter.cs | 31 + ...R3410_2012_512_KeyExchangeXmlSerializer.cs | 20 + ...ost_R3410_2012_512_SignatureDescription.cs | 20 + .../Gost_R3410_AsymmetricAlgorithm.cs | 636 + .../Gost_R3410_AsymmetricAlgorithmBase.cs | 81 + ...Gost_R3410_EphemeralAsymmetricAlgorithm.cs | 116 + .../Gost_R3410_KeyExchangeAlgorithm.cs | 163 + .../Gost_R3410_KeyExchangeDeformatter.cs | 104 + .../Gost_R3410_KeyExchangeFormatter.cs | 162 + .../Gost_R3410_KeyExchangeXmlSerializer.cs | 201 + .../Gost_R3411/Gost_R3411_2012_256_HMAC.cs | 51 + .../Gost_R3411_2012_256_HashAlgorithm.cs | 54 + .../Gost_R3411/Gost_R3411_2012_256_PRF.cs | 50 + .../Gost_R3411/Gost_R3411_2012_512_HMAC.cs | 51 + .../Gost_R3411_2012_512_HashAlgorithm.cs | 54 + .../Gost_R3411/Gost_R3411_2012_512_PRF.cs | 49 + .../Gost_R3411/Gost_R3411_94_HMAC.cs | 56 + .../Gost_R3411/Gost_R3411_94_HashAlgorithm.cs | 59 + .../Gost_R3411/Gost_R3411_94_PRF.cs | 49 + .../Gost_R3411/Gost_R3411_HMAC.cs | 138 + .../Gost_R3411/Gost_R3411_HashAlgorithm.cs | 89 + .../Gost_R3411/Gost_R3411_PRF.cs | 167 + Hcs.Client/GostCryptography/LICENSE | 21 + .../GostCryptography/Native/Constants.cs | 409 + .../GostCryptography/Native/CryptoApi.cs | 154 + .../Native/CryptoApiHelper.cs | 1312 + .../Native/ISafeHandleProvider.cs | 32 + .../Native/SafeHashHandleImpl.cs | 31 + .../Native/SafeKeyHandleImpl.cs | 36 + .../Native/SafeProvHandleImpl.cs | 76 + .../GostCryptography/Pkcs/GostSignedCms.cs | 176 + .../Properties/Resources.Designer.cs | 864 + .../Properties/Resources.resx | 387 + Hcs.Client/GostCryptography/README.md | 45 + .../Reflection/CryptographyUtils.cs | 57 + .../Reflection/CryptographyXmlUtils.cs | 136 + .../Reflection/CspKeyContainerInfoHelper.cs | 78 + .../Reflection/EncryptedXmlHelper.cs | 83 + .../Reflection/SignedXmlHelper.cs | 122 + .../Reflection/X509CertificateHelper.cs | 293 + .../Xml/GetIdElementDelegate.cs | 11 + .../GostCryptography/Xml/GostEncryptedXml.cs | 349 + .../Xml/GostEncryptedXmlImpl.cs | 429 + .../GostCryptography/Xml/GostKeyValue.cs | 50 + .../GostCryptography/Xml/GostSignedXml.cs | 143 + .../GostCryptography/Xml/GostSignedXmlImpl.cs | 159 + .../Xml/Gost_R3410_2001_KeyValue.cs | 36 + .../Xml/Gost_R3410_2012_256_KeyValue.cs | 36 + .../Xml/Gost_R3410_2012_512_KeyValue.cs | 36 + .../Abstractions/ICertificateMatcher.cs | 18 + .../GostXades/Abstractions/ICryptoProvider.cs | 58 + .../GostXades/Abstractions/IIssuerComparer.cs | 16 + .../GostXades/Abstractions/IXadesService.cs | 23 + Hcs.Client/GostXades/CertificateMatcher.cs | 129 + .../GostXades/CryptoProviderTypeEnum.cs | 13 + Hcs.Client/GostXades/GostCryptoProvider.cs | 130 + Hcs.Client/GostXades/GostXadesBesService.cs | 72 + Hcs.Client/GostXades/Helpers/ArrayHelper.cs | 38 + .../GostXades/Helpers/CertificateHelper.cs | 67 + .../GostXades/Helpers/CollectionHelper.cs | 13 + Hcs.Client/GostXades/Helpers/ConvertHelper.cs | 12 + .../GostXades/Helpers/DateTimeHelper.cs | 14 + .../GostXades/Helpers/EnumerableHelper.cs | 15 + .../Helpers/GostHashAlgorithmHelper.cs | 23 + Hcs.Client/GostXades/Helpers/KeyInfoHelper.cs | 28 + .../GostXades/Helpers/X509NameHelper.cs | 74 + .../GostXades/Helpers/XadesSignedXmlHelper.cs | 16 + .../GostXades/Helpers/XmlDocumentHelper.cs | 77 + Hcs.Client/GostXades/IssuerComparer.cs | 59 + Hcs.Client/GostXades/XadesBesSignedXml.cs | 174 + .../GostXades/XadesBesValidationException.cs | 25 + Hcs.Client/GostXades/XadesInfo.cs | 21 + Hcs.Client/Hcs.Client.csproj | 885 + .../hcs-debt-requests-service-async.wsdl | 163 + .../debt-requests/hcs-debt-requests-types.xsd | 1450 + .../hcs-device-metering-service-async.wsdl | 106 + .../hcs-device-metering-types.xsd | 1001 + .../hcs-house-management-service-async.wsdl | 1049 + .../hcs-house-management-types.xsd | 19584 ++++++ .../lib/hcs-account-base.xsd | 83 + .../hcs-wsdl-v.14.5.0.1/lib/hcs-base.xsd | 866 + .../lib/hcs-bills-base.xsd | 94 + .../lib/hcs-individual-registry-base.xsd | 158 + .../lib/hcs-metering-device-base.xsd | 160 + .../hcs-wsdl-v.14.5.0.1/lib/hcs-nsi-base.xsd | 428 + .../lib/hcs-organizations-base.xsd | 122 + .../lib/hcs-organizations-registry-base.xsd | 266 + .../lib/hcs-payments-base.xsd | 1239 + .../lib/hcs-premises-base.xsd | 74 + .../lib/xmldsig-core-schema.xsd | 309 + ...zations-registry-common-service-async.wsdl | 181 + ...cs-organizations-registry-common-types.xsd | 599 + ...-organizations-registry-service-async.wsdl | 104 + .../hcs-organizations-registry-types.xsd | 238 + .../how-to-generate-cs-from-wsdl.txt | 23 + .../AllDataObjectsTimeStampCollection.cs | 62 + Hcs.Client/Microsoft/Xades/CRLIdentifier.cs | 222 + Hcs.Client/Microsoft/Xades/CRLRef.cs | 165 + .../Microsoft/Xades/CRLRefCollection.cs | 62 + Hcs.Client/Microsoft/Xades/CRLRefs.cs | 146 + Hcs.Client/Microsoft/Xades/CRLValue.cs | 33 + .../Microsoft/Xades/CRLValueCollection.cs | 62 + Hcs.Client/Microsoft/Xades/CRLValues.cs | 146 + Hcs.Client/Microsoft/Xades/Cert.cs | 162 + Hcs.Client/Microsoft/Xades/CertCollection.cs | 62 + Hcs.Client/Microsoft/Xades/CertRefs.cs | 146 + .../Microsoft/Xades/CertificateValues.cs | 246 + Hcs.Client/Microsoft/Xades/CertifiedRole.cs | 32 + .../Xades/CertifiedRoleCollection.cs | 62 + Hcs.Client/Microsoft/Xades/CertifiedRoles.cs | 147 + Hcs.Client/Microsoft/Xades/ClaimedRole.cs | 101 + .../Microsoft/Xades/ClaimedRoleCollection.cs | 62 + Hcs.Client/Microsoft/Xades/ClaimedRoles.cs | 150 + .../Xades/CommitmentTypeIndication.cs | 283 + .../CommitmentTypeIndicationCollection.cs | 62 + .../Xades/CommitmentTypeQualifier.cs | 101 + .../CommitmentTypeQualifierCollection.cs | 62 + .../Xades/CommitmentTypeQualifiers.cs | 147 + .../Xades/CompleteCertificateRefs.cs | 157 + .../Microsoft/Xades/CompleteRevocationRefs.cs | 216 + .../Xades/CounterSignatureCollection.cs | 62 + .../Microsoft/Xades/DataObjectFormat.cs | 270 + .../Xades/DataObjectFormatCollection.cs | 62 + .../Microsoft/Xades/DigestAlgAndValueType.cs | 192 + Hcs.Client/Microsoft/Xades/DigestMethod.cs | 104 + .../Microsoft/Xades/DocumentationReference.cs | 103 + .../Xades/DocumentationReferenceCollection.cs | 62 + .../Xades/DocumentationReferences.cs | 146 + .../Microsoft/Xades/EncapsulatedPKIData.cs | 171 + .../Xades/EncapsulatedX509Certificate.cs | 32 + .../EncapsulatedX509CertificateCollection.cs | 62 + Hcs.Client/Microsoft/Xades/HashDataInfo.cs | 156 + .../Microsoft/Xades/HashDataInfoCollection.cs | 62 + Hcs.Client/Microsoft/Xades/Identifier.cs | 162 + ...ndividualDataObjectsTimeStampCollection.cs | 63 + Hcs.Client/Microsoft/Xades/IssuerSerial.cs | 152 + .../Microsoft/Xades/NoticeNumberCollection.cs | 62 + Hcs.Client/Microsoft/Xades/NoticeNumbers.cs | 147 + Hcs.Client/Microsoft/Xades/NoticeRef.cs | 161 + Hcs.Client/Microsoft/Xades/OCSPIdentifier.cs | 186 + Hcs.Client/Microsoft/Xades/OCSPRef.cs | 164 + .../Microsoft/Xades/OCSPRefCollection.cs | 62 + Hcs.Client/Microsoft/Xades/OCSPRefs.cs | 146 + Hcs.Client/Microsoft/Xades/OCSPValue.cs | 33 + .../Microsoft/Xades/OCSPValueCollection.cs | 62 + Hcs.Client/Microsoft/Xades/OCSPValues.cs | 146 + .../Microsoft/Xades/ObjectIdentifier.cs | 221 + Hcs.Client/Microsoft/Xades/ObjectReference.cs | 107 + .../Xades/ObjectReferenceCollection.cs | 62 + .../Microsoft/Xades/OtherCertificate.cs | 102 + .../Xades/OtherCertificateCollection.cs | 62 + Hcs.Client/Microsoft/Xades/OtherRef.cs | 100 + .../Microsoft/Xades/OtherRefCollection.cs | 62 + Hcs.Client/Microsoft/Xades/OtherRefs.cs | 146 + Hcs.Client/Microsoft/Xades/OtherValue.cs | 100 + .../Microsoft/Xades/OtherValueCollection.cs | 62 + Hcs.Client/Microsoft/Xades/OtherValues.cs | 146 + .../Microsoft/Xades/QualifyingProperties.cs | 237 + .../Microsoft/Xades/RevocationValues.cs | 217 + Hcs.Client/Microsoft/Xades/SPUri.cs | 131 + Hcs.Client/Microsoft/Xades/SPUserNotice.cs | 175 + .../Microsoft/Xades/SigPolicyQualifier.cs | 101 + .../Xades/SigPolicyQualifierCollection.cs | 62 + .../Microsoft/Xades/SigPolicyQualifiers.cs | 169 + .../Microsoft/Xades/SignaturePolicyId.cs | 244 + .../Xades/SignaturePolicyIdentifier.cs | 181 + .../Xades/SignatureProductionPlace.cs | 228 + .../Xades/SignatureTimeStampCollection.cs | 63 + .../Xades/SignedDataObjectProperties.cs | 323 + .../Microsoft/Xades/SignedProperties.cs | 204 + .../Xades/SignedSignatureProperties.cs | 300 + Hcs.Client/Microsoft/Xades/SignerRole.cs | 167 + .../Microsoft/Xades/SigningCertificate.cs | 147 + Hcs.Client/Microsoft/Xades/TimeStamp.cs | 270 + Hcs.Client/Microsoft/Xades/Transform.cs | 158 + .../Microsoft/Xades/TransformCollection.cs | 62 + Hcs.Client/Microsoft/Xades/Transforms.cs | 147 + .../Xades/UnsignedDataObjectProperties.cs | 148 + .../Xades/UnsignedDataObjectProperty.cs | 104 + .../UnsignedDataObjectPropertyCollection.cs | 62 + .../Microsoft/Xades/UnsignedProperties.cs | 189 + .../Xades/UnsignedSignatureProperties.cs | 601 + Hcs.Client/Microsoft/Xades/XAdES.xsd | 466 + Hcs.Client/Microsoft/Xades/XMLTimeStamp.cs | 100 + Hcs.Client/Microsoft/Xades/XadesObject.cs | 164 + Hcs.Client/Microsoft/Xades/XadesSignedXml.cs | 1984 + .../Microsoft/Xades/xmldsig-core-schema.xsd | 309 + Hcs.Client/Properties/AssemblyInfo.cs | 18 + Hcs.Client/packages.config | 4 + Hcs.TestApp/ClientDemo/DebtRequestsDemo.cs | 52 + Hcs.TestApp/ClientDemo/FileStoreDemo.cs | 67 + Hcs.TestApp/ClientDemo/HouseManagementDemo.cs | 153 + Hcs.TestApp/ClientDemo/Program.cs | 78 + Hcs.TestApp/Hcs.TestApp.csproj | 95 + Hcs.TestApp/Properties/AssemblyInfo.cs | 19 + Hcs.sln | 31 + 546 files changed, 176950 insertions(+) create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs create mode 100644 Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs create mode 100644 Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs create mode 100644 Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringApi.cs create mode 100644 Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringMethod.cs create mode 100644 Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringUtil.cs create mode 100644 Hcs.Client/ClientApi/DeviceMeteringApi/HcsMethodImportMeteringDevicesValues.cs create mode 100644 Hcs.Client/ClientApi/FileStoreServiceApi/HcsFileStoreServiceApi.cs create mode 100644 Hcs.Client/ClientApi/FileStoreServiceApi/RFC2047.cs create mode 100644 Hcs.Client/ClientApi/HcsActionLogger.cs create mode 100644 Hcs.Client/ClientApi/HcsCertificateHelper.cs create mode 100644 Hcs.Client/ClientApi/HcsClient.cs create mode 100644 Hcs.Client/ClientApi/HcsClientConfig.cs create mode 100644 Hcs.Client/ClientApi/HcsConsoleLogger.cs create mode 100644 Hcs.Client/ClientApi/HcsConstants.cs create mode 100644 Hcs.Client/ClientApi/HcsException.cs create mode 100644 Hcs.Client/ClientApi/HcsFile.cs create mode 100644 Hcs.Client/ClientApi/HcsFileStoreContext.cs create mode 100644 Hcs.Client/ClientApi/HcsFileWriterMessageCapture.cs create mode 100644 Hcs.Client/ClientApi/HcsMemoryMessageCapture.cs create mode 100644 Hcs.Client/ClientApi/HcsNoResultsRemoteException.cs create mode 100644 Hcs.Client/ClientApi/HcsParallel.cs create mode 100644 Hcs.Client/ClientApi/HcsPartialStream.cs create mode 100644 Hcs.Client/ClientApi/HcsRemoteException.cs create mode 100644 Hcs.Client/ClientApi/HcsRestartTimeoutException.cs create mode 100644 Hcs.Client/ClientApi/HcsUtil.cs create mode 100644 Hcs.Client/ClientApi/HcsX509Tools.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsContractRegistryDownloader.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementApi.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementMethod.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementNsi.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportAccountData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportHouse.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportMeteringDeviceData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractObjectAddress.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportAccountData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportMeteringDeviceData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractData.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractObjectAddress.cs create mode 100644 Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractProject.cs create mode 100644 Hcs.Client/ClientApi/IHcsLogger.cs create mode 100644 Hcs.Client/ClientApi/IHcsMessageCapture.cs create mode 100644 Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsMethodExportOrgRegistry.cs create mode 100644 Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonApi.cs create mode 100644 Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonMethod.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/GostSigningEndpointBehavior.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/GostSigningMessageInspector.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/HcsPagedResultState.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/HcsRemoteCallMethod.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/HcsRequestHelper.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/HcsServicePointConfig.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/IHcsAck.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/IHcsFault.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/IHcsGetStateResult.cs create mode 100644 Hcs.Client/ClientApi/RemoteCaller/IHcsHeaderType.cs create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.cs create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.svcmap create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration91.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-service-async.wsdl create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-types.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-nsi-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.cs create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.svcmap create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration91.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-service-async.wsdl create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-types.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-metering-device-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-nsi-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.cs create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.svcmap create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration91.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-account-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-bills-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-service-async.wsdl create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-types.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-individual-registry-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-metering-device-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-nsi-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-registry-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-premises-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult.datasource create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.cs create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.svcmap create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration91.svcinfo create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-nsi-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-service-async.wsdl create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-types.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-premises-base.xsd create mode 100644 Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn18BitCharString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeContext.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerEncodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerInputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerMessageDumpHandler.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerOutputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BigInteger.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BitString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1BmpString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Boolean.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerInputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerOutputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharRange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharSet.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Choice.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1ChoiceExt.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1DecodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerDecodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerEncodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerInputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1DiscreteCharSet.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1EncodeBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Enumerated.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralizedTime.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1GraphicString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Ia5String.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Integer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1MessageBuffer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Null.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1NumericString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectDescriptor.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectIdentifier.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1OctetString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenExt.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1OutputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1PrintableString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Real.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1RelativeOid.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1RunTime.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Status.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1T61String.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Tag.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Time.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1TraceHandler.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Type.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1UniversalString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1UtcTime.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Utf8String.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Util.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1Value.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1VarWidthCharString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1VideotexString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Asn1VisibleString.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/BigInteger.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/IAsn1InputStream.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/IAsn1NamedEventHandler.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/IAsn1TaggedEventHandler.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/IAsn1Type.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/IntHolder.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Ber/Tokenizer.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/GostAsn1Choice.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_BlobParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Constants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_EncryptedKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Iv.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Key.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyExchangeInfo.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrap.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrapParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Mac.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Params.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchangeParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyTransport.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_TransportParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_Constants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_DhPublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchangeParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParamsType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_Constants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_DhPublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchangeParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParamsType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_Constants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_DhPublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchangeParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParamsType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_Constants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_DhPublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchange.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchangeParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKey.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParamsType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParamsType.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmId.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmIdentifier.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/PkiConstants.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/SubjectPublicKeyInfo.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/NullParams.cs create mode 100644 Hcs.Client/GostCryptography/Asn1/OidValue.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostExternalAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostHMAC.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostHashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostKeyExchangeAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostKeyExchangeDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostKeyExchangeExportMethod.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostKeyExchangeFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostKeyedHashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostPrf.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostSignatureDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostSignatureDescription.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostSignatureFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Base/GostSymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/IGostAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Base/ProviderType.cs create mode 100644 Hcs.Client/GostCryptography/Config/GostCryptoConfig.cs create mode 100644 Hcs.Client/GostCryptography/ExceptionUtility.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransform.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransformMode.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithmBase.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithmBase.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_AsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_EphemeralAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeXmlSerializer.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_SignatureDescription.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_AsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeXmlSerializer.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_SignatureDescription.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_AsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeXmlSerializer.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_SignatureDescription.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithmBase.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_EphemeralAsymmetricAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeDeformatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeFormatter.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeXmlSerializer.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HMAC.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_PRF.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HMAC.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_PRF.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HMAC.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_PRF.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HMAC.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HashAlgorithm.cs create mode 100644 Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_PRF.cs create mode 100644 Hcs.Client/GostCryptography/LICENSE create mode 100644 Hcs.Client/GostCryptography/Native/Constants.cs create mode 100644 Hcs.Client/GostCryptography/Native/CryptoApi.cs create mode 100644 Hcs.Client/GostCryptography/Native/CryptoApiHelper.cs create mode 100644 Hcs.Client/GostCryptography/Native/ISafeHandleProvider.cs create mode 100644 Hcs.Client/GostCryptography/Native/SafeHashHandleImpl.cs create mode 100644 Hcs.Client/GostCryptography/Native/SafeKeyHandleImpl.cs create mode 100644 Hcs.Client/GostCryptography/Native/SafeProvHandleImpl.cs create mode 100644 Hcs.Client/GostCryptography/Pkcs/GostSignedCms.cs create mode 100644 Hcs.Client/GostCryptography/Properties/Resources.Designer.cs create mode 100644 Hcs.Client/GostCryptography/Properties/Resources.resx create mode 100644 Hcs.Client/GostCryptography/README.md create mode 100644 Hcs.Client/GostCryptography/Reflection/CryptographyUtils.cs create mode 100644 Hcs.Client/GostCryptography/Reflection/CryptographyXmlUtils.cs create mode 100644 Hcs.Client/GostCryptography/Reflection/CspKeyContainerInfoHelper.cs create mode 100644 Hcs.Client/GostCryptography/Reflection/EncryptedXmlHelper.cs create mode 100644 Hcs.Client/GostCryptography/Reflection/SignedXmlHelper.cs create mode 100644 Hcs.Client/GostCryptography/Reflection/X509CertificateHelper.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GetIdElementDelegate.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GostEncryptedXml.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GostEncryptedXmlImpl.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GostKeyValue.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GostSignedXml.cs create mode 100644 Hcs.Client/GostCryptography/Xml/GostSignedXmlImpl.cs create mode 100644 Hcs.Client/GostCryptography/Xml/Gost_R3410_2001_KeyValue.cs create mode 100644 Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_256_KeyValue.cs create mode 100644 Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_512_KeyValue.cs create mode 100644 Hcs.Client/GostXades/Abstractions/ICertificateMatcher.cs create mode 100644 Hcs.Client/GostXades/Abstractions/ICryptoProvider.cs create mode 100644 Hcs.Client/GostXades/Abstractions/IIssuerComparer.cs create mode 100644 Hcs.Client/GostXades/Abstractions/IXadesService.cs create mode 100644 Hcs.Client/GostXades/CertificateMatcher.cs create mode 100644 Hcs.Client/GostXades/CryptoProviderTypeEnum.cs create mode 100644 Hcs.Client/GostXades/GostCryptoProvider.cs create mode 100644 Hcs.Client/GostXades/GostXadesBesService.cs create mode 100644 Hcs.Client/GostXades/Helpers/ArrayHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/CertificateHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/CollectionHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/ConvertHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/DateTimeHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/EnumerableHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/GostHashAlgorithmHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/KeyInfoHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/X509NameHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/XadesSignedXmlHelper.cs create mode 100644 Hcs.Client/GostXades/Helpers/XmlDocumentHelper.cs create mode 100644 Hcs.Client/GostXades/IssuerComparer.cs create mode 100644 Hcs.Client/GostXades/XadesBesSignedXml.cs create mode 100644 Hcs.Client/GostXades/XadesBesValidationException.cs create mode 100644 Hcs.Client/GostXades/XadesInfo.cs create mode 100644 Hcs.Client/Hcs.Client.csproj create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-service-async.wsdl create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-types.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-service-async.wsdl create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-types.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-service-async.wsdl create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-types.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-account-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-bills-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-individual-registry-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-metering-device-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-nsi-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-registry-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-payments-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-premises-base.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-service-async.wsdl create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-types.xsd create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-service-async.wsdl create mode 100644 Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-types.xsd create mode 100644 Hcs.Client/HcsWsdlSources/how-to-generate-cs-from-wsdl.txt create mode 100644 Hcs.Client/Microsoft/Xades/AllDataObjectsTimeStampCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLIdentifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLRef.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLRefCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLValue.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLValueCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CRLValues.cs create mode 100644 Hcs.Client/Microsoft/Xades/Cert.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertificateValues.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertifiedRole.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertifiedRoleCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CertifiedRoles.cs create mode 100644 Hcs.Client/Microsoft/Xades/ClaimedRole.cs create mode 100644 Hcs.Client/Microsoft/Xades/ClaimedRoleCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/ClaimedRoles.cs create mode 100644 Hcs.Client/Microsoft/Xades/CommitmentTypeIndication.cs create mode 100644 Hcs.Client/Microsoft/Xades/CommitmentTypeIndicationCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CommitmentTypeQualifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/CommitmentTypeQualifierCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/CommitmentTypeQualifiers.cs create mode 100644 Hcs.Client/Microsoft/Xades/CompleteCertificateRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/CompleteRevocationRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/CounterSignatureCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/DataObjectFormat.cs create mode 100644 Hcs.Client/Microsoft/Xades/DataObjectFormatCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/DigestAlgAndValueType.cs create mode 100644 Hcs.Client/Microsoft/Xades/DigestMethod.cs create mode 100644 Hcs.Client/Microsoft/Xades/DocumentationReference.cs create mode 100644 Hcs.Client/Microsoft/Xades/DocumentationReferenceCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/DocumentationReferences.cs create mode 100644 Hcs.Client/Microsoft/Xades/EncapsulatedPKIData.cs create mode 100644 Hcs.Client/Microsoft/Xades/EncapsulatedX509Certificate.cs create mode 100644 Hcs.Client/Microsoft/Xades/EncapsulatedX509CertificateCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/HashDataInfo.cs create mode 100644 Hcs.Client/Microsoft/Xades/HashDataInfoCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/Identifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/IndividualDataObjectsTimeStampCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/IssuerSerial.cs create mode 100644 Hcs.Client/Microsoft/Xades/NoticeNumberCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/NoticeNumbers.cs create mode 100644 Hcs.Client/Microsoft/Xades/NoticeRef.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPIdentifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPRef.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPRefCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPValue.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPValueCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OCSPValues.cs create mode 100644 Hcs.Client/Microsoft/Xades/ObjectIdentifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/ObjectReference.cs create mode 100644 Hcs.Client/Microsoft/Xades/ObjectReferenceCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherCertificate.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherCertificateCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherRef.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherRefCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherRefs.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherValue.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherValueCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/OtherValues.cs create mode 100644 Hcs.Client/Microsoft/Xades/QualifyingProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/RevocationValues.cs create mode 100644 Hcs.Client/Microsoft/Xades/SPUri.cs create mode 100644 Hcs.Client/Microsoft/Xades/SPUserNotice.cs create mode 100644 Hcs.Client/Microsoft/Xades/SigPolicyQualifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/SigPolicyQualifierCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/SigPolicyQualifiers.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignaturePolicyId.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignaturePolicyIdentifier.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignatureProductionPlace.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignatureTimeStampCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignedDataObjectProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignedProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignedSignatureProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/SignerRole.cs create mode 100644 Hcs.Client/Microsoft/Xades/SigningCertificate.cs create mode 100644 Hcs.Client/Microsoft/Xades/TimeStamp.cs create mode 100644 Hcs.Client/Microsoft/Xades/Transform.cs create mode 100644 Hcs.Client/Microsoft/Xades/TransformCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/Transforms.cs create mode 100644 Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperty.cs create mode 100644 Hcs.Client/Microsoft/Xades/UnsignedDataObjectPropertyCollection.cs create mode 100644 Hcs.Client/Microsoft/Xades/UnsignedProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/UnsignedSignatureProperties.cs create mode 100644 Hcs.Client/Microsoft/Xades/XAdES.xsd create mode 100644 Hcs.Client/Microsoft/Xades/XMLTimeStamp.cs create mode 100644 Hcs.Client/Microsoft/Xades/XadesObject.cs create mode 100644 Hcs.Client/Microsoft/Xades/XadesSignedXml.cs create mode 100644 Hcs.Client/Microsoft/Xades/xmldsig-core-schema.xsd create mode 100644 Hcs.Client/Properties/AssemblyInfo.cs create mode 100644 Hcs.Client/packages.config create mode 100644 Hcs.TestApp/ClientDemo/DebtRequestsDemo.cs create mode 100644 Hcs.TestApp/ClientDemo/FileStoreDemo.cs create mode 100644 Hcs.TestApp/ClientDemo/HouseManagementDemo.cs create mode 100644 Hcs.TestApp/ClientDemo/Program.cs create mode 100644 Hcs.TestApp/Hcs.TestApp.csproj create mode 100644 Hcs.TestApp/Properties/AssemblyInfo.cs create mode 100644 Hcs.sln diff --git a/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs b/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs new file mode 100644 index 0000000..f610c69 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисАдресныйОбъект.cs @@ -0,0 +1,35 @@ +using System; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Информация о зданиях и помещениях в зданиях (объектах жилого фонда), + /// которые связаны с договором (в договоре имеются Лицевые Счета в + /// указанных объектах) + /// + public class ГисАдресныйОбъект + { + public Guid ГуидДоговора; + public Guid ГуидВерсииДоговора; + public Guid ГуидЗданияФиас; + public Guid ГуидАдресногоОбъекта; + + public class ИзвестныеТипыЗдания + { + public const string MKD = "MKD"; + public const string ZHD = "ZHD"; + public const string ZHDBlockZastroyki = "ZHDBlockZastroyki"; + } + + public string ТипЗдания; + public string НомерПомещения; + public string НомерКомнаты; + + public bool СвязанСДоговором(ГисДоговор договор) => договор != null && договор.ГуидДоговора == ГуидДоговора; + + public override string ToString() + { + return $"Тип=[{ТипЗдания}] ЗданиеФиас=[{ГуидЗданияФиас}] Объект[{ГуидАдресногоОбъекта}] Помещ[{НомерПомещения}] Комн[{НомерКомнаты}]"; + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs b/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs new file mode 100644 index 0000000..504fefc --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисДоговор.cs @@ -0,0 +1,140 @@ +using Newtonsoft.Json; +using System; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Договор с ресурсоснабжающей организацией + /// + public class ГисДоговор + { + public Guid ГуидДоговора; + public Guid ГуидВерсииДоговора; + public string НомерВерсии; + + public ГисСостояниеДоговора СостояниеДоговора; + public ГисСтатусВерсииДоговора СтатусВерсииДоговора; + + public ГисТипДоговораРСО ТипДоговораРСО; + public string НомерДоговора; + public DateTime? ДатаЗаключения; + public DateTime? ДатаВступленияВСилу; + + public bool НачисленияРазмещаетРСО; + public bool ПриборыРазмещаетРСО; + + public ГисКонтрагент Контрагент; + + public ГисПредметДоговора[] ПредметыДоговора; + + public ГисПриложение[] ПриложенияДоговора; + + [JsonIgnore] + public bool ЭтоДоговорИКУ => (ТипДоговораРСО == ГисТипДоговораРСО.НеПубличныйИлиНеНежилые); + + [JsonIgnore] + public bool ЭтоДоговорНежилогоПомещения => (ТипДоговораРСО == ГисТипДоговораРСО.ПубличныйИлиНежилые); + + [JsonIgnore] + public bool ЭтоПроектДоговора => (СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Проект); + + [JsonIgnore] + public bool Расторгнут => (СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Расторгнут); + + [JsonIgnore] + public bool ИмеетГуидДоговора => (ГуидДоговора != default); + + [JsonIgnore] + public bool ПриниматьИзГисНаАнализ + { + get + { + return СтатусВерсииДоговора switch + { + // TODO: Проверить комментирование этой строчки + //ГисСтатусВерсииДоговора.Проект => false, // С 15.11.2024 принимаем проекты + ГисСтатусВерсииДоговора.Аннулирован => false, + ГисСтатусВерсииДоговора.Расторгнут => false, + _ => true + }; + } + } + + public override string ToString() + { + return $"Договор №{НомерДоговора} Тип={ТипДоговораРСО}" + + $" Статус={СтатусВерсииДоговора} Состояние={СостояниеДоговора}" + + $" Заключен={HcsUtil.FormatDate(ДатаЗаключения)}" + + $" №Версии={НомерВерсии} ГуидДог={ГуидДоговора}" + + $" ГуидВерсии={ГуидВерсииДоговора}"; + } + } + + public enum ГисТипДоговораРСО + { + /// + /// Договор не является публичным и/или присутствует заключенный на бумажном + /// носителе (электронной форме) и/или не заключен в отношении нежилых помещений + /// в многоквартирных домах (IsContract в терминах HCS) + /// + НеПубличныйИлиНеНежилые, + + /// + /// Договор является публичным и/или отсутствует заключенный на бумажном носителе + /// (в электронной форме) и/или заключен в отношении нежилых помещений в + /// многоквартирных домах (IsNotContract в терминах HCS) + /// + ПубличныйИлиНежилые + } + + public enum ГисСостояниеДоговора + { + НеВступилВСилу, // NotTakeEffect + Действующий, // Proceed + ИстекСрокДействия // Expired + } + + public enum ГисСтатусВерсииДоговора + { + Размещен, // Posted + Расторгнут, // Terminated + Проект, // Draft + Аннулирован // Annul + } + + public class ГисПредметДоговора + { + // Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + public string КодНсиУслуги; + public Guid ГуидНсиУслуги; + public string ИмяНсиУслуги; + + // Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + public string КодНсиРесурса; + public Guid ГуидНсиРесурса; + public string ИмяНсиРесурса; + } + + public class ГисПриложение + { + /// + /// Имя файла приложения + /// + public string ИмяПриложения; + + /// + /// Пояснение к файлу приложения + /// + public string ОписаниеПриложения; + + /// + /// ГУИД файла приложения из ext-bus-file-store-service + /// + public Guid ГуидПриложения; + + /// + /// Хэш файла приложения в устаревшем стандарте "ГОСТ Р 34.11-94" в Binhex + /// + public string ХэшПриложения; + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs b/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs new file mode 100644 index 0000000..774f55d --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисДоговорыИПриборы.cs @@ -0,0 +1,197 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Сборный класс для получения сразу всех договоров, их лицевых счетов + /// и приборов учета привязанных к лицевым счетам договоров + /// + public class ГисДоговорыИПриборы + { + public DateTime ДатаНачалаСборки; + public DateTime ДатаКонцаСборки; + + /// + /// Договоры ресурсоснабжения + /// + public List<ГисДоговор> ДоговорыРСО = new List<ГисДоговор>(); + + public List<ГисАдресныйОбъект> АдресаОбъектов = new List<ГисАдресныйОбъект>(); + + public List<ГисЗдание> Здания = new List<ГисЗдание>(); + + public List<ГисЛицевойСчет> ЛицевыеСчета = new List<ГисЛицевойСчет>(); + + public List<ГисПриборУчета> ПриборыУчета = new List<ГисПриборУчета>(); + + public ГисДоговор НайтиДоговорПоНомеру(string номерДоговора) + => ДоговорыРСО.FirstOrDefault(x => x.НомерДоговора == номерДоговора); + + public bool ЭтотЛицевойСчетСвязанСДоговорами(ГисЛицевойСчет лс) + { + return ДоговорыРСО.Any(договор => лс.СвязанСДоговором(договор)); + } + + public ГисЗдание НайтиЗданиеПомещения(Guid гуидПомещения) + { + foreach (var здание in Здания) + { + foreach (var помещение in здание.Помещения) + { + if (помещение.ГуидПомещения == гуидПомещения) return здание; + } + } + + return null; + } + + public ГисЗдание НайтиЗданиеЛицевогоСчета(ГисЛицевойСчет лс) + { + if (лс.Размещения == null) return null; + + foreach (var размещение in лс.Размещения) + { + if (размещение.ГуидПомещения == null) continue; + var здание = НайтиЗданиеПомещения((Guid)размещение.ГуидПомещения); + if (здание != null) return здание; + } + + return null; + } + + public void УдалитьЛицевыеСчетаЗдания(Guid гуидЗданияФиас) + { + var здание = Здания.FirstOrDefault(x => x.ГуидЗданияФиас == гуидЗданияФиас); + if (здание == null || здание.Помещения == null) return; + + var лсДляУдаления = new List<ГисЛицевойСчет>(); + var гуидыПомещенийЗдания = new HashSet(здание.Помещения.Select(x => x.ГуидПомещения)); + + foreach (var лс in ЛицевыеСчета) + { + if (лс.Размещения == null) continue; + foreach (var размещениеЛС in лс.Размещения) + { + if (размещениеЛС.ГуидПомещения == null) continue; + if (гуидыПомещенийЗдания.Contains((Guid)размещениеЛС.ГуидПомещения)) + { + лсДляУдаления.Add(лс); + break; + } + } + } + + foreach (var лсУдалить in лсДляУдаления) + ЛицевыеСчета.Remove(лсУдалить); + } + + public int ЗаменитьЛицевыеСчетаЗданияВЛокальномСнимке( + Guid гуидЗданияФиас, IEnumerable<ГисЛицевойСчет> лицевые) + { + УдалитьЛицевыеСчетаЗдания(гуидЗданияФиас); + + var живые = лицевые.Where(лс => лс.ДействуетСейчас && ЭтотЛицевойСчетСвязанСДоговорами(лс)); + ЛицевыеСчета.AddRange(живые); + return живые.Count(); + } + + public bool ЭтотПриборСвязанСЛицевымиСчетами(ГисПриборУчета прибор) + { + return ЛицевыеСчета.Any(лс => прибор.СвязанСЛицевымСчетом(лс)); + } + + public IEnumerable<ГисАдресныйОбъект> ДатьАдресаОбъектовДоговора(ГисДоговор договор) + { + return АдресаОбъектов.Where(x => x.СвязанСДоговором(договор)); + } + + public IEnumerable<ГисПриборУчета> ДатьПриборыУчетаДоговора(ГисДоговор договор) + { + var адресаДоговора = ДатьАдресаОбъектовДоговора(договор).ToArray(); + var лицевыеДоговора = ЛицевыеСчета.Where(x => x.СвязанСДоговором(договор)).ToArray(); + + var приборы = new List<ГисПриборУчета>(); + foreach (var прибор in ПриборыУчета) + { + if (прибор == null) continue; + + if (договор.ЭтоДоговорИКУ) + { + foreach (var адрес in адресаДоговора) + { + if (прибор.СвязанСАдреснымОбъектом(адрес)) приборы.Add(прибор); + } + } + + if (договор.ЭтоДоговорНежилогоПомещения) + { + foreach (var лицевой in лицевыеДоговора) + { + if (прибор.СвязанСЛицевымСчетом(лицевой)) приборы.Add(прибор); + } + } + } + + return приборы; + } + + public IEnumerable<ГисПомещение> ДатьПомещенияАдресногоОбъекта(ГисАдресныйОбъект адрес) + { + var здание = Здания.FirstOrDefault(x => x.ГуидЗданияФиас == адрес.ГуидЗданияФиас); + if (здание == null) return new List<ГисПомещение>(); + return здание.Помещения; + } + + public IEnumerable<ГисПриборУчета> ДатьПриборыУчетаЛицевогоСчета(ГисЛицевойСчет лс) + { + return ПриборыУчета.Where(x => x.СвязанСЛицевымСчетом(лс)); + } + + public ГисЗданиеПомещение НайтиПомещениеЛицевогоСчета(ГисЛицевойСчет лс) + { + foreach (var размещение in лс.Размещения) + { + foreach (var здание in Здания) + { + if (здание.Помещения == null) continue; + foreach (var помещение in здание.Помещения) + { + if (помещение.ГуидПомещения == размещение.ГуидПомещения) + { + return new ГисЗданиеПомещение(здание, помещение); + } + } + } + } + return new ГисЗданиеПомещение(null, null); + } + + public static ГисДоговорыИПриборы ПрочитатьФайлJson(string jsonFileName) + { + using (StreamReader file = File.OpenText(jsonFileName)) + { + JsonSerializer serializer = new JsonSerializer(); + return (ГисДоговорыИПриборы)serializer.Deserialize(file, typeof(ГисДоговорыИПриборы)); + } + } + + public void ЗаписатьФайлJson(string jsonFileName) + { + using (StreamWriter file = File.CreateText(jsonFileName)) + { + JsonSerializer serializer = new JsonSerializer(); + serializer.Serialize(file, this); + } + } + + public override string ToString() + { + return $"ДоговорыРСО={ДоговорыРСО.Count} Адреса={АдресаОбъектов.Count}" + + $" ЛС={ЛицевыеСчета.Count} ПУ={ПриборыУчета.Count}"; + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs b/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs new file mode 100644 index 0000000..01a72c7 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисЗдание.cs @@ -0,0 +1,24 @@ +using System; +using System.Linq; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Дом ГИС ЖКХ + /// + public class ГисЗдание + { + public ГисТипДома ТипДома; + public Guid ГуидЗданияФиас; + public string НомерДомаГис; + + public ГисПомещение[] Помещения; + + public override string ToString() + { + return $"{ТипДома} дом №ГИС={НомерДомаГис} Помещения={Помещения.Count()}"; + } + } + + public enum ГисТипДома { Многоквартирный, Жилой }; +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs b/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs new file mode 100644 index 0000000..f95038f --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисЗданиеПомещение.cs @@ -0,0 +1,8 @@ +namespace Hcs.ClientApi.DataTypes +{ + public record struct ГисЗданиеПомещение(ГисЗдание Здание, ГисПомещение Помещение) + { + public bool Пустое => (Здание == null || Помещение == null); + public bool Заполнено => !Пустое; + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs b/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs new file mode 100644 index 0000000..75d3387 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисКонтрагент.cs @@ -0,0 +1,72 @@ +using Newtonsoft.Json; +using System; +using System.Linq; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Сведения о контрагенте договора РСО + /// + public class ГисКонтрагент + { + public ГисТипКонтрагента ТипКонтрагента; + + /// + /// ГУИД из реестра организаций ГИС ЖКХ + /// + public Guid? ГуидОрганизации; + + /// + /// ГУИД версии организации из реестра организаций ГИС ЖКХ необходим + /// для размещения Лицевого счета + /// + public Guid? ГуидВерсииОрганизации; + + /// + /// Сведения об индивидуальном физическом лице + /// + public ГисИндивид Индивид; + } + + public enum ГисТипКонтрагента + { + НеУказано, + ВладелецПомещения, + УправляющаяКомпания + } + + public class ГисИндивид + { + public string Фамилия; + public string Имя; + public string Отчество; + public string СНИЛС; + public string НомерДокумента; + public string СерияДокумента; + public DateTime? ДатаДокумента; + + [JsonIgnore] + public bool СНИЛСЗаполнен + => !string.IsNullOrEmpty(СНИЛС); + + [JsonIgnore] + public string СНИЛСТолькоЦифры + => СНИЛСЗаполнен ? string.Concat(СНИЛС.Where(char.IsDigit)) : null; + + [JsonIgnore] + public bool СНИЛСЗаполненВернойДлины + => (СНИЛСЗаполнен && СНИЛСТолькоЦифры.Length == 11); + + public void ПроверитьЗаполнениеСНИЛС() + { + if (!СНИЛСЗаполненВернойДлины) + throw new HcsException($"В СНИЛС контрагента ФЛ должно быть указано 11 цифр: {СНИЛС}"); + } + + public void ПроверитьЗаполнениеФИО() + { + if (string.IsNullOrEmpty(Фамилия)) throw new HcsException("Не заполнена Фамилия контрагента ФЛ"); + if (string.IsNullOrEmpty(Имя)) throw new HcsException("Не заполнено Имя контрагента ФЛ"); + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs b/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs new file mode 100644 index 0000000..e8509f9 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисЛицевойСчет.cs @@ -0,0 +1,112 @@ +using Newtonsoft.Json; +using System; +using System.Linq; +using System.Text; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Лицевой счет из ГИС ЖКХ имеет номер единого лицевого счета (ЕЛС) + /// и выдается на каждую точку поставки в жилом доме для договора + /// по нежилым помещениям + /// + public class ГисЛицевойСчет + { + public Guid ГуидЛицевогоСчета; + public string НомерЛицевогоСчета; + public string НомерЕЛС; + + public DateTime? ДатаСоздания; + public DateTime? ДатаЗакрытия; + public string КодНсиПричиныЗакрытия; + public string ИмяПричиныЗакрытия; + + public decimal? ПолнаяПлощадь; + public decimal? ЖилаяПлощадь; + public string КодЖКУ; + + public ГисРазмещениеЛС[] Размещения; + public ГисОснованиеЛС[] Основания; + + public bool СвязанСДоговором(ГисДоговор договор) + { + if (договор != null && Основания != null && Основания.Any( + основание => основание.ГуидДоговора == договор.ГуидВерсииДоговора || + основание.ГуидДоговора == договор.ГуидДоговора || + string.Compare(основание.НомерДоговора, договор.НомерДоговора) == 0)) return true; + return false; + } + + [JsonIgnore] + public bool ДействуетСейчас => (ДатаЗакрытия == null); + + [JsonIgnore] + public string ОписаниеРазмещений + { + get + { + var accomod = new StringBuilder(); + foreach (var x in Размещения) accomod.Append($"[{x}]"); + return accomod.ToString(); + } + } + + [JsonIgnore] + public string ОписаниеОснований + { + get + { + if (Основания == null) return null; + var reasons = new StringBuilder(); + foreach (var x in Основания) reasons.Append($"[{x}]"); + return reasons.ToString(); + } + } + + public override string ToString() + { + return $"ЛС №{НомерЛицевогоСчета} ЕЛС={НомерЕЛС}" + + $" Создан={HcsUtil.FormatDate(ДатаСоздания)}" + + $" Закрыт={HcsUtil.FormatDate(ДатаЗакрытия)}" + + $" Размещения={ОписаниеРазмещений}" + + $" Основания={ОписаниеОснований}"; + } + } + + /// + /// Лицевой счет может быть привязан к нескольким размещениям. + /// Каждое размещение может быть или в здании, или в жилой комнате или в помещении + /// + public class ГисРазмещениеЛС + { + public Guid? ГуидЗдания; + public Guid? ГуидПомещения; + public Guid? ГуидЖилойКомнаты; + public decimal? ПроцентДоли; + + public override string ToString() + { + if (ГуидЗдания != null) return $"Здание={ГуидЗдания}"; + if (ГуидПомещения != null) return $"Помещение={ГуидПомещения}"; + if (ГуидЖилойКомнаты != null) return $"ЖилКомната={ГуидЖилойКомнаты}"; + return ""; + } + } + + public enum ГисТипОснованияЛС { ДоговорРСО, Соцнайм, Договор } + + /// + /// Основание создания лицевого счета (договор на основании которого открыт ЛС) + /// + public class ГисОснованиеЛС + { + public ГисТипОснованияЛС ТипОснованияЛС; + public Guid ГуидДоговора; + public string НомерДоговора; + + public override string ToString() + { + return $"{ТипОснованияЛС}={ГуидДоговора}"; + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs b/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs new file mode 100644 index 0000000..d554a3c --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисОрганизация.cs @@ -0,0 +1,57 @@ +using Newtonsoft.Json; +using System; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Сведения из реестра оргнаизации ГИС ЖКХ + /// + public class ГисОрганизация + { + public Guid ГуидОрганизации; + + public Guid ГуидВерсииОрганизации; + + public ГисТипОрганизации ТипОрганизации; + + public string КраткоеИмяОрганизации; + + public string ПолноеИмяОрганизации; + + public bool Действующая; + + public string ИНН; + + public string КПП; + + public string ОГРН; + + public string ОКОПФ; + + public string Фамилия; + + public string Имя; + + public string Отчество; + + public string ЮридическийАдрес; + + public DateTime? ДатаЛиквидации; + + [JsonIgnore] + public const int ДлинаОГРН = 13; + + [JsonIgnore] + public const int ДлинаОГРНИП = 15; + + public override string ToString() + { + string имя = ТипОрганизации == ГисТипОрганизации.ИП ? + $"ИП {Фамилия} {Имя} {Отчество}" : КраткоеИмяОрганизации; + return $"{ТипОрганизации}: [{имя}] ИНН={ИНН} КПП={КПП} Действующая={Действующая}" + + $" ГУИД={ГуидОрганизации} Версия={ГуидВерсииОрганизации}"; + } + } + + public enum ГисТипОрганизации { НетУказано, ЮЛ, ИП, Филиал, Иностранный } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs b/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs new file mode 100644 index 0000000..f2e6ab2 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисПоказания.cs @@ -0,0 +1,43 @@ +using System; +using System.Text; + +namespace Hcs.ClientApi.DataTypes +{ + public class ГисПоказания + { + public DateTime ДатаСнятия; + public string ПоказанияТ1; + public string ПоказанияТ2; + public string ПоказанияТ3; + + public override string ToString() + { + var buf = new StringBuilder(); + + if (!string.IsNullOrEmpty(ПоказанияТ1)) + { + buf.AppendFormat("Т1={0}", ПоказанияТ1); + } + + if (!string.IsNullOrEmpty(ПоказанияТ2)) + { + if (buf.Length > 0) buf.Append(" "); + buf.AppendFormat("Т2={0}", ПоказанияТ2); + } + + if (!string.IsNullOrEmpty(ПоказанияТ3)) + { + if (buf.Length > 0) buf.Append(" "); + buf.AppendFormat("Т3={0}", ПоказанияТ3); + } + + if (ДатаСнятия != default) + { + if (buf.Length > 0) buf.Append(" "); + buf.AppendFormat("на {0:d}", ДатаСнятия); + } + + return buf.ToString(); + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs b/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs new file mode 100644 index 0000000..e8f3eb8 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисПомещение.cs @@ -0,0 +1,21 @@ +using System; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Жилое или нежилое момещение в доме ГИС ЖКХ + /// + public class ГисПомещение + { + public Guid ГуидПомещения; + public bool ЭтоЖилоеПомещение; + public string НомерПомещения; + public DateTime? ДатаПрекращения; + public string Аннулирование; + + public override string ToString() + { + return $"ГисПомещение={НомерПомещения} Жилое={ЭтоЖилоеПомещение} Guid={ГуидПомещения} Прекращено={ДатаПрекращения} Аннул={Аннулирование}"; + } + } +} diff --git a/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs b/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs new file mode 100644 index 0000000..8764339 --- /dev/null +++ b/Hcs.Client/ClientApi/DataTypes/ГисПриборУчета.cs @@ -0,0 +1,102 @@ +using Newtonsoft.Json; +using System; +using System.Linq; + +namespace Hcs.ClientApi.DataTypes +{ + /// + /// Прибор учета из ГИС ЖКХ может быть привязан к списку зданий (ОДПУ) + /// или к списку Лицевых счетов (все виды кроме ОДПУ) + /// + public class ГисПриборУчета + { + public Guid ГуидПрибораУчета; + public Guid ГуидВерсииПрибора; + public string НомерПрибораУчетаГис; + + public DateTime? ДатаРазмещенияВерсии; + public Guid ГуидВладельцаПрибора; + + public ГисСтатусПрибораУчета СтатусПрибораУчета; + public ГисВидПрибораУчета ВидПрибораУчета; + + public string ЗаводскойНомер; + public string МодельПрибораУчета; + + [JsonIgnore] + public bool КоэффициентТрансформацииУказан => (КоэффициентТрансформации > 0); + public decimal КоэффициентТрансформации; + + public string ПоказаниеТ1; + public string ПоказаниеТ2; + public string ПоказаниеТ3; + + // TODO: Добавить эти комментарии как XML-комментарии + public DateTime? ДатаИзготовления; // Обязательно при импорте + public DateTime? ДатаУстановки; + public DateTime? ДатаВводаВЭксплуатацию; // Обязательно кроме ОДПУ + public DateTime? ДатаПоследнейПоверки; // Обязательно для ОДПУ + + public bool РежимДистанционногоОпроса; // Признак наличия ИСУ + public string ОписаниеДистанционногоОпроса; // Наименование ИСУ + + public Guid[] ГуидыЗданийФиас; + public Guid[] ГуидыЛицевыхСчетов; + public Guid[] ГуидыПомещений; + public Guid[] ГуидыЖилыхКомнат; + + [JsonIgnore] + public bool ЭтоАктивный => (СтатусПрибораУчета == ГисСтатусПрибораУчета.Активный); + + [JsonIgnore] + public bool ЭтоАрхивный => (СтатусПрибораУчета == ГисСтатусПрибораУчета.Архивный); + + [JsonIgnore] + public bool ЭтоОДПУ => (ВидПрибораУчета == ГисВидПрибораУчета.ОДПУ); + + [JsonIgnore] + public bool ЭтоНежилоеПомещение => (ВидПрибораУчета == ГисВидПрибораУчета.НежилоеПомещение); + + [JsonIgnore] + public bool ЭтоПриборЮЛ => ЭтоОДПУ || ЭтоНежилоеПомещение; + + public bool СвязанСЛицевымСчетом(ГисЛицевойСчет лс) + { + if (лс == null || ГуидыЛицевыхСчетов == null || ГуидыЛицевыхСчетов.Length == 0) return false; + if (ГуидыЛицевыхСчетов.Length == 1) return (ГуидыЛицевыхСчетов[0] == лс.ГуидЛицевогоСчета); + return ГуидыЛицевыхСчетов.Contains(лс.ГуидЛицевогоСчета); + } + + public bool СвязанСАдреснымОбъектом(ГисАдресныйОбъект адрес) + { + // TODO: Для лицевых счетов здесь надо тестировать ГУИД помещения + if (адрес == null || ГуидыЗданийФиас == null || ГуидыЗданийФиас.Length == 0) return false; + if (ГуидыЗданийФиас.Length == 1) return ГуидыЗданийФиас[0] == адрес.ГуидЗданияФиас; + return ГуидыЗданийФиас.Contains(адрес.ГуидЗданияФиас); + } + + public bool ЗаполненГуидЗданияФиас => (ГуидыЗданийФиас != null && ГуидыЗданийФиас.Length > 0); + + public Guid? ОдинГуидЗданияФиас => (ЗаполненГуидЗданияФиас ? ГуидыЗданийФиас[0] : null); + + public override string ToString() + { + int числоЛС = ГуидыЛицевыхСчетов != null ? ГуидыЛицевыхСчетов.Length : 0; + int числоДомов = ГуидыЗданийФиас != null ? ГуидыЗданийФиас.Length : 0; + return $"{ВидПрибораУчета} {СтатусПрибораУчета} №{ЗаводскойНомер} [{МодельПрибораУчета}]" + + $"Гуид={ГуидПрибораУчета} ЧислоЛС={числоЛС} ЧислоДомов={числоДомов}"; + } + } + + public enum ГисВидПрибораУчета + { + ЖилоеПомещение, + НежилоеПомещение, + ОДПУ, + ЖилойДом, + ЖилаяКомната, + КоммунальнаяКвартира + } + + public enum ГисСтатусПрибораУчета { Активный, Архивный } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs new file mode 100644 index 0000000..858b39b --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsApi.cs @@ -0,0 +1,106 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.DebtRequestsApi +{ + public class HcsDebtRequestsApi + { + private HcsClientConfig config; + + public HcsDebtRequestsApi(HcsClientConfig config) + { + this.config = config; + } + + public async Task ExportDSRByRequestNumber( + string requestNumber, CancellationToken token = default) + { + var worker = new HcsDebtSubrequestExporter(config); + return await worker.ExportDSRByRequestNumber(requestNumber, token); + } + + /// + /// Получение списка запросов о наличии задолженности направленных в данный период + /// + public async Task ExportDSRsByPeriodOfSending( + DateTime startDate, + DateTime endDate, + Guid? firstSubrequestGuid, + Action resultHandler, + CancellationToken token = default) + { + var worker = new HcsDebtSubrequestExporter(config); + return await worker.ExportDSRsByPeriodOfSending( + startDate, endDate, firstSubrequestGuid, resultHandler, token); + } + + /// + /// Отправка пакета ответов на запросы о наличии задолженности + /// + public async Task ImportDSRsResponsesAsOneBatch( + HcsDebtResponse[] responses, + Action resultHandler, + CancellationToken token = default) + { + var worker = new HcsDebtResponseImporter(config); + var results = await worker.ImportDSRResponses(responses, token); + + foreach (var response in responses) + { + var result = results.FirstOrDefault( + x => x.SubrequestGuid == response.SubrequestGuid && + x.TransportGuid == response.TransportGuid); + + if (result == null) + { + result = new HcsDebtResponseResult(); + result.TransportGuid = response.TransportGuid; + result.SubrequestGuid = response.SubrequestGuid; + result.Error = new HcsException( + $"В пакете результатов приема ответов нет" + + $" результата для подзапроса {response.SubrequestGuid}"); + } + + resultHandler(response, result); + } + + return responses.Length; + } + + /// + /// Отправка ответов на запросы о наличии задолженности для списков любой длины + /// + public async Task ImportDSRsResponses( + HcsDebtResponse[] responses, + Action resultHandler, + CancellationToken token = default) + { + int chunkSize = 20; + int i = 0; + HcsDebtResponse[][] chunks = + responses.GroupBy(s => i++ / chunkSize).Select(g => g.ToArray()).ToArray(); + + int n = 0; + foreach (var chunk in chunks) + { + n += await ImportDSRsResponsesAsOneBatch(chunk, resultHandler, token); + } + + return n; + } + + /// + /// Отправка ответа на один запрос о наличии задолженности + /// + public async Task ImportDSRResponse( + HcsDebtResponse response, CancellationToken token = default) + { + HcsDebtResponse[] array = { response }; + HcsDebtResponseResult result = null; + await ImportDSRsResponses(array, (x, y) => result = y, token); + return result; + } + } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs new file mode 100644 index 0000000..f345dc1 --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtRequestsMethod.cs @@ -0,0 +1,135 @@ +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using DebtRequests = Hcs.Service.Async.DebtRequests.v14_5_0_1; + +namespace Hcs.Service.Async.DebtRequests.v14_5_0_1 +{ + public partial class AckRequestAck : IHcsAck { } + public partial class getStateResult : IHcsGetStateResult { } + public partial class Fault : IHcsFault { } + public partial class HeaderType : IHcsHeaderType { } +} + +namespace Hcs.ClientApi.DebtRequestsApi +{ + /// Метод для отправки запросов к сервису запросов о наличии задолженности + /// Описание: http://open-gkh.ru/DebtRequestsServiceAsync/ + public class HcsDebtRequestsMethod : HcsRemoteCallMethod + { + public HcsEndPoints EndPoint => HcsEndPoints.DebtRequestsAsync; + + public HcsDebtRequestsMethod(HcsClientConfig config) : base(config) + { + } + + public DebtRequests.RequestHeader CreateRequestHeader() => + HcsRequestHelper.CreateHeader(ClientConfig); + + public System.ServiceModel.EndpointAddress RemoteAddress + => GetEndpointAddress(HcsConstants.EndPointLocator.GetPath(EndPoint)); + + private DebtRequests.DebtRequestsAsyncPortClient NewPortClient() + { + var client = new DebtRequests.DebtRequestsAsyncPortClient(_binding, RemoteAddress); + ConfigureEndpointCredentials(client.Endpoint, client.ClientCredentials); + return client; + } + + /// + /// Метод отправления запроса + /// + public async Task SendAsync(object request, CancellationToken token) + { + Func> func = async () => await SendBareAsync(request); + return await RunRepeatableTaskInsistentlyAsync(func, token); + } + + private async Task SendBareAsync(object request) + { + if (request == null) throw new ArgumentNullException("Null request"); + string version = HcsRequestHelper.GetRequestVersionString(request); + _config.Log($"Отправляю {RemoteAddress.Uri}/{request.GetType().Name}" + + $" в версии {version} {ThreadIdText}..."); + + IHcsAck ack; + using (var client = NewPortClient()) + { + switch (request) + { + + case DebtRequests.exportDebtSubrequestsRequest x: + { + var response = await client.exportDebtSubrequestsAsync(x.RequestHeader, x.exportDSRsRequest); + ack = response.AckRequest.Ack; + break; + } + + case DebtRequests.importResponsesRequest x: + { + var response = await client.importResponsesAsync(x.RequestHeader, x.importDSRResponsesRequest); + ack = response.AckRequest.Ack; + break; + } + + default: + throw new HcsException($"Неизвестный тип запроса: {request.GetType().Name}"); + } + } + + _config.Log($"Запрос принят в обработку, подтверждение {ack.MessageGUID}"); + return ack; + } + + /// + /// Выполняет однократную проверку наличия результата. + /// Возвращает null если результата еще нет. + /// + protected override async Task TryGetResultAsync( + IHcsAck sourceAck, CancellationToken token = default) + { + Func> func = async () => await TryGetResultBareAsync(sourceAck); + return await RunRepeatableTaskInsistentlyAsync(func, token); + } + + private async Task TryGetResultBareAsync(IHcsAck sourceAck) + { + using (var client = NewPortClient()) + { + var requestHeader = HcsRequestHelper.CreateHeader(_config); + var requestBody = new DebtRequests.getStateRequest { MessageGUID = sourceAck.MessageGUID }; + + var response = await client.getStateAsync(requestHeader, requestBody); + var resultBody = response.getStateResult; + + if (resultBody.RequestState == HcsAsyncRequestStateTypes.Ready) + { + CheckResultForErrors(resultBody); + return resultBody; + } + + return null; + } + } + + private void CheckResultForErrors(IHcsGetStateResult result) + { + if (result == null) throw new HcsException("Пустой result"); + + if (result.Items == null) throw new HcsException("Пустой result.Items"); + + result.Items.OfType().ToList().ForEach(x => + { + throw HcsRemoteException.CreateNew(x.ErrorCode, x.ErrorMessage); + }); + + result.Items.OfType().ToList().ForEach(x => + { + throw HcsRemoteException.CreateNew(x.ErrorCode, x.Description); + }); + } + } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs new file mode 100644 index 0000000..f7855a5 --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponse.cs @@ -0,0 +1,40 @@ +using System; + +namespace Hcs.ClientApi.DebtRequestsApi +{ + /// + /// Ответ на запрос о наличии задолженности + /// + public class HcsDebtResponse + { + // Добавить в XML-описание + public Guid TransportGuid; // Идентификатор ответа в отправляющей системе + public Guid SubrequestGuid; // Идентификатор подзапроса + public bool HasDebt; + public HcsPersonalData[] PersonalData; + public string Description; + } + + /// + /// Сведения о должнике + /// + public class HcsPersonalData + { + public string FirstName; + public string MiddleName; + public string LastName; + } + + /// + /// Результат отправки ответа на запрос о наличии задолженности + /// + public class HcsDebtResponseResult + { + // Добавить в XML-описание + public Guid TransportGuid; // Идентификатор ответа в отправляющей системе + public Guid SubrequestGuid; // Идентификатор подзапроса + public Exception Error; // Ожибка отправки если указано + public DateTime UpdateDate; // Дата успешного приема ответа если не указана ошибка + public bool HasError => (Error != null); + } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs new file mode 100644 index 0000000..b4db1db --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtResponseImporter.cs @@ -0,0 +1,141 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using DebtRequests = Hcs.Service.Async.DebtRequests.v14_5_0_1; + +namespace Hcs.ClientApi.DebtRequestsApi +{ + public class HcsDebtResponseImporter : HcsDebtRequestsMethod + { + public HcsDebtResponseImporter(HcsClientConfig config) : base(config) + { + } + + public async Task ImportDSRResponses( + HcsDebtResponse[] debtResponses, CancellationToken token = default) + { + if (debtResponses == null || debtResponses.Length == 0) + throw new ArgumentException("Пустой debtResponses"); + + var actions = debtResponses.Select(x => ConvertToImportAction(x)).ToArray(); + + var requestHeader = CreateRequestHeader(); + var requestBody = new DebtRequests.importDSRResponsesRequest + { + Id = HcsConstants.SignedXmlElementId, + // TODO: Проверить комментарий + // Версия предустановлена в WSDL, реальная версия шаблонов дает ошибку "Bad Request" + //version = HcsConstants.DefaultHCSVersionString, + action = actions + }; + + var request = new DebtRequests.importResponsesRequest + { + RequestHeader = requestHeader, + importDSRResponsesRequest = requestBody + }; + + var ack = await SendAsync(request, token); + var result = await WaitForResultAsync(ack, true, token); + + var responseResults = result.Items.Select( + x => ParseDebtResponseResultSafely(x)).ToArray(); + + if (debtResponses.Length != responseResults.Length) + throw new HcsException( + $"Количество направленных ответов {debtResponses.Length} не совпадает" + + $" с количеством {responseResults.Length} результатов обработки"); + + foreach (var response in debtResponses) + { + var found = responseResults.FirstOrDefault(x => x.TransportGuid == response.TransportGuid); + if (found != null) found.SubrequestGuid = response.SubrequestGuid; + } + + return responseResults; + } + + private DebtRequests.importDSRResponsesRequestAction ConvertToImportAction( + HcsDebtResponse source) + { + DebtRequests.DebtInfoType[] debtInfo = null; + if (source.HasDebt) + { + if (IsArrayEmpty(source.PersonalData)) throw new HcsException("Не указаны должники"); + debtInfo = source.PersonalData.Select(x => new DebtRequests.DebtInfoType + { + person = new DebtRequests.DebtInfoTypePerson + { + firstName = x.FirstName, + lastName = x.LastName, + middleName = x.MiddleName + } + }).ToArray(); + } + + var responseData = new DebtRequests.ImportDSRResponseType() + { + hasDebt = source.HasDebt, + description = source.Description, + Items = debtInfo, + // TODO: Проверить комментарий + //debtInfo = debtInfo, // Так было в hcs-v13 + executorGUID = ClientConfig.ExecutorGUID + }; + + return new DebtRequests.importDSRResponsesRequestAction() + { + subrequestGUID = source.SubrequestGuid.ToString(), + TransportGUID = source.TransportGuid.ToString(), + actionType = DebtRequests.DSRResponseActionType.Send, + responseData = responseData + }; + } + + private HcsDebtResponseResult ParseDebtResponseResultSafely(object resultItem) + { + try + { + return ParseDebtResponseResult(resultItem); + } + catch (Exception e) + { + return new HcsDebtResponseResult() { Error = e }; + } + } + + private HcsDebtResponseResult ParseDebtResponseResult(object resultItem) + { + if (resultItem == null) throw new HcsException("Пустой resultItem"); + + var common = resultItem as DebtRequests.CommonResultType; + if (common == null) throw new HcsException($"Неожиданный тип экземпляра ответа {resultItem.GetType()}"); + + if (common.Items == null || common.Items.Length == 0) + throw new HcsException("Пустой набор common.Items"); + + var result = new HcsDebtResponseResult(); + foreach (var commonItem in common.Items) + { + if (commonItem == null) throw new HcsException("Пустой commonItem"); + + switch (commonItem) + { + case DebtRequests.CommonResultTypeError error: + result.Error = new HcsRemoteException(error.ErrorCode, error.Description); + break; + case DateTime updateDate: + result.UpdateDate = updateDate; + break; + default: + throw new HcsException($"Неожиданный тип сommonItem" + commonItem.GetType()); + } + } + + result.TransportGuid = ParseGuid(common.TransportGUID); + return result; + } + } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs new file mode 100644 index 0000000..8513b3f --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequest.cs @@ -0,0 +1,39 @@ +using System; + +namespace Hcs.ClientApi.DebtRequestsApi +{ + /// + /// Подзапрос о наличии задолженности за ЖКУ у организаци предоставляющей ЖКУ. + /// В терминологии ГИСЖКХ это называется Subrequests, потому что сама ГИСЖКХ выбирает организации, + /// которым (пере)направляется оригинальный запрос о наличии задолженности направленный его источником + /// в ГИСЖКХ. + /// + public class HcsDebtSubrequest + { + public enum ResponseStatusType { Sent, NotSent, AutoGenerated } + + // TODO: Добавить XML-описания + public Guid SubrequestGuid; // Идентификатор подзапроса направленный конкретному поставщику ЖКУ + public Guid RequestGuid; // Идентификатор первичного запроса направленного соццентром всем поставщикам + public string RequestNumber; // Номер запроса + public DateTime SentDate; // Дата направления + public string Address; // Строка адреса из запроса + public Guid FiasHouseGuid; // Идентификатор здания в ФИАС + public Guid GisHouseGuid; // Идентификатор здания в ГИСЖКХ + public Guid HМObjectGuid; // Идентификатор помещения в ГИСЖКХ (v14) + public string HMObjectType; // Тип помещения (v14) + public string AddressDetails; // Номер помещения (не заполняется в v14) + public DateTime DebtStartDate; // Начало периода задолженности + public DateTime DebtEndDate; // Конец периода задолженности + public ResponseStatusType ResponseStatus; // Признак отправления запроса + public DateTime ResponseDate; // Дата ответа + + public override string ToString() + { + return + $"ПодзапросОНЗ #{RequestNumber}" + + $" Address=[{Address}] Details=[{AddressDetails}]" + + $" HMO={HМObjectGuid} Sent={SentDate} ResponseStatus={ResponseStatus}"; + } + } +} diff --git a/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs new file mode 100644 index 0000000..b3c3ed3 --- /dev/null +++ b/Hcs.Client/ClientApi/DebtRequestsApi/HcsDebtSubrequestExporter.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using DebtRequests = Hcs.Service.Async.DebtRequests.v14_5_0_1; + +namespace Hcs.ClientApi.DebtRequestsApi +{ + /// + /// Метод получения данных о направленных нам (под)запросах о наличии задолженности + /// + public class HcsDebtSubrequestExporter : HcsDebtRequestsMethod + { + public HcsDebtSubrequestExporter(HcsClientConfig config) : base(config) + { + EnableMinimalResponseWaitDelay = true; + } + + public class DSRsBatch + { + public List DebtSubrequests = new List(); + public Guid NextSubrequestGuid; + public bool LastPage; + } + + public async Task ExportDSRByRequestNumber(string requestNumber, CancellationToken token) + { + var conditionTypes = new List(); + var conditionValues = new List(); + + conditionTypes.Add(DebtRequests.ItemsChoiceType5.requestNumber); + conditionValues.Add(requestNumber); + + var result = await ExportSubrequestBatchByCondition( + conditionTypes.ToArray(), conditionValues.ToArray(), token); + + int n = result.DebtSubrequests.Count; + if (n == 0) return null; + if (n == 1) return result.DebtSubrequests[0]; + throw new HcsException( + $"По номеру запроса о наличии задолженности №{requestNumber}" + + $" получено несколько ({n}) ответов, ожидался только один"); + } + + public async Task ExportDSRsByPeriodOfSending( + DateTime startDate, DateTime endDate, Guid? firstSubrequestGuid, + Action resultHandler, CancellationToken token = default) + { + int numResults = 0; + Guid? nextSubrequestGuid = firstSubrequestGuid; + bool firstGuidIsReliable = false; + + while (true) + { + if (numResults == 0) Log("Запрашиваем первую партию записей..."); + else Log($"Запрашиваем следующую партию записей, уже получено {numResults}..."); + + var batch = await ExportDSRsBatchByPeriodOfSending( + startDate, endDate, nextSubrequestGuid, token, firstGuidIsReliable); + + foreach (var s in batch.DebtSubrequests) + { + if (resultHandler != null) resultHandler(s); + numResults += 1; + } + + if (batch.LastPage) break; + nextSubrequestGuid = batch.NextSubrequestGuid; + firstGuidIsReliable = true; + } + + return numResults; + } + + public async Task ExportDSRsBatchByPeriodOfSending( + DateTime startDate, DateTime endDate, Guid? firstSubrequestGuid, + CancellationToken token, bool firstGuidIsReliable) + { + var conditionTypes = new List(); + var conditionValues = new List(); + + conditionTypes.Add(DebtRequests.ItemsChoiceType5.periodOfSendingRequest); + conditionValues.Add(new DebtRequests.Period() { startDate = startDate, endDate = endDate }); + + if (firstSubrequestGuid != null) + { + conditionTypes.Add(DebtRequests.ItemsChoiceType5.exportSubrequestGUID); + conditionValues.Add(firstSubrequestGuid.ToString()); + } + + Func> taskFunc = async () + => await ExportSubrequestBatchByCondition( + conditionTypes.ToArray(), conditionValues.ToArray(), token); + + Func canIgnoreFunc = delegate (Exception e) + { + return CanIgnoreSuchException(e, firstGuidIsReliable); + }; + + return await RunRepeatableTaskAsync(taskFunc, canIgnoreFunc, int.MaxValue); + } + + private async Task ExportSubrequestBatchByCondition( + DebtRequests.ItemsChoiceType5[] conditionTypes, object[] conditionValues, + CancellationToken token) + { + var requestHeader = CreateRequestHeader(); + var requestBody = new DebtRequests.exportDSRsRequest + { + Id = HcsConstants.SignedXmlElementId, + // TODO: Тут напрямую указывается версия + version = "14.0.0.0", + ItemsElementName = conditionTypes, + Items = conditionValues + }; + + var request = new DebtRequests.exportDebtSubrequestsRequest + { + RequestHeader = requestHeader, + exportDSRsRequest = requestBody + }; + + var ack = await SendAsync(request, token); + + try + { + var result = await WaitForResultAsync(ack, true, token); + return ParseExportResultBatch(result); + } + catch (HcsNoResultsRemoteException) + { + return new DSRsBatch() { LastPage = true }; + } + } + + private DSRsBatch ParseExportResultBatch(RemoteCaller.IHcsGetStateResult result) + { + var batch = new DSRsBatch(); + + result.Items.OfType().ToList().ForEach(r => + { + Log($"Принято запросов о наличии задолженности: {r.subrequestData?.Count()}"); + + // на последней странице вывода может не быть ни одной записи + if (r.subrequestData != null) + { + r.subrequestData.ToList().ForEach(s => { batch.DebtSubrequests.Add(Adapt(s)); }); + } + + if (r.pagedOutput == null || r.pagedOutput.Item == null) batch.LastPage = true; + else + { + var item = r.pagedOutput.Item; + if (item is bool && (bool)item == true) batch.LastPage = true; + else if (!Guid.TryParse(item.ToString(), out batch.NextSubrequestGuid)) + throw new HcsException($"Неожиданное значение pagedOutput [{item}]"); + } + }); + + return batch; + } + + private HcsDebtSubrequest Adapt(DebtRequests.DSRType s) + { + var dsr = new HcsDebtSubrequest(); + dsr.SubrequestGuid = ParseGuid(s.subrequestGUID); + dsr.RequestGuid = ParseGuid(s.requestInfo.requestGUID); + dsr.RequestNumber = s.requestInfo.requestNumber; + dsr.SentDate = s.requestInfo.sentDate; + dsr.Address = s.requestInfo.housingFundObject.address; + + var hfo = s.requestInfo.housingFundObject; + if (hfo.Items != null && + hfo.ItemsElementName != null && + hfo.Items.Length == hfo.ItemsElementName.Length) + { + + for (int i = 0; i < hfo.Items.Length; i++) + { + string itemValue = hfo.Items[i]; + switch (hfo.ItemsElementName[i]) + { + case DebtRequests.ItemsChoiceType7.HMobjectGUID: + dsr.HМObjectGuid = ParseGuid(itemValue); + break; + case DebtRequests.ItemsChoiceType7.houseGUID: + dsr.GisHouseGuid = ParseGuid(itemValue); + break; + case DebtRequests.ItemsChoiceType7.adressType: + dsr.HMObjectType = itemValue; + break; + case DebtRequests.ItemsChoiceType7.addressDetails: + dsr.AddressDetails = itemValue; + break; + } + } + } + + if (!string.IsNullOrEmpty(hfo.fiasHouseGUID)) + { + dsr.FiasHouseGuid = ParseGuid(hfo.fiasHouseGUID); + } + + // TODO: Проверить комментарий + // Из hcs-v13 + //dsr.GisHouseGuid = ParseGuid(s.requestInfo.housingFundObject.houseGUID); + //dsr.AddressDetails = s.requestInfo.housingFundObject.addressDetails; + + dsr.DebtStartDate = s.requestInfo.period.startDate; + dsr.DebtEndDate = s.requestInfo.period.endDate; + dsr.ResponseStatus = ConvertStatusType(s.responseStatus); + dsr.ResponseDate = s.requestInfo.responseDate; + + return dsr; + } + + private HcsDebtSubrequest.ResponseStatusType ConvertStatusType(DebtRequests.ResponseStatusType type) + { + switch (type) + { + case DebtRequests.ResponseStatusType.Sent: return HcsDebtSubrequest.ResponseStatusType.Sent; + case DebtRequests.ResponseStatusType.NotSent: return HcsDebtSubrequest.ResponseStatusType.NotSent; + case DebtRequests.ResponseStatusType.AutoGenerated: return HcsDebtSubrequest.ResponseStatusType.AutoGenerated; + default: throw new HcsException("Неизвестный статус отправки ответа: " + type); + } + } + + // TODO: Проверить игнорирование ошибок + private bool CanIgnoreSuchException(Exception e, bool firstGuidIsReliable) + { + // "Произошла ошибка при передаче данных. Попробуйте осуществить передачу данных повторно." + if (HcsUtil.EnumerateInnerExceptions(e).Any( + x => x is HcsRemoteException && (x as HcsRemoteException).ErrorCode == "EXP001000")) + { + return true; + } + + // Возникающий на больших списках отказ возобновляемый, учитывем факт что GUID был + // получен из ГИСЖКХ и явно является надежным + if (firstGuidIsReliable && HcsUtil.EnumerateInnerExceptions(e).Any( + x => x.Message != null && x.Message.Contains("Error loading content: Content not found for guid:"))) + { + return true; + } + + return false; + } + } +} diff --git a/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringApi.cs b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringApi.cs new file mode 100644 index 0000000..ff098e5 --- /dev/null +++ b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringApi.cs @@ -0,0 +1,27 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.DeviceMeteringApi +{ + /// + /// Методы ГИС ЖКХ сервиса hcs-device-metering (показания приборов учета) + /// + public class HcsDeviceMeteringApi + { + public HcsClientConfig Config { get; private set; } + + public HcsDeviceMeteringApi(HcsClientConfig config) + { + this.Config = config; + } + + public async Task РазместитьПоказания( + ГисПриборУчета прибор, ГисПоказания показания, CancellationToken token = default) + { + var method = new HcsMethodImportMeteringDevicesValues(Config); + return await method.ImportMeteringDevicesValues(прибор, показания, token); + } + } +} diff --git a/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringMethod.cs b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringMethod.cs new file mode 100644 index 0000000..e354523 --- /dev/null +++ b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringMethod.cs @@ -0,0 +1,118 @@ +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using DeviceMetering = Hcs.Service.Async.DeviceMetering.v14_5_0_1; + +namespace Hcs.Service.Async.DeviceMetering.v14_5_0_1 +{ + public partial class AckRequestAck : IHcsAck { } + public partial class getStateResult : IHcsGetStateResult { } + public partial class Fault : IHcsFault { } + public partial class HeaderType : IHcsHeaderType { } +} + +namespace Hcs.ClientApi.DeviceMeteringApi +{ + public class HcsDeviceMeteringMethod : HcsRemoteCallMethod + { + public HcsEndPoints EndPoint => HcsEndPoints.DeviceMeteringAsync; + + public DeviceMetering.RequestHeader CreateRequestHeader() => + HcsRequestHelper.CreateHeader(ClientConfig); + + public HcsDeviceMeteringMethod(HcsClientConfig config) : base(config) { } + + public System.ServiceModel.EndpointAddress RemoteAddress + => GetEndpointAddress(HcsConstants.EndPointLocator.GetPath(EndPoint)); + + private DeviceMetering.DeviceMeteringPortTypesAsyncClient NewPortClient() + { + var client = new DeviceMetering.DeviceMeteringPortTypesAsyncClient(_binding, RemoteAddress); + ConfigureEndpointCredentials(client.Endpoint, client.ClientCredentials); + return client; + } + + public async Task SendAndWaitResultAsync( + object request, + Func> sender, + CancellationToken token) + { + while (true) + { + try + { + if (CanBeRestarted) + { + return await RunRepeatableTaskInsistentlyAsync( + async () => await SendAndWaitResultAsyncImpl(request, sender, token), token); + } + else + { + return await SendAndWaitResultAsyncImpl(request, sender, token); + } + } + catch (HcsRestartTimeoutException e) + { + if (!CanBeRestarted) throw new HcsException("Превышен лимит ожидания выполнения запроса", e); + Log($"Перезапускаем запрос типа {request.GetType().Name}..."); + } + } + } + + private async Task SendAndWaitResultAsyncImpl( + object request, + Func> sender, + CancellationToken token) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + string version = HcsRequestHelper.GetRequestVersionString(request); + _config.Log($"Отправляем запрос: {RemoteAddress.Uri}/{request.GetType().Name} в версии {version}..."); + + var stopWatch = System.Diagnostics.Stopwatch.StartNew(); + + IHcsAck ack; + using (var client = NewPortClient()) + { + ack = await sender(client); + } + + stopWatch.Stop(); + _config.Log($"Запрос принят в обработку за {stopWatch.ElapsedMilliseconds}мс., подтверждение {ack.MessageGUID}"); + + var stateResult = await WaitForResultAsync(ack, true, token); + + stateResult.Items.OfType().ToList().ForEach(x => + { + throw HcsRemoteException.CreateNew(x.ErrorCode, x.Description); + }); + + return stateResult; + } + + /// + /// Выполняет однократную проверку наличия результата. + /// Возвращает null если результата еще нет. + /// + protected override async Task TryGetResultAsync(IHcsAck sourceAck, CancellationToken token) + { + using (var client = NewPortClient()) + { + var requestHeader = HcsRequestHelper.CreateHeader(_config); + var requestBody = new DeviceMetering.getStateRequest { MessageGUID = sourceAck.MessageGUID }; + + var response = await client.getStateAsync(requestHeader, requestBody); + var resultBody = response.getStateResult; + + if (resultBody.RequestState == HcsAsyncRequestStateTypes.Ready) + { + return resultBody; + } + + return null; + } + } + } +} diff --git a/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringUtil.cs b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringUtil.cs new file mode 100644 index 0000000..28abb53 --- /dev/null +++ b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsDeviceMeteringUtil.cs @@ -0,0 +1,22 @@ +using System.Text.RegularExpressions; + +namespace Hcs.ClientApi.DeviceMeteringApi +{ + public class HcsDeviceMeteringUtil + { + public static string ConvertMeterReading(string reading, bool isRequired) + { + if (string.IsNullOrEmpty(reading)) return (isRequired ? "0" : null); + + // TODO: Проверить комментарий + // Исправляем типичный отказ ГИС в приеме показаний: заменяем запятую на точку + string betterReading = reading.Contains(",") ? reading.Replace(",", ".") : reading; + + // Шаблон из: http://open-gkh.ru/MeteringDeviceBase/MeteringValueType.html + var match = Regex.Match(betterReading, "^\\d{1,15}(\\.\\d{1,7})?$"); + if (match.Success) return betterReading; + + throw new HcsException($"Значение показания \"{reading}\" не соответствует требованиям ГИС: N.N"); + } + } +} diff --git a/Hcs.Client/ClientApi/DeviceMeteringApi/HcsMethodImportMeteringDevicesValues.cs b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsMethodImportMeteringDevicesValues.cs new file mode 100644 index 0000000..a3e957e --- /dev/null +++ b/Hcs.Client/ClientApi/DeviceMeteringApi/HcsMethodImportMeteringDevicesValues.cs @@ -0,0 +1,76 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using DeviceMetering = Hcs.Service.Async.DeviceMetering.v14_5_0_1; + +namespace Hcs.ClientApi.DeviceMeteringApi +{ + /// + /// Размещение в ГИС показаний прибора учета + /// http://open-gkh.ru/DeviceMetering/importMeteringDeviceValuesRequest.html + /// + public class HcsMethodImportMeteringDevicesValues : HcsDeviceMeteringMethod + { + public HcsMethodImportMeteringDevicesValues(HcsClientConfig config) : base(config) + { + CanBeRestarted = false; + } + + public async Task ImportMeteringDevicesValues( + ГисПриборУчета прибор, ГисПоказания показания, CancellationToken token) + { + if (прибор == null) throw new ArgumentNullException(nameof(прибор)); + if (показания == null) throw new ArgumentNullException(nameof(показания)); + + var current = new DeviceMetering.importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueCurrentValue() + { + TransportGUID = FormatGuid(Guid.NewGuid()), + DateValue = показания.ДатаСнятия, + MeteringValueT1 = HcsDeviceMeteringUtil.ConvertMeterReading(показания.ПоказанияТ1, false), + MeteringValueT2 = HcsDeviceMeteringUtil.ConvertMeterReading(показания.ПоказанияТ2, false), + MeteringValueT3 = HcsDeviceMeteringUtil.ConvertMeterReading(показания.ПоказанияТ3, false) + }; + + var electric = new DeviceMetering.importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValue() + { + CurrentValue = current + }; + + var value = new DeviceMetering.importMeteringDeviceValuesRequestMeteringDevicesValues() + { + ItemElementName = DeviceMetering.ItemChoiceType.MeteringDeviceRootGUID, + Item = FormatGuid(прибор.ГуидПрибораУчета), + Item1 = electric + }; + + var request = new DeviceMetering.importMeteringDeviceValuesRequest() + { + Id = HcsConstants.SignedXmlElementId, + MeteringDevicesValues = [value] + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importMeteringDeviceValuesAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + + if (IsArrayEmpty(stateResult.Items)) throw new HcsException("Пустой stateResult.Items"); + + stateResult.Items.OfType().ToList() + .ForEach(error => { throw HcsRemoteException.CreateNew(error.ErrorCode, error.Description); }); + + var commonResult = RequireSingleItem(stateResult.Items); + if (IsArrayEmpty(commonResult.Items)) throw new HcsException("Пустой commonResult.Items"); + + DateTime датаПриема = commonResult.Items.OfType().FirstOrDefault(); + if (датаПриема == default) throw new HcsException("Сервер не вернул дату приема им показаний"); + return датаПриема; + } + } +} diff --git a/Hcs.Client/ClientApi/FileStoreServiceApi/HcsFileStoreServiceApi.cs b/Hcs.Client/ClientApi/FileStoreServiceApi/HcsFileStoreServiceApi.cs new file mode 100644 index 0000000..665bc20 --- /dev/null +++ b/Hcs.Client/ClientApi/FileStoreServiceApi/HcsFileStoreServiceApi.cs @@ -0,0 +1,394 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.FileStoreServiceApi +{ + /// + /// Описание протокола в файле "ГИС ЖКХ. Альбом ТФФ 14.5.0.1.docx" + /// 2.5 Описание протокола обмена файлами с внешними системами + public class HcsFileStoreServiceApi + { + public HcsClientConfig Config { get; private set; } + + /// + /// Максимальный размер в байтах части файла, которую разрешено + /// загружать на сервер по спецификации протокола + /// + private const int MAX_PART_LENGTH = 5242880; + + public HcsFileStoreServiceApi(HcsClientConfig config) + { + this.Config = config; + } + + /// + /// Путь к сервису хранения файлов ГИС ЖКХ на серевере API + /// + private const string ExtBusFileStoreServiceRest = "ext-bus-file-store-service/rest"; + + /// + /// Получение файла ранее загруженного в ГИС ЖКХ + /// + public async Task DownloadFile( + Guid fileGuid, HcsFileStoreContext context, CancellationToken token) + { + long length = await GetFileLength(context, fileGuid, token); + if (length <= MAX_PART_LENGTH) return await DownloadSmallFile(fileGuid, context, token); + return await DownloadLargeFile(fileGuid, length, context, token); + } + + /// + /// Получение файла по частям (не более 5Мб) по GUID файла + /// + private async Task DownloadLargeFile( + Guid fileGuid, long fileSize, HcsFileStoreContext context, CancellationToken token) + { + if (fileSize <= MAX_PART_LENGTH) + throw new ArgumentException("Too short file for partial download"); + + string requestUri = ComposeFileDownloadUri(fileGuid, context); + + var resultStream = new MemoryStream(); + string resultContentType = null; + using (var client = BuildHttpClient()) + { + + long doneSize = 0; + while (doneSize < fileSize) + { + + long remainderSize = fileSize - doneSize; + long partSize = Math.Min(remainderSize, MAX_PART_LENGTH); + + long fromPosition = doneSize; + long toPosition = fromPosition + partSize - 1; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + request.Headers.Range = new RangeHeaderValue(fromPosition, toPosition); + + var response = await SendRequestAsync(client, request, token); + resultContentType = response.Content.Headers.ContentType.ToString(); + + long? responseSize = response.Content.Headers.ContentLength; + if (responseSize == null || (long)responseSize != partSize) + throw new HcsException($"Получена часть файла длиной {responseSize}, а запрашивалась длина {partSize}"); + + using (var partStream = await response.Content.ReadAsStreamAsync()) + { + partStream.Position = 0; + await partStream.CopyToAsync(resultStream); + } + + doneSize += partSize; + } + + resultStream.Position = 0; + return new HcsFile(null, resultContentType, resultStream); + } + } + + private string ComposeFileDownloadUri(Guid fileGuid, HcsFileStoreContext context) + { + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}/{HcsUtil.FormatGuid(fileGuid)}?getfile"; + return Config.ComposeEndpointUri(endpointName); + } + + /// + /// Получение файла одной частью (не более 5Мб) по GUID файла + /// + private async Task DownloadSmallFile( + Guid fileGuid, HcsFileStoreContext context, CancellationToken token) + { + string requestUri = ComposeFileDownloadUri(fileGuid, context); + using (var client = BuildHttpClient()) + { + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + var response = await SendRequestAsync(client, request, token); + + return new HcsFile( + null, + response.Content.Headers.ContentType.ToString(), + await response.Content.ReadAsStreamAsync()); + } + } + + public async Task UploadFile(HcsFile file, HcsFileStoreContext context, CancellationToken token) + { + if (file is null) throw new ArgumentNullException(nameof(file)); + + if (file.Length <= MAX_PART_LENGTH) + { + return await UploadSmallFile(file, context, token); + } + else + { + return await UploadLargeFile(file, context, token); + } + } + + /// + /// Отправка большого файла по частям + /// + private async Task UploadLargeFile(HcsFile file, HcsFileStoreContext context, CancellationToken token) + { + using var client = BuildHttpClient(); + + if (file.Length == 0) throw new ArgumentException("Нельзя передавать файл нулевой длины"); + int numParts = (int)Math.Ceiling((double)file.Length / MAX_PART_LENGTH); + + Config.Log($"Запрашиваю UploadID для большого файла {file.FileName}"); + Guid uploadId = await QueryNewUploadId(client, context, file, numParts, token); + Config.Log($"Получил UploadID {uploadId} для отправки файла {file.FileName} размером {file.Length} байт"); + + long partOffset = 0; + for (int partNumber = 1; partNumber <= numParts; partNumber++) + { + + long lengthLeft = file.Length - partOffset; + int partLength = (int)Math.Min(lengthLeft, MAX_PART_LENGTH); + var partStream = new HcsPartialStream(file.Stream, partOffset, partLength); + + Config.Log($"Отправляю часть {partNumber}/{numParts} размером {partLength} байт для файла {file.FileName}"); + await UploadFilePart(client, context, uploadId, partNumber, partStream, token); + partOffset += partLength; + } + + Config.Log($"Отправляем признак завершения передачи файла {file.FileName}"); + await CompleteUpload(client, context, uploadId, token); + + Config.Log($"Файл {file.FileName} успешно передан, получен код файла {uploadId}"); + return uploadId; + } + + /// + /// Получение кода для загрузки большого файла из нескольких частей менее 5Мб + /// + private async Task QueryNewUploadId( + HttpClient client, HcsFileStoreContext context, HcsFile file, int numParts, CancellationToken token) + { + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}/?upload"; + string requestUri = Config.ComposeEndpointUri(endpointName); + + var content = new StringContent(""); + content.Headers.Add("X-Upload-Filename", CleanUploadFileName(file.FileName)); + content.Headers.Add("X-Upload-Length", file.Length.ToString()); + content.Headers.Add("X-Upload-Part-Count", numParts.ToString()); + + var request = new HttpRequestMessage(HttpMethod.Post, requestUri); + request.Content = content; + var response = await SendRequestAsync(client, request, token); + return ParseUploadIdFromReponse(response); + } + + private async Task UploadFilePart( + HttpClient client, HcsFileStoreContext context, Guid uploadId, int partNumber, Stream partStream, + CancellationToken token) + { + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}/{HcsUtil.FormatGuid(uploadId)}"; + string requestUri = Config.ComposeEndpointUri(endpointName); + + var content = new StreamContent(partStream); + content.Headers.Add("X-Upload-Partnumber", partNumber.ToString()); + content.Headers.ContentMD5 = ComputeMD5(partStream); + + var request = new HttpRequestMessage(HttpMethod.Put, requestUri); + request.Content = content; + await SendRequestAsync(client, request, token); + } + + private async Task CompleteUpload(HttpClient client, HcsFileStoreContext context, Guid uploadId, CancellationToken token) + { + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}/{HcsUtil.FormatGuid(uploadId)}?completed"; + string requestUri = Config.ComposeEndpointUri(endpointName); + + var request = new HttpRequestMessage(HttpMethod.Post, requestUri); + await SendRequestAsync(client, request, token); + } + + /// + /// Загрузка в ГИС ЖКХ файла до 5Мб размером одной операцией + /// + private async Task UploadSmallFile(HcsFile file, HcsFileStoreContext context, CancellationToken token) + { + using var client = BuildHttpClient(); + + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}"; + string requestUri = Config.ComposeEndpointUri(endpointName); + + Config.Log($"Начинаю upload малого файла [{file.FileName}] типа [{file.ContentType}] длиной {file.Length}"); + + if (file.Stream.Length != file.Length) + throw new HcsException($"Длина файла {file.Length} не соответствует размеру данных {file.Stream.Length}"); + + file.Stream.Position = 0; + + var content = new StreamContent(file.Stream); + content.Headers.Add("X-Upload-Filename", CleanUploadFileName(file.FileName)); + content.Headers.ContentMD5 = ComputeMD5(file.Stream); + + var request = new HttpRequestMessage(HttpMethod.Put, requestUri); + request.Content = content; + var response = await SendRequestAsync(client, request, token); + return ParseUploadIdFromReponse(response); + } + + /// + /// Получение информации о загружаемом или загруженном файле + /// + public async Task GetFileLength(HcsFileStoreContext context, Guid fileId, CancellationToken token) + { + using var client = BuildHttpClient(); + + string endpointName = $"{ExtBusFileStoreServiceRest}/{context.GetName()}/{HcsUtil.FormatGuid(fileId)}"; + string requestUri = Config.ComposeEndpointUri(endpointName); + + var request = new HttpRequestMessage(HttpMethod.Head, requestUri); + var response = await SendRequestAsync(client, request, token); + + long length = 0; + var lengthString = SearchResponseHeader(response, "X-Upload-Length"); + if (!string.IsNullOrEmpty(lengthString) && long.TryParse(lengthString, out length)) return length; + throw new HcsException("В ответе сервера не указана длина файла"); + } + + /// + /// Возвращает вычисленное значение AttachmentHASH для данных файла @stream + /// + public string ComputeAttachmentHash(Stream stream) + { + var client = Config as HcsClient; + if (client == null) throw new HcsException("Не доступен объект HcsClient для вычиления AttachmentHASH"); + + // TODO: Проверить комментарий + // В декабре 2024 у меня сломалось вычисление AttachmentHASH для файлов, я стал вычислять + // явно верным алгоритмом ГОСТ94 для больших файлов уже неверное значение суммы. В январе + // 2025 путем перебора вариантов я обнаружил что ГИСЖКХ теперь вычисляет AttachmentHASH + // только по первой части большого файла. + //int hashSourceMaxLength = MAX_PART_LENGTH; + //if (stream.Length <= hashSourceMaxLength) return client.ComputeGost94Hash(stream); + //return client.ComputeGost94Hash(new HcsPartialStream(stream, 0, hashSourceMaxLength)); + + // 29.01.2025 СТП ГИС ЖКХ ответила что "проведены работы" и теперь + // я вижу что они снова вычисляют AttachmantHASH по полному файлу + return client.ComputeGost94Hash(stream); + } + + private async Task SendRequestAsync( + HttpClient client, HttpRequestMessage request, CancellationToken token) + { + token.ThrowIfCancellationRequested(); + + Config.Log($"Отправляю запрос {request.Method} \"{request.RequestUri}\"..."); + + var response = await client.SendAsync(request, token); + if (response.IsSuccessStatusCode) return response; + throw new HcsException(DescribeResponseError(response)); + } + + private Guid ParseUploadIdFromReponse(HttpResponseMessage response) + { + string uploadIdheaderName = "X-Upload-UploadID"; + var uploadId = SearchResponseHeader(response, uploadIdheaderName); + if (uploadId != null) return HcsUtil.ParseGuid(uploadId); + throw new HcsException($"В ответе сервера нет заголовка {uploadIdheaderName}"); + } + + private HttpClient BuildHttpClient() + { + var _clientHandler = new HttpClientHandler(); + _clientHandler.ClientCertificates.Add(Config.Certificate); + _clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; + + var client = new HttpClient(_clientHandler); + client.DefaultRequestHeaders.Accept.Clear(); + + client.DefaultRequestHeaders.Add("X-Upload-OrgPPAGUID", Config.OrgPPAGUID); + return client; + } + + private string DescribeResponseError(HttpResponseMessage response) + { + string errorHeader = "X-Upload-Error"; + var message = SearchResponseHeader(response, errorHeader); + if (message != null) + { + if (knownErrors.ContainsKey(message)) return $"{errorHeader}: {message} ({knownErrors[message]})"; + return $"{errorHeader}: {message}"; + } + + return $"HTTP response status {response.StatusCode}"; + } + + private string SearchResponseHeader(HttpResponseMessage response, string headerName) + { + if (response.Headers.Any(x => x.Key == headerName)) + { + var pair = response.Headers.First(x => x.Key == headerName); + if (pair.Value != null && pair.Value.Any()) + { + return pair.Value.First(); + } + } + + return null; + } + + private static Dictionary knownErrors = new Dictionary() { + { "FieldValidationException", "не пройдены проверки на корректность заполнения полей (обязательность, формат и т.п.)" }, + { "FileNotFoundException", "не пройдены проверки на существование файла" }, + { "InvalidStatusException", "не пройдены проверки на корректный статус файла" }, + { "InvalidSizeException", "некорректный запрашиваемый размер файла" }, + { "FileVirusInfectionException", "содержимое файла инфицировано" }, + { "FileVirusNotCheckedException", "проверка на вредоносное содержимое не выполнялась" }, + { "FilePermissionException", "организация и внешняя система не имеют полномочий на скачивание файла" }, + { "DataProviderValidationException", "поставщик данных не найден, заблокирован или неактивен" }, + { "CertificateValidationException", "информационная система не найдена по отпечатку или заблокирована" }, + { "HashConflictException", "не пройдены проверки на соответствие контрольной сумме" }, + { "InvalidPartNumberException", "не пройдены проверки на номер части (номер превышает количество частей, указанных в инициализации)" }, + { "ContextNotFoundException", "неверное имя хранилища файлов" }, + { "ExtensionException", "недопустимое расширение файла" }, + { "DetectionException", "не удалось определить MIME-тип загружаемого файла" }, + { "INT002029", "сервис недоступен: выполняются регламентные работы" } + }; + + private byte[] ComputeMD5(System.IO.Stream stream) + { + var position = stream.Position; + var md5 = System.Security.Cryptography.MD5.Create().ComputeHash(stream); + stream.Position = position; + return md5; + } + + /// + /// Готовит имя размещаемого файла для помещения в заголовок HTTP-запроса + /// + private string CleanUploadFileName(string fileName) + { + if (fileName is null) return null; + + string bannedSymbols = "<>?:|*%\\\""; + + var buf = new StringBuilder(); + foreach (char ch in fileName) + { + if (bannedSymbols.Contains(ch)) buf.Append('_'); + else buf.Append(ch); + } + + // Спецификация предписывает кодировать имя файла по стандарту MIME RFC2047 + // https://datatracker.ietf.org/doc/html/rfc2047 + // Как имя кодировки можно явно использовать константу "windows-1251". + string characterSet = Encoding.Default.WebName; + return EncodedWord.RFC2047.Encode( + buf.ToString(), EncodedWord.RFC2047.ContentEncoding.Base64, characterSet); + } + } +} diff --git a/Hcs.Client/ClientApi/FileStoreServiceApi/RFC2047.cs b/Hcs.Client/ClientApi/FileStoreServiceApi/RFC2047.cs new file mode 100644 index 0000000..04117f3 --- /dev/null +++ b/Hcs.Client/ClientApi/FileStoreServiceApi/RFC2047.cs @@ -0,0 +1,374 @@ +//=============================================================================== +// RFC2047 (Encoded Word) Decoder +// https://github.com/grumpydev/RFC2047-Encoded-Word-Encoder-Decoder/blob/master/EncodedWord/RFC2047.cs +// http://tools.ietf.org/html/rfc2047 +//=============================================================================== +// Copyright © Steven Robbins. All rights reserved. +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY +// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT +// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE. +//=============================================================================== + +namespace EncodedWord +{ + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Text; + using System.Text.RegularExpressions; + + /// + /// Provides support for decoding RFC2047 (Encoded Word) encoded text + /// + public static class RFC2047 + { + /// + /// Regex for parsing encoded word sections + /// From http://tools.ietf.org/html/rfc2047#section-3 + /// encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" + /// + private static readonly Regex EncodedWordFormatRegEx = new Regex(@"=\?(?.*?)\?(?[qQbB])\?(?.*?)\?=", RegexOptions.Singleline | RegexOptions.Compiled); + + /// + /// Regex for removing CRLF SPACE separators from between encoded words + /// + private static readonly Regex EncodedWordSeparatorRegEx = new Regex(@"\?=\r\n =\?", RegexOptions.Compiled); + + /// + /// Replacement string for removing CRLF SPACE separators + /// + private const string SeparatorReplacement = @"?==?"; + + /// + /// The maximum line length allowed + /// + private const int MaxLineLength = 75; + + /// + /// Regex for "Q-Encoding" hex bytes from http://tools.ietf.org/html/rfc2047#section-4.2 + /// + private static readonly Regex QEncodingHexCodeRegEx = new Regex(@"(=(?[0-9a-fA-F][0-9a-fA-F]))", RegexOptions.Compiled); + + /// + /// Regex for replacing _ with space as declared in http://tools.ietf.org/html/rfc2047#section-4.2 + /// + private static readonly Regex QEncodingSpaceRegEx = new Regex("_", RegexOptions.Compiled); + + /// + /// Format for an encoded string + /// + private const string EncodedStringFormat = @"=?{0}?{1}?{2}?="; + + /// + /// Special characters, as defined by RFC2047 + /// + private static readonly char[] SpecialCharacters = { '(', ')', '<', '>', '@', ',', ';', ':', '<', '>', '/', '[', ']', '?', '.', '=', '\t' }; + + /// + /// Represents a content encoding type defined in RFC2047 + /// + public enum ContentEncoding + { + /// + /// Unknown / invalid encoding + /// + Unknown, + + /// + /// "Q Encoding" (reduced character set) encoding + /// http://tools.ietf.org/html/rfc2047#section-4.2 + /// + QEncoding, + + /// + /// Base 64 encoding + /// http://tools.ietf.org/html/rfc2047#section-4.1 + /// + Base64 + } + + /// + /// Encode a string into RFC2047 + /// + /// Plain string to encode + /// Content encoding to use + /// Character set used by plainString + /// Encoded string + public static string Encode(string plainString, ContentEncoding contentEncoding = ContentEncoding.QEncoding, string characterSet = "iso-8859-1") + { + if (String.IsNullOrEmpty(plainString)) + { + return String.Empty; + } + + if (contentEncoding == ContentEncoding.Unknown) + { + throw new ArgumentException("contentEncoding cannot be unknown for encoding.", "contentEncoding"); + } + + if (!IsSupportedCharacterSet(characterSet)) + { + throw new ArgumentException("characterSet is not supported", "characterSet"); + } + + var textEncoding = Encoding.GetEncoding(characterSet); + + var encoder = GetContentEncoder(contentEncoding); + + var encodedContent = encoder.Invoke(plainString, textEncoding); + + return BuildEncodedString(characterSet, contentEncoding, encodedContent); + } + + /// + /// Decode a string containing RFC2047 encoded sections + /// + /// String contaning encoded sections + /// Decoded string + public static string Decode(string encodedString) + { + // Remove separators + var decodedString = EncodedWordSeparatorRegEx.Replace(encodedString, SeparatorReplacement); + + return EncodedWordFormatRegEx.Replace( + decodedString, + m => + { + var contentEncoding = GetContentEncodingType(m.Groups["encoding"].Value); + if (contentEncoding == ContentEncoding.Unknown) + { + // Regex should never match, but return anyway + return string.Empty; + } + + var characterSet = m.Groups["charset"].Value; + if (!IsSupportedCharacterSet(characterSet)) + { + // Fall back to iso-8859-1 if invalid/unsupported character set found + characterSet = @"iso-8859-1"; + } + + var textEncoding = Encoding.GetEncoding(characterSet); + var contentDecoder = GetContentDecoder(contentEncoding); + var encodedText = m.Groups["encodedtext"].Value; + + return contentDecoder.Invoke(encodedText, textEncoding); + }); + } + + /// + /// Determines if a character set is supported + /// + /// Character set name + /// Bool representing whether the character set is supported + private static bool IsSupportedCharacterSet(string characterSet) + { + return Encoding.GetEncodings() + .Where(e => String.Equals(e.Name, characterSet, StringComparison.InvariantCultureIgnoreCase)) + .Any(); + } + + /// + /// Gets the content encoding type from the encoding character + /// + /// Content contentEncodingCharacter character + /// ContentEncoding type + private static ContentEncoding GetContentEncodingType(string contentEncodingCharacter) + { + switch (contentEncodingCharacter) + { + case "Q": + case "q": + return ContentEncoding.QEncoding; + case "B": + case "b": + return ContentEncoding.Base64; + default: + return ContentEncoding.Unknown; + } + } + + /// + /// Gets the content decoder delegate for the given content encoding type + /// + /// Content encoding type + /// Decoding delegate + private static Func GetContentDecoder(ContentEncoding contentEncoding) + { + switch (contentEncoding) + { + case ContentEncoding.Base64: + return DecodeBase64; + case ContentEncoding.QEncoding: + return DecodeQEncoding; + default: + // Will never get here, but return a "null" delegate anyway + return (s, e) => String.Empty; + } + } + + /// + /// Gets the content encoder delegate for the given content encoding type + /// + /// Content encoding type + /// Encoding delegate + private static Func GetContentEncoder(ContentEncoding contentEncoding) + { + switch (contentEncoding) + { + case ContentEncoding.Base64: + return EncodeBase64; + case ContentEncoding.QEncoding: + return EncodeQEncoding; + default: + // Will never get here, but return a "null" delegate anyway + return (s, e) => String.Empty; + } + } + + /// + /// Decodes a base64 encoded string + /// + /// Encoded text + /// Encoding instance for the code page required + /// Decoded string + private static string DecodeBase64(string encodedText, Encoding textEncoder) + { + var encodedBytes = Convert.FromBase64String(encodedText); + + return textEncoder.GetString(encodedBytes); + } + + /// + /// Encodes a base64 encoded string + /// + /// Plain text + /// Encoding instance for the code page required + /// Encoded string + private static string EncodeBase64(string plainText, Encoding textEncoder) + { + var plainTextBytes = textEncoder.GetBytes(plainText); + + return Convert.ToBase64String(plainTextBytes); + } + + /// + /// Decodes a "Q encoded" string + /// + /// Encoded text + /// Encoding instance for the code page required + /// Decoded string + private static string DecodeQEncoding(string encodedText, Encoding textEncoder) + { + var decodedText = QEncodingSpaceRegEx.Replace(encodedText, " "); + + decodedText = QEncodingHexCodeRegEx.Replace( + decodedText, + m => + { + var hexString = m.Groups["hexcode"].Value; + + int characterValue; + if (!int.TryParse(hexString, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out characterValue)) + { + return String.Empty; + } + + return textEncoder.GetString(new[] { (byte)characterValue }); + }); + + return decodedText; + } + + /// + /// Encodes a "Q encoded" string + /// + /// Plain text + /// Encoding instance for the code page required + /// Encoded string + private static string EncodeQEncoding(string plainText, Encoding textEncoder) + { + if (textEncoder.GetByteCount(plainText) != plainText.Length) + { + throw new ArgumentException("Q encoding only supports single byte encodings", "textEncoder"); + } + + var specialBytes = textEncoder.GetBytes(SpecialCharacters); + + var sb = new StringBuilder(plainText.Length); + + var plainBytes = textEncoder.GetBytes(plainText); + + // Replace "high" values + for (int i = 0; i < plainBytes.Length; i++) + { + if (plainBytes[i] <= 127 && !specialBytes.Contains(plainBytes[i])) + { + sb.Append(Convert.ToChar(plainBytes[i])); + } + else + { + sb.Append("="); + sb.Append(Convert.ToString(plainBytes[i], 16).ToUpper()); + } + } + + return sb.ToString().Replace(" ", "_"); + } + + /// + /// Builds the full encoded string representation + /// + /// Characterset to use + /// Content encoding to use + /// Content, encoded to the above parameters + /// Valid RFC2047 string + private static string BuildEncodedString(string characterSet, ContentEncoding contentEncoding, string encodedContent) + { + var encodingCharacter = String.Empty; + + switch (contentEncoding) + { + case ContentEncoding.Base64: + encodingCharacter = "B"; + break; + case ContentEncoding.QEncoding: + encodingCharacter = "Q"; + break; + } + + var wrapperLength = string.Format(EncodedStringFormat, characterSet, encodingCharacter, String.Empty).Length; + var chunkLength = MaxLineLength - wrapperLength; + + if (encodedContent.Length <= chunkLength) + { + return string.Format(EncodedStringFormat, characterSet, encodingCharacter, encodedContent); + } + + var sb = new StringBuilder(); + foreach (var chunk in SplitStringByLength(encodedContent, chunkLength)) + { + sb.AppendFormat(EncodedStringFormat, characterSet, encodingCharacter, chunk); + sb.Append("\r\n "); + } + + return sb.ToString(); + } + + /// + /// Splits a string into chunks + /// + /// Input string + /// Size of each chunk + /// String collection of chunked strings + public static IEnumerable SplitStringByLength(this string inputString, int chunkSize) + { + for (int index = 0; index < inputString.Length; index += chunkSize) + { + yield return inputString.Substring(index, Math.Min(chunkSize, inputString.Length - index)); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HcsActionLogger.cs b/Hcs.Client/ClientApi/HcsActionLogger.cs new file mode 100644 index 0000000..d94626e --- /dev/null +++ b/Hcs.Client/ClientApi/HcsActionLogger.cs @@ -0,0 +1,19 @@ +using System; + +namespace Hcs.ClientApi +{ + public class HcsActionLogger : IHcsLogger + { + private Action logger; + + public HcsActionLogger(Action logger) + { + this.logger = logger; + } + + public void WriteLine(string message) + { + logger(message); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsCertificateHelper.cs b/Hcs.Client/ClientApi/HcsCertificateHelper.cs new file mode 100644 index 0000000..a885e79 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsCertificateHelper.cs @@ -0,0 +1,96 @@ +using GostCryptography.Base; +using System; +using System.Linq; +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.ClientApi +{ + public static class HcsCertificateHelper + { + public static bool IsGostPrivateKey(this X509Certificate2 certificate) + { + try + { + if (certificate.HasPrivateKey) + { + var cspInfo = certificate.GetPrivateKeyInfo(); + if (cspInfo.ProviderType == (int)ProviderType.CryptoPro || + cspInfo.ProviderType == (int)ProviderType.VipNet || + cspInfo.ProviderType == (int)ProviderType.CryptoPro_2012_512 || + cspInfo.ProviderType == (int)ProviderType.CryptoPro_2012_1024) + return true; + else + return false; + + } + return false; + } + catch + { + return false; + } + } + + public static Hcs.GostXades.CryptoProviderTypeEnum GetProviderType(this X509Certificate2 certificate) + { + return (Hcs.GostXades.CryptoProviderTypeEnum)GetProviderInfo(certificate).Item1; + } + + public static Tuple GetProviderInfo(this X509Certificate2 certificate) + { + if (certificate.HasPrivateKey) + { + var cspInfo = certificate.GetPrivateKeyInfo(); + return new Tuple(cspInfo.ProviderType, cspInfo.ProviderName); + } + else + throw new Exception("Certificate has no private key"); + } + + public static X509Certificate2 FindCertificate(Func predicate) + { + if (predicate == null) throw new ArgumentException("Null subject predicate"); + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + + try + { + store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); + + var collection = store.Certificates + .OfType() + .Where(x => x.HasPrivateKey && x.IsGostPrivateKey()); + + var now = DateTime.Now; + return collection.First( + x => now >= x.NotBefore && now <= x.NotAfter && predicate(x)); + } + finally + { + store.Close(); + } + } + + public static X509Certificate2 ShowCertificateUI() + { + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + try + { + store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); + + var collection = store.Certificates + .OfType() + .Where(x => x.HasPrivateKey && x.IsGostPrivateKey()); + + string prompt = "Выберите сертификат"; + var cert = X509Certificate2UI.SelectFromCollection( + new X509Certificate2Collection( + collection.ToArray()), prompt, "", X509SelectionFlag.SingleSelection)[0]; + return cert; + } + finally + { + store.Close(); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HcsClient.cs b/Hcs.Client/ClientApi/HcsClient.cs new file mode 100644 index 0000000..34ae10c --- /dev/null +++ b/Hcs.Client/ClientApi/HcsClient.cs @@ -0,0 +1,70 @@ +using GostCryptography.Gost_R3411; +using Hcs.ClientApi.DebtRequestsApi; +using Hcs.ClientApi.DeviceMeteringApi; +using Hcs.ClientApi.FileStoreServiceApi; +using Hcs.ClientApi.HouseManagementApi; +using Hcs.ClientApi.OrgRegistryCommonApi; +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.ClientApi +{ + /// + /// Единый клиент для вызова всех реализованных функций интеграции с ГИС ЖКХ + /// + public class HcsClient : HcsClientConfig + { + public HcsClient() + { + HcsServicePointConfig.InitConfig(); + + // TODO: Вынести в конфиг + // Роль поставщика информации по умолчанию + Role = HcsOrganizationRoles.RSO; + } + + public void SetSigningCertificate(X509Certificate2 cert, string pin = null) + { + if (cert == null) throw new ArgumentNullException("Не указан сертификат для подписания данных"); + if (pin == null) pin = HcsConstants.DefaultCertificatePin; + + Certificate = cert; + CertificateThumbprint = cert.Thumbprint; + CertificatePassword = pin; + CryptoProviderType = cert.GetProviderType(); + } + + public HcsDebtRequestsApi DebtRequests => new HcsDebtRequestsApi(this); + public HcsHouseManagementApi HouseManagement => new HcsHouseManagementApi(this); + public HcsOrgRegistryCommonApi OrgRegistryCommon => new HcsOrgRegistryCommonApi(this); + public HcsFileStoreServiceApi FileStoreService => new HcsFileStoreServiceApi(this); + public HcsDeviceMeteringApi DeviceMeteringService => new HcsDeviceMeteringApi(this); + + public X509Certificate2 FindCertificate(Func predicate) + { + return HcsCertificateHelper.FindCertificate(predicate); + } + + public X509Certificate2 ShowCertificateUI() + { + return HcsCertificateHelper.ShowCertificateUI(); + } + + /// + /// Производит для потока хэш по алгоритму "ГОСТ Р 34.11-94" в строке binhex + /// + public string ComputeGost94Hash(System.IO.Stream stream) + { + // API HouseManagement указывает, что файлы приложенные к договору должны размещаться + // с AttachmentHASH по стандарту ГОСТ. Оказывается, ГИСЖКХ требует применения устаревшего + // алгоритма ГОСТ Р 34.11-94 (соответствует `rhash --gost94-cryptopro file` в linux). + using var algorithm = new Gost_R3411_94_HashAlgorithm(GostCryptoProviderType); + var savedPosition = stream.Position; + stream.Position = 0; + var hashValue = HcsUtil.ConvertToHexString(algorithm.ComputeHash(stream)); + stream.Position = savedPosition; + return hashValue; + } + } +} diff --git a/Hcs.Client/ClientApi/HcsClientConfig.cs b/Hcs.Client/ClientApi/HcsClientConfig.cs new file mode 100644 index 0000000..7526acd --- /dev/null +++ b/Hcs.Client/ClientApi/HcsClientConfig.cs @@ -0,0 +1,95 @@ +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.ClientApi +{ + /// + /// Конфигурация клиента + /// + public class HcsClientConfig + { + /// + /// Идентификатор поставщика данных ГИС + /// + public string OrgPPAGUID { get; set; } + + /// + /// Идентификатор организации в ГИС + /// + public string OrgEntityGUID { get; set; } + + /// + /// Тип криптопровайдера полученный из сертификата + /// + public Hcs.GostXades.CryptoProviderTypeEnum CryptoProviderType { get; internal set; } + + public GostCryptography.Base.ProviderType GostCryptoProviderType => + (GostCryptography.Base.ProviderType)CryptoProviderType; + + /// + /// Сертификат клиента для применения при формировании запросов + /// + public X509Certificate2 Certificate { get; internal set; } + + /// + /// Отпечаток сертификата + /// + public string CertificateThumbprint { get; internal set; } + + /// + /// Пароль доступа к сертификату + /// + public string CertificatePassword { get; internal set; } + + /// + /// Исполнитель/сотрудник ГИСЖКХ от которого будут регистрироваться ответы + /// + public string ExecutorGUID { get; set; } + + /// + /// Признак - указывает на то, что используется внешний туннель (stunnel) + /// + public bool UseTunnel { get; set; } + + /// + /// true - использовать адреса ППАК стенда иначе СИТ + /// + public bool IsPPAK { get; set; } + + /// + /// Роль + /// + public HcsOrganizationRoles Role { get; set; } + + /// + /// Устанавливаемый пользователем приемник отладочных сообщений + /// + public IHcsLogger Logger { get; set; } + + /// + /// Выводит сообщение в установленный приемник отладочных сообщений + /// + public void Log(string message) => Logger?.WriteLine(message); + + /// + /// Устанавливаемый пользователем механизм перехвата содержимого отправляемых + /// и принимаемых пакетов + /// + public IHcsMessageCapture MessageCapture; + + /// + /// Отправляет тело сообщения в установленный перехватчик + /// + public void MaybeCaptureMessage(bool sent, string messageBody) + => MessageCapture?.CaptureMessage(sent, messageBody); + + public string ComposeEndpointUri(string endpointName) + { + if (UseTunnel) + return $"http://{HcsConstants.Address.UriTunnel}/{endpointName}"; + + return IsPPAK ? + $"https://{HcsConstants.Address.UriPPAK}/{endpointName}" + : $"https://{HcsConstants.Address.UriSIT01}/{endpointName}"; + } + } +} diff --git a/Hcs.Client/ClientApi/HcsConsoleLogger.cs b/Hcs.Client/ClientApi/HcsConsoleLogger.cs new file mode 100644 index 0000000..e019785 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsConsoleLogger.cs @@ -0,0 +1,12 @@ +using System; + +namespace Hcs.ClientApi +{ + public class HcsConsoleLogger : IHcsLogger + { + public void WriteLine(string message) + { + Console.WriteLine(message); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsConstants.cs b/Hcs.Client/ClientApi/HcsConstants.cs new file mode 100644 index 0000000..ea45432 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsConstants.cs @@ -0,0 +1,119 @@ +using System.Collections.Generic; + +namespace Hcs.ClientApi +{ + public static class HcsConstants + { + /// + /// Имя XML-элемента в сообщении, которое будет подписываться в фильтре + /// отправки подписывающем XML + /// + public const string SignedXmlElementId = "signed-data-container"; + + /// + /// Если PIN сертификата не указан пользователем, применяется это значение + /// по умолчанию для сертификатов RuToken + /// + public const string DefaultCertificatePin = "12345678"; + + public static class Address + { + public const string UriPPAK = "api.dom.gosuslugi.ru"; + public const string UriSIT01 = "sit01.dom.test.gosuslugi.ru:10081"; + public const string UriSIT02 = "sit02.dom.test.gosuslugi.ru:10081"; + public const string UriTunnel = "127.0.0.1:8080"; + } + + public static class EndPointLocator + { + static Dictionary _endPoints; + static EndPointLocator() + { + if (_endPoints == null) + _endPoints = new Dictionary(); + + _endPoints.Add(HcsEndPoints.BillsAsync, "ext-bus-bills-service/services/BillsAsync"); + _endPoints.Add(HcsEndPoints.DeviceMetering, "ext-bus-device-metering-service/services/DeviceMetering"); + _endPoints.Add(HcsEndPoints.DeviceMeteringAsync, "ext-bus-device-metering-service/services/DeviceMeteringAsync"); + _endPoints.Add(HcsEndPoints.HomeManagement, "ext-bus-home-management-service/services/HomeManagement"); + _endPoints.Add(HcsEndPoints.HomeManagementAsync, "ext-bus-home-management-service/services/HomeManagementAsync"); + _endPoints.Add(HcsEndPoints.DebtRequestsAsync, "ext-bus-debtreq-service/services/DebtRequestsAsync"); + _endPoints.Add(HcsEndPoints.Licenses, "ext-bus-licenses-service/services/Licenses"); + _endPoints.Add(HcsEndPoints.LicensesAsync, "ext-bus-licenses-service/services/LicensesAsync"); + _endPoints.Add(HcsEndPoints.Nsi, "ext-bus-nsi-service/services/Nsi"); + _endPoints.Add(HcsEndPoints.NsiAsync, "ext-bus-nsi-service/services/NsiAsync"); + _endPoints.Add(HcsEndPoints.NsiCommon, "ext-bus-nsi-common-service/services/NsiCommon"); + _endPoints.Add(HcsEndPoints.NsiCommonAsync, "ext-bus-nsi-common-service/services/NsiCommonAsync"); + _endPoints.Add(HcsEndPoints.OrgRegistryCommon, "ext-bus-org-registry-common-service/services/OrgRegistryCommon"); + _endPoints.Add(HcsEndPoints.OrgRegistryCommonAsync, "ext-bus-org-registry-common-service/services/OrgRegistryCommonAsync"); + _endPoints.Add(HcsEndPoints.OrgRegistry, "ext-bus-org-registry-service/services/OrgRegistry"); + _endPoints.Add(HcsEndPoints.OrgRegistryAsync, "ext-bus-org-registry-service/services/OrgRegistryAsync"); + _endPoints.Add(HcsEndPoints.PaymentsAsync, "ext-bus-payment-service/services/PaymentAsync"); + } + + public static string GetPath(HcsEndPoints endPoint) + { + return _endPoints[endPoint]; + } + } + + public static class UserAuth + { + public const string Name = "sit"; + public const string Passwd = "xw{p&&Ee3b9r8?amJv*]"; + } + } + + /// + /// Имена конечных точек + /// + public enum HcsEndPoints + { + OrgRegistry, + OrgRegistryAsync, + OrgRegistryCommon, + OrgRegistryCommonAsync, + NsiCommon, + NsiCommonAsync, + Nsi, + NsiAsync, + HomeManagement, + HomeManagementAsync, + DebtRequestsAsync, + Bills, + BillsAsync, + Licenses, + LicensesAsync, + DeviceMetering, + DeviceMeteringAsync, + PaymentsAsync + } + + /// + /// Роли организаций в ГИС + /// + public enum HcsOrganizationRoles + { + /// + /// УК/ТСЖ/ЖСК + /// + UK, + + /// + /// Ресурсоснабжающая организация + /// + RSO, + + /// + /// Расчетный центр + /// + RC, + } + + public class HcsAsyncRequestStateTypes + { + public const int Received = 1; + public const int InProgress = 2; + public const int Ready = 3; + } +} diff --git a/Hcs.Client/ClientApi/HcsException.cs b/Hcs.Client/ClientApi/HcsException.cs new file mode 100644 index 0000000..2fd85fc --- /dev/null +++ b/Hcs.Client/ClientApi/HcsException.cs @@ -0,0 +1,29 @@ +using System; +using System.Linq; + +namespace Hcs.ClientApi +{ + public class HcsException : Exception + { + public HcsMemoryMessageCapture MessageCapture { get; private set; } + + public HcsException(string message) : base(message) + { + } + + public HcsException(string message, Exception nestedException) : base(message, nestedException) + { + } + + public HcsException(string message, HcsMemoryMessageCapture capture, Exception nestedException) + : base(message, nestedException) + { + MessageCapture = capture; + } + + public static HcsException FindHcsException(Exception e) + { + return HcsUtil.EnumerateInnerExceptions(e).OfType().FirstOrDefault(); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsFile.cs b/Hcs.Client/ClientApi/HcsFile.cs new file mode 100644 index 0000000..2638a5e --- /dev/null +++ b/Hcs.Client/ClientApi/HcsFile.cs @@ -0,0 +1,55 @@ +using System; +using System.IO; +using System.Linq; + +namespace Hcs.ClientApi +{ + public class HcsFile + { + public string FileName { get; private set; } + public string ContentType { get; private set; } + public Stream Stream { get; private set; } + + public long Length => Stream.Length; + + public HcsFile(string fileName, string contentType, Stream stream) + { + FileName = fileName; + ContentType = contentType ?? throw new ArgumentNullException(nameof(ContentType)); + Stream = stream ?? throw new ArgumentNullException(nameof(stream)); + } + + /// + /// По имени файла возвращает строку MIME Content-Type или null если тип MIME не найден + /// + public static string GetMimeContentTypeForFileName(string fileName) + { + if (string.IsNullOrEmpty(fileName)) return null; + string extension = Path.GetExtension(fileName).ToLower(); + var mimeType = AllowedMimeTypes.FirstOrDefault(x => x.Extension == extension); + if (mimeType == null) return null; + return mimeType.ContentType; + } + + public record struct MimeType(string Extension, string ContentType); + + /// + /// Типы MIME допустимые для загрузки в ГИС ЖКХ + /// + public static MimeType[] AllowedMimeTypes = + { + new MimeType(".pdf", "application/pdf"), + new MimeType(".xls", "application/excel"), + new MimeType(".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"), + new MimeType(".doc", "application/msword"), + new MimeType(".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"), + new MimeType(".rtf", "application/rtf"), + new MimeType(".jpg", "image/jpeg"), + new MimeType(".jpeg", "image/jpeg"), + new MimeType(".tif", "image/tiff"), + new MimeType(".tiff", "image/tiff") + // TODO: Проверить комментарий + // В спецификации есть другие типы файлов .zip, .sgn и т.д. + }; + } +} diff --git a/Hcs.Client/ClientApi/HcsFileStoreContext.cs b/Hcs.Client/ClientApi/HcsFileStoreContext.cs new file mode 100644 index 0000000..b2f965b --- /dev/null +++ b/Hcs.Client/ClientApi/HcsFileStoreContext.cs @@ -0,0 +1,37 @@ +namespace Hcs.ClientApi +{ + /// + /// Раздел хранилища файлов (Attachment) из документации: "ГИС ЖКХ. Альбом ТФФ 14.5.0.1.docx" + /// 2.6 Перечень контекстов хранилищ функциональных подсистем + /// + public enum HcsFileStoreContext + { + /// + /// Управление домами. Лицевые счета. + /// + homemanagement, + + /// + /// Управление контентом + /// + contentmanagement, + + /// + /// Электронные счета + /// + bills, + + /// + /// Запросов о наличии задолженности по оплате ЖКУ + /// + debtreq + } + + public static class HcsFileStoreContextExtensions + { + public static string GetName(this HcsFileStoreContext context) + { + return context.ToString(); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsFileWriterMessageCapture.cs b/Hcs.Client/ClientApi/HcsFileWriterMessageCapture.cs new file mode 100644 index 0000000..ebd4e75 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsFileWriterMessageCapture.cs @@ -0,0 +1,45 @@ +using System.Text; + +namespace Hcs.ClientApi +{ + /// + /// Реализация механизма захвата содержимого сообщений SOAP записывающая + /// каждое сообщение в отдельный файл на диске + /// + public class HcsFileWriterMessageCapture : IHcsMessageCapture + { + private string directory; + private IHcsLogger logger; + + public HcsFileWriterMessageCapture() + { + } + + public HcsFileWriterMessageCapture(string directory, IHcsLogger logger) + { + this.directory = directory; + this.logger = logger; + } + + public void CaptureMessage(bool sent, string body) + { + int index = 0; + int maxIndex = 1000000; + string fileName; + + do + { + index += 1; + if (index > maxIndex) throw new HcsException("Превышен максимум индекса файлов захвата сообщений"); + fileName = index.ToString("D3") + "_" + (sent ? "message" : "response") + ".xml"; + if (!string.IsNullOrEmpty(directory)) + { + fileName = System.IO.Path.Combine(directory, fileName); + } + } while (System.IO.File.Exists(fileName)); + + if (logger != null) logger.WriteLine($"Writing message file: {fileName}..."); + System.IO.File.WriteAllText(fileName, body, Encoding.UTF8); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsMemoryMessageCapture.cs b/Hcs.Client/ClientApi/HcsMemoryMessageCapture.cs new file mode 100644 index 0000000..e27fc0f --- /dev/null +++ b/Hcs.Client/ClientApi/HcsMemoryMessageCapture.cs @@ -0,0 +1,49 @@ +using System; +using System.IO; +using System.Text; + +namespace Hcs.ClientApi +{ + /// + /// Реализация захвата содержимого отправляемых и принимаемых SOAP сообщений, + /// которая хранит данные в памяти + /// + public class HcsMemoryMessageCapture : IHcsMessageCapture + { + private MemoryStream messageCaptureStream; + private StreamWriter messageCaptureWriter; + + private Encoding encoding => Encoding.UTF8; + + public HcsMemoryMessageCapture() + { + messageCaptureStream = new MemoryStream(); + messageCaptureWriter = new StreamWriter(messageCaptureStream, encoding); + } + + void IHcsMessageCapture.CaptureMessage(bool sentOrReceived, string messageBody) + { + if (messageCaptureStream.Position > 0) messageCaptureWriter.WriteLine(""); + messageCaptureWriter.Write(""); + messageCaptureWriter.Write(messageBody); + messageCaptureWriter.Flush(); + } + + public byte[] GetData() + { + var buf = messageCaptureStream.GetBuffer(); + int size = (int)messageCaptureStream.Length; + var data = new byte[size]; + Buffer.BlockCopy(buf, 0, data, 0, size); + return data; + } + + public override string ToString() + { + return encoding.GetString(GetData()); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsNoResultsRemoteException.cs b/Hcs.Client/ClientApi/HcsNoResultsRemoteException.cs new file mode 100644 index 0000000..a8d06cd --- /dev/null +++ b/Hcs.Client/ClientApi/HcsNoResultsRemoteException.cs @@ -0,0 +1,26 @@ +using System; + +namespace Hcs.ClientApi +{ + /// + /// Исключение указывает на то что сервер обнаружил что у + /// него нет объектов для выдачи по условию + /// + public class HcsNoResultsRemoteException : HcsRemoteException + { + public HcsNoResultsRemoteException(string description) : + base(HcsRemoteException.KnownCodes.НетОбъектовДляЭкспорта, description) + { + } + + public HcsNoResultsRemoteException(string errorCode, string description) : + base(errorCode, description) + { + } + + public HcsNoResultsRemoteException(string errorCode, string description, Exception nested) : + base(errorCode, description, nested) + { + } + } +} diff --git a/Hcs.Client/ClientApi/HcsParallel.cs b/Hcs.Client/ClientApi/HcsParallel.cs new file mode 100644 index 0000000..5ca2a87 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsParallel.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Hcs.ClientApi +{ + public class HcsParallel + { + /// + /// Асинхронно обрабатывает все элементы @values типа @T методом @processor в параллельном режиме, + /// используя максимум @maxThreads потоков + /// + public static async Task ForEachAsync(IEnumerable values, Func processor, int maxThreads) + { + await Task.Run(() => ForEach(values, processor, maxThreads)); + } + + /// + /// Обрабатывает все элементы @values типа @T методом @processor в параллельном режиме, + /// используя максимум @maxThreads потоков + /// + public static void ForEach(IEnumerable values, Func processor, int maxThreads) + { + var taskList = new List(); + var enumerator = values.GetEnumerator(); + + int numTasksFinished = 0; + while (true) + { + // Наполняем массив ожидания следующими задачами + while (taskList.Count < maxThreads) + { + if (!enumerator.MoveNext()) break; + + // Запускаем новую задачу в отсоединенном потоке + Task newTask = Task.Run(() => processor(enumerator.Current)); + taskList.Add(newTask); + } + + // Если массив ожидания пуст, работа окончена + if (taskList.Count == 0) return; + + // Ждем завершение любой задачи из массива ожидания + int finishedIndex = Task.WaitAny(taskList.ToArray()); + var finishedTask = taskList[finishedIndex]; + numTasksFinished += 1; + + // Удаляем задачу из массива ожидания чтобы более ее не ждать + taskList.Remove(finishedTask); + + // Если задача завершилась успешно уходим на добавление новой задачи + if (!finishedTask.IsFaulted && + !finishedTask.IsCanceled) continue; + + // Задача завершилась аномально, ждем завершения других запущенных задач + if (taskList.Count > 0) Task.WaitAll(taskList.ToArray()); + + // Составляем список всех возникших ошибок включая первую + taskList.Insert(0, finishedTask); + var errors = new List(); + foreach (var task in taskList) + { + if (task.IsFaulted) errors.Add(task.Exception); + if (task.IsCanceled) errors.Add(new Exception("Task was cancelled")); + } + + // Аномально завершаем обработку + string message = + $"Ошибка параллельной обработки №{numTasksFinished} из {values.Count()}" + + $" объектов типа {typeof(T).FullName}"; + throw new AggregateException(message, errors.ToArray()); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HcsPartialStream.cs b/Hcs.Client/ClientApi/HcsPartialStream.cs new file mode 100644 index 0000000..ad59773 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsPartialStream.cs @@ -0,0 +1,80 @@ +using System; +using System.IO; + +namespace Hcs.ClientApi +{ + /// + /// Поток байтов который является частью другого потока байтов + /// https://stackoverflow.com/questions/60592147/partial-stream-of-filestream + /// + public class HcsPartialStream : Stream + { + public Stream Stream { get; private set; } + public long StreamStart { get; private set; } + public long StreamLength { get; private set; } + public long StreamEnd { get; private set; } + + public HcsPartialStream(Stream stream, long offset, long size) + { + Stream = stream; + StreamStart = offset; + StreamLength = size; + StreamEnd = offset + size; + stream.Seek(offset, SeekOrigin.Begin); + } + + public override bool CanRead => true; + + public override bool CanSeek => false; + + public override bool CanWrite => false; + + public override long Length => Math.Min((Stream.Length - StreamStart), StreamLength); + + public override long Position + { + get => Stream.Position - StreamStart; + set => Stream.Position = StreamStart + value; + } + + public override void Flush() + { + throw new NotImplementedException(); + } + + public override int Read(byte[] buffer, int offset, int count) + { + var p = Stream.Position; + if (p < StreamStart) + { + Stream.Position = StreamStart; + } + if (p > StreamEnd) + { + return 0; + } + if (p + count > StreamEnd) + { + count = (int)(StreamEnd - p); + } + return Stream.Read(buffer, offset, count); + } + + public override long Seek(long offset, SeekOrigin origin) + { + // Seek will be complicated as there are three origin types. + // You can do it yourself. + throw new NotImplementedException(); + } + + public override void SetLength(long value) + { + throw new NotImplementedException(); + } + + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotImplementedException(); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsRemoteException.cs b/Hcs.Client/ClientApi/HcsRemoteException.cs new file mode 100644 index 0000000..be1f72c --- /dev/null +++ b/Hcs.Client/ClientApi/HcsRemoteException.cs @@ -0,0 +1,60 @@ +using System; +using System.Linq; + +namespace Hcs.ClientApi +{ + /// + /// Сообщение об ошибке возникшей на удаленном сервере ГИС ЖКХ + /// + public class HcsRemoteException : HcsException + { + public string ErrorCode { get; private set; } + public string Description { get; private set; } + + public class KnownCodes + { + public const string НетОбъектовДляЭкспорта = "INT002012"; + public const string ОтсутствуетВРеестре = "INT002000"; + public const string ДоступЗапрещен = "AUT011003"; + } + + public HcsRemoteException(string errorCode, string description) + : base(MakeMessage(errorCode, description)) + { + this.ErrorCode = errorCode; + this.Description = description; + } + + public HcsRemoteException(string errorCode, string description, Exception nestedException) + : base(MakeMessage(errorCode, description), nestedException) + { + this.ErrorCode = errorCode; + this.Description = description; + } + + private static string MakeMessage(string errorCode, string description) + => $"Удаленная система вернула ошибку: [{errorCode}] {description}"; + + public static HcsRemoteException CreateNew(string errorCode, string description, Exception nested = null) + { + if (string.Compare(errorCode, KnownCodes.НетОбъектовДляЭкспорта) == 0) + return new HcsNoResultsRemoteException(errorCode, description, nested); + return new HcsRemoteException(errorCode, description); + } + + public static HcsRemoteException CreateNew(HcsRemoteException nested) + { + if (nested == null) throw new ArgumentNullException("nested exception"); + return CreateNew(nested.ErrorCode, nested.Description, nested); + } + + /// + /// Возвращает true если ошибка @e или ее вложенные ошибки модержат @errorCode + /// + public static bool ContainsErrorCode(Exception e, string errorCode) + { + if (e == null) return false; + return HcsUtil.EnumerateInnerExceptions(e).OfType().Where(x => x.ErrorCode == errorCode).Any(); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsRestartTimeoutException.cs b/Hcs.Client/ClientApi/HcsRestartTimeoutException.cs new file mode 100644 index 0000000..f729ab5 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsRestartTimeoutException.cs @@ -0,0 +1,15 @@ +using System; + +namespace Hcs.ClientApi +{ + public class HcsRestartTimeoutException : HcsException + { + public HcsRestartTimeoutException(string message) : base(message) + { + } + + public HcsRestartTimeoutException(string message, Exception inner) : base(message, inner) + { + } + } +} diff --git a/Hcs.Client/ClientApi/HcsUtil.cs b/Hcs.Client/ClientApi/HcsUtil.cs new file mode 100644 index 0000000..bf09353 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsUtil.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Hcs.ClientApi +{ + public class HcsUtil + { + /// + /// Возвращает описание исключения одной строкой + /// + public static string DescribeException(Exception e) + { + string separator = ""; + var buf = new StringBuilder(); + buf.Append("["); + foreach (var inner in EnumerateInnerExceptions(e)) + { + buf.Append(separator); + buf.Append(inner.GetType().Name); + buf.Append(":"); + buf.Append(inner.Message); + separator = "-->"; + } + + buf.Append("]"); + return buf.ToString(); + } + + /// + /// Возвращает список все вложенных исключений для данного исключения + /// + public static List EnumerateInnerExceptions(Exception e) + { + var list = new List(); + WalkInnerExceptionsRecurse(e, list); + return list; + } + + private static void WalkInnerExceptionsRecurse(Exception e, List list) + { + if (e == null || list.Contains(e)) return; + list.Add(e); + + WalkInnerExceptionsRecurse(e.InnerException, list); + + if (e is AggregateException) + { + var aggregate = e as AggregateException; + foreach (var inner in aggregate.InnerExceptions) + { + WalkInnerExceptionsRecurse(inner, list); + } + } + } + + public static string FormatGuid(Guid guid) => guid.ToString(); + + public static Guid ParseGuid(string guid) + { + try + { + return Guid.Parse(guid); + } + catch (Exception e) + { + throw new HcsException($"Невозможно прочитать GUID из строки [{guid}]", e); + } + } + + public static string FormatDate(DateTime date) + { + return date.ToString("yyyyMMdd"); + } + + public static string FormatDate(DateTime? date) + { + return (date == null) ? string.Empty : FormatDate((DateTime)date); + } + + /// + /// Преобразует массиб байтов в строку в формате binhex + /// + public static string ConvertToHexString(byte[] ba) + { + var buf = new StringBuilder(ba.Length * 2); + foreach (byte b in ba) buf.AppendFormat("{0:x2}", b); + return buf.ToString(); + } + } +} diff --git a/Hcs.Client/ClientApi/HcsX509Tools.cs b/Hcs.Client/ClientApi/HcsX509Tools.cs new file mode 100644 index 0000000..60e0ca3 --- /dev/null +++ b/Hcs.Client/ClientApi/HcsX509Tools.cs @@ -0,0 +1,229 @@ +using Org.BouncyCastle.Asn1; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace Hcs.ClientApi +{ + /// + /// Методы работы с сертификатами X509, которых нет в системе + /// + public class HcsX509Tools + { + public static bool IsValidCertificate(X509Certificate2 cert) + { + var now = DateTime.Now; + return (now >= cert.NotBefore && now <= GetNotAfterDate(cert)); + } + + public static IEnumerable EnumerateCertificates(bool includeInvalid = false) + { + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); + try + { + var now = DateTime.Now; + foreach (var x in store.Certificates) + { + if (includeInvalid) yield return x; + else if (IsValidCertificate(x)) yield return x; + } + } + finally + { + store.Close(); + } + } + + public static X509Certificate2 FindCertificate(Func predicate) + { + if (predicate == null) throw new ArgumentException("Null subject predicate"); + return EnumerateCertificates(true).FirstOrDefault(x => predicate(x)); + } + + public static X509Certificate2 FindValidCertificate(Func predicate) + { + if (predicate == null) throw new ArgumentException("Null subject predicate"); + return EnumerateCertificates(false).FirstOrDefault(x => predicate(x)); + } + + /// + /// Возвращает Common Name сертификата + /// + public static string GetCommonName(X509Certificate2 x509cert) + { + return x509cert.GetNameInfo(X509NameType.SimpleName, false); + } + + /// + /// Возвращает дату окончания действия сертификата + /// + public static DateTime GetNotAfterDate(X509Certificate2 x509cert) + { + // Сначала пытаемся определить срок первичного ключа, а затем уже самого сертификата + DateTime? датаОкончания = GetPrivateKeyUsageEndDate(x509cert); + if (датаОкончания != null) return (DateTime)датаОкончания; + return x509cert.NotAfter; + } + + /// + /// Известные номера расширений сертификата + /// + private class KnownOids + { + public const string PrivateKeyUsagePeriod = "2.5.29.16"; + } + + public static DateTime? GetPrivateKeyUsageEndDate(X509Certificate2 x509cert) + { + foreach (var ext in x509cert.Extensions) + { + if (ext.Oid.Value == KnownOids.PrivateKeyUsagePeriod) + { + // Дата начала с индексом 0, дата окончания с индексом 1 + return ParseAsn1Datetime(ext, 1); + } + } + + return null; + } + + /// + /// Разбирает значение типа дата из серии значений ASN1 присоединенных к расширению + /// + private static DateTime? ParseAsn1Datetime(X509Extension ext, int valueIndex) + { + try + { + Asn1Object asnObject = (new Asn1InputStream(ext.RawData)).ReadObject(); + if (asnObject == null) return null; + var asnSequence = Asn1Sequence.GetInstance(asnObject); + if (asnSequence.Count <= valueIndex) return null; + var asn = (Asn1TaggedObject)asnSequence[valueIndex]; + + var asnStr = Asn1OctetString.GetInstance(asn, false); + string s = Encoding.UTF8.GetString(asnStr.GetOctets()); + int year = int.Parse(s.Substring(0, 4)); + int month = int.Parse(s.Substring(4, 2)); + int day = int.Parse(s.Substring(6, 2)); + int hour = int.Parse(s.Substring(8, 2)); + int minute = int.Parse(s.Substring(10, 2)); + int second = int.Parse(s.Substring(12, 2)); + // Последний символ - буква 'Z' + return new DateTime(year, month, day, hour, minute, second); + } + catch (Exception) + { + return null; + } + } + + public static string ДатьСтрокуФИОСертификатаСДатойОкончания(X509Certificate2 x509cert) + { + var фио = ДатьФИОСертификата(x509cert); + return фио.Фамилия + " " + фио.Имя + " " + фио.Отчество + + " до " + GetNotAfterDate(x509cert).ToString("dd.MM.yyyy"); + } + + public static string ДатьСтрокуФИОСертификата(X509Certificate2 x509cert) + { + var фио = ДатьФИОСертификата(x509cert); + return фио.Фамилия + " " + фио.Имя + " " + фио.Отчество; + } + + /// + /// Возвращает массив из трех строк, содержащих соответственно Фамилию, Имя и Отчество + /// полученных из данных сертификата. Если сертификат не содержит ФИО возвращается массив + /// из трех пустых строк. Это не точный метод определять имя, он предполагает что + /// поля SN, G, CN содержат ФИО в определенном порядке, что правдоподобно но не обязательно. + /// + public static (string Фамилия, string Имя, string Отчество) ДатьФИОСертификата(X509Certificate2 x509cert) + { + string фам = "", имя = "", отч = ""; + + // Сначала ищем поля surname (SN) и given-name (G) + string sn = DecodeSubjectField(x509cert, "SN"); + string g = DecodeSubjectField(x509cert, "G"); + if (!string.IsNullOrEmpty(sn) && !string.IsNullOrEmpty(g)) + { + фам = sn; + string[] gParts = g.Split(' '); + if (gParts != null && gParts.Length >= 1) имя = gParts[0]; + if (gParts != null && gParts.Length >= 2) отч = gParts[1]; + } + else + { + // Иначе берем три первых слова из common name (CN), игнорируя кавычки + string cn = DecodeSubjectField(x509cert, "CN"); + if (!string.IsNullOrEmpty(cn)) + { + cn = new StringBuilder(cn).Replace("\"", "").ToString(); + char[] separators = { ' ', ';' }; + string[] cnParts = cn.Split(separators); + if (cnParts != null && cnParts.Length >= 1) фам = cnParts[0]; + if (cnParts != null && cnParts.Length >= 2) имя = cnParts[1]; + if (cnParts != null && cnParts.Length >= 3) отч = cnParts[2]; + } + } + + return (фам, имя, отч); + } + + /// + /// Возвращает строку ИНН владельца сертификата + /// + public static string ДатьИННСертификата(X509Certificate2 x509cert) + { + return DecodeSubjectField(x509cert, "ИНН"); + } + + /// + /// Возвращает значение поля с именем @subName включенного в различимое имя Subject + /// + private static string DecodeSubjectField(X509Certificate2 x509cert, string subName) + { + // Чтобы посмотреть все поля сертификата + //System.Diagnostics.Trace.WriteLine("x509decode=" + x509cert.SubjectName.Decode( + //X500DistinguishedNameFlags.UseNewLines)); + + // Декодируем различимое имя на отдельные строки через переводы строк для надежности разбора + string decoded = x509cert.SubjectName.Decode(X500DistinguishedNameFlags.UseNewLines); + char[] separators = { '\n', '\r' }; + string[] parts = decoded.Split(separators, StringSplitOptions.RemoveEmptyEntries); + if (parts == null) return null; + + // Каждая часть начинается с имени и отделяется от значения символом равно + foreach (string part in parts) + { + if (part.Length <= subName.Length + 1) continue; + if (part.StartsWith(subName) && part[subName.Length] == '=') + { + return part.Substring(subName.Length + 1); + } + } + + return null; + } + + public static int Compare(X509Certificate2 x, X509Certificate2 y) + { + if (x == null && y != null) return -1; + if (x != null && y == null) return 1; + if (x == null && y == null) return 0; + + // Сначала сравниваем ФИО + int sign = string.Compare(ДатьСтрокуФИОСертификата(x), ДатьСтрокуФИОСертификата(y), true); + if (sign != 0) return sign; + + // Затем дату окончания действия + return GetNotAfterDate(x).CompareTo(GetNotAfterDate(y)); + } + + public class CertificateComparer : IComparer + { + public int Compare(X509Certificate2 x, X509Certificate2 y) => HcsX509Tools.Compare(x, y); + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsContractRegistryDownloader.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsContractRegistryDownloader.cs new file mode 100644 index 0000000..9b723d9 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsContractRegistryDownloader.cs @@ -0,0 +1,132 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения из ГИС ЖКХ полного реестра договоров ресурсоснабжения + /// и всех связанных с ними лицевых счетов и приборов учета + /// + internal class HcsContractRegistryDownloader + { + private HcsHouseManagementApi api; + + internal HcsContractRegistryDownloader(HcsHouseManagementApi api) + { + this.api = api; + } + + private void ThrowOperationCancelled() + { + throw new HcsException("Операция прервана пользователем"); + } + + /// + /// Получить все договоры РСО удовлетворяющие фильтру @фильтрДоговоров + /// с подчиненными объектами (ЛС и ПУ) + /// + internal async Task<ГисДоговорыИПриборы> ПолучитьВсеДоговорыИПриборы( + Func<ГисДоговор, bool> фильтрДоговоров, CancellationToken token) + { + // TODO: Проверить комментарий + // В процессе будет много запросов, возвращающих мало данных, + // но требующих стандартного ожидания в несколько секунд, что + // суммарно складывается в целые часы. Экспериментально установлено + // что ГИС ЖКХ способна пережить некоторую параллельность запросов + // к ней. Так, с параллельностью в 5 потоков получение данных + // по 3000 договорам РСО (70000 ПУ) длится 2,5 часа. + int числоПотоковПараллельности = 5; + + var все = new ГисДоговорыИПриборы(); + все.ДатаНачалаСборки = DateTime.Now; + + Action<ГисДоговор> обработчикДоговора = (ГисДоговор договор) => + { + if (фильтрДоговоров(договор)) все.ДоговорыРСО.Add(договор); + }; + await api.ПолучитьДоговорыРСО(обработчикДоговора, token); + + int сделаноДоговоров = 0; + Action<ГисАдресныйОбъект> обработчикАдреса = все.АдресаОбъектов.Add; + Func<ГисДоговор, Task> обработчикДоговораАдреса = async (договор) => + { + if (token.IsCancellationRequested) ThrowOperationCancelled(); + api.Config.Log($"Получаем адреса договора #{++сделаноДоговоров}/{все.ДоговорыРСО.Count()}..."); + await api.ПолучитьАдресаДоговораРСО(договор, обработчикАдреса, token); + }; + await HcsParallel.ForEachAsync(все.ДоговорыРСО, обработчикДоговораАдреса, числоПотоковПараллельности); + + var гуидыЗданий = все.АдресаОбъектов.Select(x => x.ГуидЗданияФиас).Distinct(); + + int сделаноЗданий = 0; + Func обработчикЗдания = async (гуидЗдания) => + { + if (token.IsCancellationRequested) ThrowOperationCancelled(); + api.Config.Log($"Получаем помещения здания #{++сделаноЗданий}/{гуидыЗданий.Count()}..."); + try + { + var здание = await api.ПолучитьЗданиеПоГуидФиас(гуидЗдания, token); + все.Здания.Add(здание); + } + catch (Exception e) + { + if (HcsRemoteException.ContainsErrorCode(e, HcsRemoteException.KnownCodes.ОтсутствуетВРеестре)) + { + api.Config.Log($"Не удалось получить здание по ФИАС ГУИД {гуидЗдания}: здание отсутствует в реестре"); + var здание = new ГисЗдание() { ГуидЗданияФиас = гуидЗдания }; + все.Здания.Add(здание); + } + else if (HcsRemoteException.ContainsErrorCode(e, HcsRemoteException.KnownCodes.ДоступЗапрещен)) + { + api.Config.Log($"Не удалось получить здание по ФИАС ГУИД {гуидЗдания}: доступ запрещен"); + var здание = new ГисЗдание() { ГуидЗданияФиас = гуидЗдания }; + все.Здания.Add(здание); + } + else + { + throw new HcsException($"Вложенная ошибка получения здания {гуидЗдания}", e); + } + } + }; + await HcsParallel.ForEachAsync(гуидыЗданий, обработчикЗдания, числоПотоковПараллельности); + + сделаноЗданий = 0; + Action<ГисЛицевойСчет> обработчикЛС = (ГисЛицевойСчет лс) => + { + if (лс.ДействуетСейчас && все.ЭтотЛицевойСчетСвязанСДоговорами(лс)) + { + все.ЛицевыеСчета.Add(лс); + } + }; + Func обработчикЗданияЛС = async (гуидЗдания) => + { + if (token.IsCancellationRequested) ThrowOperationCancelled(); + api.Config.Log($"Получаем ЛС по зданию #{++сделаноЗданий}/{гуидыЗданий.Count()}..."); + await api.ПолучитьЛицевыеСчетаПоЗданию(гуидЗдания, обработчикЛС, token); + }; + await HcsParallel.ForEachAsync(гуидыЗданий, обработчикЗданияЛС, числоПотоковПараллельности); + + сделаноЗданий = 0; + Action<ГисПриборУчета> обработчикПУ = (ГисПриборУчета прибор) => + { + if (прибор.ЭтоАктивный && (прибор.ЭтоОДПУ || все.ЭтотПриборСвязанСЛицевымиСчетами(прибор))) + { + все.ПриборыУчета.Add(прибор); + } + }; + Func обработчикЗданияПУ = async (гуидЗдания) => + { + if (token.IsCancellationRequested) ThrowOperationCancelled(); + api.Config.Log($"Получаем ПУ по зданию #{++сделаноЗданий}/{гуидыЗданий.Count()}..."); + await api.ПолучитьПриборыУчетаПоЗданию(гуидЗдания, обработчикПУ, token); + }; + await HcsParallel.ForEachAsync(гуидыЗданий, обработчикЗданияПУ, числоПотоковПараллельности); + + все.ДатаКонцаСборки = DateTime.Now; + return все; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementApi.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementApi.cs new file mode 100644 index 0000000..d89e583 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementApi.cs @@ -0,0 +1,189 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Методы ГИС ЖКХ сервиса hcs-house-management (Договоры, ЛицевыеСчета, Приборы учета) + /// + public class HcsHouseManagementApi + { + public HcsClientConfig Config { get; private set; } + + public HcsHouseManagementApi(HcsClientConfig config) + { + this.Config = config; + } + + /// + /// Размещает договор и возвращает дату размещения + /// + public async Task РазместитьДоговор( + ГисДоговор договор, IEnumerable<ГисАдресныйОбъект> адреса, CancellationToken token = default) + { + var method = new HcsMethodImportSupplyResourceContractData(Config); + return await method.ImportContract(договор, адреса, token); + } + + /// + /// Размещает лицевой счет и возвращает его ЕЛС + /// + public async Task РазместитьЛицевойСчет( + ГисДоговор договор, ГисЛицевойСчет лицевойСчет, CancellationToken token = default) + { + var method = new HcsMethodImportAccountData(Config); + return await method.ImportAccount(договор, лицевойСчет, token); + } + + /// + /// Размещает прибор учета и возвращает его ГУИД + /// + public async Task РазместитьПриборУчета( + ГисПриборУчета прибор, CancellationToken token = default) + { + var method = new HcsMethodImportMeteringDeviceData(Config); + return await method.ImportMeteringDevice(прибор, token); + } + + public async Task АрхивироватьПриборУчета( + ГисПриборУчета прибор, CancellationToken token = default) + { + var method = new HcsMethodImportMeteringDeviceData(Config); + return await method.ArchiveMeteringDevice(прибор, token); + } + + public async Task РасторгнутьДоговор( + ГисДоговор договор, DateTime датаРасторжения, CancellationToken token = default) + { + var method = new HcsMethodImportSupplyResourceContractData(Config); + return await method.TerminateContract(договор, датаРасторжения, token); + } + + public async Task АннулироватьДоговор( + ГисДоговор договор, string причина, CancellationToken token = default) + { + var method = new HcsMethodImportSupplyResourceContractData(Config); + return await method.AnnulContract(договор, причина, token); + } + + public async Task УдалитьПроектДоговора( + ГисДоговор договор, CancellationToken token = default) + { + var method = new HcsMethodImportSupplyResourceContractProject(Config); + await method.DeleteContractProject(договор, token); + } + + /// + /// Переводит проект договора в состояние "Размещен" + /// + public async Task РазместитьПроектДоговора( + ГисДоговор договор, CancellationToken token = default) + { + var method = new HcsMethodImportSupplyResourceContractProject(Config); + await method.PlaceContractProject(договор, token); + } + + /// + /// Получение одного договора ресурсоснабжения по его ГУИД. + /// Если такого договора нет, будет выброшено HcsNoResultsRemoteException. + /// + public async Task<ГисДоговор> ПолучитьДоговорРСО( + Guid гуидДоговора, CancellationToken token = default) + { + var method = new HcsMethodExportSupplyResourceContractData(Config); + method.EnableMinimalResponseWaitDelay = true; + return await method.QueryOne(гуидДоговора, token); + } + + /// + /// Получение одного договора ресурсоснабжения по его номеру. + /// Если такого договора нет, будет выброшено HcsNoResultsRemoteException. + /// + public async Task<ГисДоговор[]> ПолучитьДоговорыРСО( + string номерДоговора, CancellationToken token = default) + { + var method = new HcsMethodExportSupplyResourceContractData(Config); + method.EnableMinimalResponseWaitDelay = true; + return await method.QueryByContractNumber(номерДоговора, token); + } + + /// + /// Получение списка договоров ресурсоснабжения + /// + public async Task ПолучитьДоговорыРСО( + Action<ГисДоговор> resultHandler, CancellationToken token = default) + { + var method = new HcsMethodExportSupplyResourceContractData(Config); + return await method.QueryAll(resultHandler, token); + } + + /// + /// Запрос на экспорт объектов жилищного фонда из договора ресурсоснабжения + /// + public async Task ПолучитьАдресаДоговораРСО( + ГисДоговор договор, Action<ГисАдресныйОбъект> resultHandler, CancellationToken token = default) + { + var method = new HcsMethodExportSupplyResourceContractObjectAddress(Config); + return await method.QueryAddresses(договор, resultHandler, token); + } + + /// + /// Размещение изменения списка адресных объектов в договоре + /// + public async Task РазместитьАдресаДоговораРСО( + ГисДоговор договор, + IEnumerable<ГисАдресныйОбъект> адресаДляРазмещения, + IEnumerable<ГисАдресныйОбъект> адресаДляУдаления, + CancellationToken token) + { + var method = new HcsMethodImportSupplyResourceContractObjectAddress(Config); + await method.ImportObjectAddresses(договор, адресаДляРазмещения, адресаДляУдаления, token); + } + + /// + /// Получение списка лицевых счетов для одного здания + /// + public async Task ПолучитьЛицевыеСчетаПоЗданию( + Guid fiasHouseGuid, Action<ГисЛицевойСчет> resultHandler, CancellationToken token = default) + { + var method = new HcsMethodExportAccountData(Config); + return await method.Query(fiasHouseGuid, null, resultHandler, token); + } + + /// + /// Получение списка приборов учета для одного здания + /// + public async Task ПолучитьПриборыУчетаПоЗданию( + Guid fiasHouseGuid, Action<ГисПриборУчета> resultHandler, CancellationToken token = default) + { + var method = new HcsMethodExportMeteringDeviceData(Config); + return await method.ExportByHouse(fiasHouseGuid, resultHandler, token); + } + + /// + /// Пример получения данных об одном здании по его идентификатору в ФИАС + /// + public async Task<ГисЗдание> ПолучитьЗданиеПоГуидФиас(Guid fiasHouseGuid, CancellationToken token = default) + { + try + { + var method = new HcsMethodExportHouse(Config); + return await method.ExportHouseByFiasGuid(fiasHouseGuid, token); + } + catch (HcsException e) + { + throw new HcsException($"Не удалось получить здание по ФИАС GUID {fiasHouseGuid}", e); + } + } + + public async Task<ГисДоговорыИПриборы> ПолучитьВсеДоговорыИПриборы( + Func<ГисДоговор, bool> contractFilter, CancellationToken token = default) + { + return await (new HcsContractRegistryDownloader(this)) + .ПолучитьВсеДоговорыИПриборы(contractFilter, token); + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementMethod.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementMethod.cs new file mode 100644 index 0000000..31cffd5 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementMethod.cs @@ -0,0 +1,162 @@ +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.Service.Async.HouseManagement.v14_5_0_1 +{ + public partial class AckRequestAck : IHcsAck { } + public partial class getStateResult : IHcsGetStateResult { } + public partial class Fault : IHcsFault { } + public partial class HeaderType : IHcsHeaderType { } +} + +namespace Hcs.ClientApi.HouseManagementApi +{ + public class HcsHouseManagementMethod : HcsRemoteCallMethod + { + public HcsEndPoints EndPoint => HcsEndPoints.HomeManagementAsync; + + public HouseManagement.RequestHeader CreateRequestHeader() => + HcsRequestHelper.CreateHeader(ClientConfig); + + public HcsHouseManagementMethod(HcsClientConfig config) : base(config) { } + + public System.ServiceModel.EndpointAddress RemoteAddress + => GetEndpointAddress(HcsConstants.EndPointLocator.GetPath(EndPoint)); + + private HouseManagement.HouseManagementPortsTypeAsyncClient NewPortClient() + { + var client = new HouseManagement.HouseManagementPortsTypeAsyncClient(_binding, RemoteAddress); + ConfigureEndpointCredentials(client.Endpoint, client.ClientCredentials); + return client; + } + + public async Task SendAndWaitResultAsync( + object request, + Func> sender, + CancellationToken token) + { + while (true) + { + token.ThrowIfCancellationRequested(); + + try + { + if (CanBeRestarted) + { + return await RunRepeatableTaskInsistentlyAsync( + async () => await SendAndWaitResultAsyncImpl(request, sender, token), token); + } + else + { + return await SendAndWaitResultAsyncImpl(request, sender, token); + } + } + catch (HcsRestartTimeoutException e) + { + if (!CanBeRestarted) throw new HcsException("Превышен лимит ожидания выполнения запроса", e); + Log($"Перезапускаем запрос типа {request.GetType().Name}..."); + } + } + } + + private async Task SendAndWaitResultAsyncImpl( + object request, + Func> sender, + CancellationToken token) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + string version = HcsRequestHelper.GetRequestVersionString(request); + _config.Log($"Отправляем запрос: {RemoteAddress.Uri}/{request.GetType().Name} в версии {version}..."); + + var stopWatch = System.Diagnostics.Stopwatch.StartNew(); + + IHcsAck ack; + using (var client = NewPortClient()) + { + ack = await sender(client); + } + + stopWatch.Stop(); + _config.Log($"Запрос принят в обработку за {stopWatch.ElapsedMilliseconds}мс., подтверждение {ack.MessageGUID}"); + + var stateResult = await WaitForResultAsync(ack, true, token); + + stateResult.Items.OfType().ToList().ForEach(x => + { + throw HcsRemoteException.CreateNew(x.ErrorCode, x.Description); + }); + + return stateResult; + } + + /// + /// Выполняет однократную проверку наличия результата. + /// Возвращает null если результата еще нет. + /// + protected override async Task TryGetResultAsync(IHcsAck sourceAck, CancellationToken token) + { + using (var client = NewPortClient()) + { + var requestHeader = HcsRequestHelper.CreateHeader(_config); + var requestBody = new HouseManagement.getStateRequest { MessageGUID = sourceAck.MessageGUID }; + + var response = await client.getStateAsync(requestHeader, requestBody); + var resultBody = response.getStateResult; + + if (resultBody.RequestState == HcsAsyncRequestStateTypes.Ready) + { + return resultBody; + } + + return null; + } + } + + /// + /// Разбирает стандартный ответ HCS на операцию импорта с приемом ошибок + /// + protected HouseManagement.getStateResultImportResultCommonResult ParseSingleImportResult(IHcsGetStateResult stateResult) + { + return ParseImportResults(stateResult, 1, true).First(); + } + + /// + /// Разбирает стандартный ответ HCS на операцию импорта с приемом ошибок + /// + protected HouseManagement.getStateResultImportResultCommonResult[] ParseImportResults( + IHcsGetStateResult stateResult, int commonResultRequiredCount, bool checkItemErrors) + { + var importResult = RequireSingleItem(stateResult.Items); + if (IsArrayEmpty(importResult.Items)) throw new HcsException("Пустой ImportResult.Items"); + importResult.Items.OfType().ToList() + .ForEach(error => { throw HcsRemoteException.CreateNew(error.ErrorCode, error.Description); }); + + var commonResults = importResult.Items.OfType(); + + foreach (var commonResult in commonResults) + { + if (IsArrayEmpty(commonResult.Items)) throw new HcsException("Пустой CommonResult.Items"); + if (checkItemErrors) CheckCommonResultErrors(commonResult); + } + + if (commonResults.Count() != commonResultRequiredCount) + { + throw new HcsException( + $"Число результатов {commonResults.Count()} типа CommonResult не равно {commonResultRequiredCount}"); + } + + return commonResults.ToArray(); + } + + protected void CheckCommonResultErrors(HouseManagement.getStateResultImportResultCommonResult commonResult) + { + commonResult.Items.OfType().ToList() + .ForEach(error => { throw HcsRemoteException.CreateNew(error.ErrorCode, error.Description); }); + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementNsi.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementNsi.cs new file mode 100644 index 0000000..94dcf5b --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsHouseManagementNsi.cs @@ -0,0 +1,90 @@ +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Методы и константы для работы с номенклатурно-справочной информацией (НСИ) + /// применяемой в сервисе hcs-house-management + /// https://my.dom.gosuslugi.ru/#!/open-data + /// + public class HcsHouseManagementNsi + { + // Ссылка на НСИ "54 Причина расторжения договора" (реестровый номер 54) + // https://my.dom.gosuslugi.ru/#!/open-data-passport?passportName=7710474375-nsi-54 + public class ПричинаРасторженияДоговора + { + public static HouseManagement.nsiRef ПоВзаимномуСогласиюСторон => new HouseManagement.nsiRef() + { + Name = "По взаимному согласию сторон", + Code = "4", + GUID = "4a481322-05c9-47cb-9d05-30387dff1f93" + }; + } + + // Ссылка на НСИ "22 Причина закрытия лицевого счета" (реестровый номер 22) + // https://dom.gosuslugi.ru/opendataapi/nsi-22/v1 + public class ПричинаЗакрытияЛицевогоСчета + { + public static HouseManagement.nsiRef РасторжениеДоговора => new HouseManagement.nsiRef() + { + Name = "Расторжение договора", + Code = "11", + GUID = "7ee8b4db-dabc-40eb-9009-f4f80b36bfe5" + }; + } + + // Ссылка на НСИ "Причина архивации прибора учета" (реестровый номер 21) + // https://my.dom.gosuslugi.ru/#!/open-data-passport?passportName=7710474375-nsi-21 + public class ПричинаАрхивацииПрибораУчета + { + public static HouseManagement.nsiRef ИстекСрокЭксплуатации => new HouseManagement.nsiRef() + { + Code = "12", + GUID = "2b8f44f9-7ca1-44f5-803a-af80d6912f36", + Name = "Истек срок эксплуатации прибора учета" + }; + + public static HouseManagement.nsiRef Ошибка => new HouseManagement.nsiRef() + { + Code = "4", + GUID = "d723696f-5ed7-4923-ad6a-9c2c5bce5032", + Name = "Ошибка" + }; + } + + // Ссылка на НСИ "Основание заключения договора" (реестровый номер 58) + // https://my.dom.gosuslugi.ru/#!/open-data-passport?passportName=7710474375-nsi-58 + public class ОснованиеЗаключенияДоговора + { + public static HouseManagement.nsiRef ЗаявлениеПотребителя => new HouseManagement.nsiRef() + { + Code = "7", + GUID = "93cd9d85-91b8-4bf9-ae48-c5f1e691949f", + Name = "Заявление потребителя" + }; + + public static HouseManagement.nsiRef ДоговорУправления => new HouseManagement.nsiRef() + { + Code = "3", + GUID = "11efe618-79f8-4f53-bfd6-11620e8e9e1e", + Name = "Договор управления" + }; + } + + public static HouseManagement.ContractSubjectTypeServiceType ElectricSupplyServiceType + => new HouseManagement.ContractSubjectTypeServiceType() + { + Code = "4", + GUID = "903c7763-73f8-4af2-9ec2-94ee08c7beaa", + Name = "Электроснабжение" + }; + + public static HouseManagement.ContractSubjectTypeMunicipalResource ElectricSupplyMunicipalResource + => new HouseManagement.ContractSubjectTypeMunicipalResource() + { + Code = "8", + GUID = "7379be86-6c95-4e41-b000-3bc703d35969", + Name = "Электрическая энергия" + }; + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportAccountData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportAccountData.cs new file mode 100644 index 0000000..889cc73 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportAccountData.cs @@ -0,0 +1,190 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения реестра лицевых счетов + /// + public class HcsMethodExportAccountData : HcsHouseManagementMethod + { + public HcsMethodExportAccountData(HcsClientConfig config) : base(config) + { + CanBeRestarted = true; + } + + /// + /// Получает реестр лицевых счетов по зданию с данным ГУИД ФИАС или по списку номеров ЕЛС + /// + public async Task Query( + Guid? fiasHouseGuid, IEnumerable unifiedAccountNumbers, + Action<ГисЛицевойСчет> resultHandler, CancellationToken token) + { + int numResults = 0; + + var itemNames = new List { }; + List items = new List { }; + + if (fiasHouseGuid != null) + { + itemNames.Add(HouseManagement.ItemsChoiceType18.FIASHouseGuid); + items.Add(FormatGuid(fiasHouseGuid)); + } + + if (unifiedAccountNumbers != null) + { + if (unifiedAccountNumbers.Count() > 1000) + throw new HcsException($"Слишком много ЕЛС в запросе {unifiedAccountNumbers.Count()} > допустимых 1000"); + foreach (var un in unifiedAccountNumbers) + { + itemNames.Add(HouseManagement.ItemsChoiceType18.UnifiedAccountNumber); + items.Add(un); + } + } + + try + { + var request = new HouseManagement.exportAccountRequest + { + Id = HcsConstants.SignedXmlElementId, + Items = items.ToArray(), + ItemsElementName = itemNames.ToArray() + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.exportAccountDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + stateResult.Items.OfType().ToList().ForEach( + account => { resultHandler(Adopt(account)); numResults += 1; }); + } + catch (HcsNoResultsRemoteException) + { + return 0; + } + + return numResults; + } + + private ГисЛицевойСчет Adopt(HouseManagement.exportAccountResultType source) + { + return new ГисЛицевойСчет() + { + ГуидЛицевогоСчета = ParseGuid(source.AccountGUID), + НомерЕЛС = source.UnifiedAccountNumber, + НомерЛицевогоСчета = source.AccountNumber, + ПолнаяПлощадь = (source.TotalSquareSpecified ? (decimal?)source.TotalSquare : null), + ЖилаяПлощадь = (source.ResidentialSquareSpecified ? (decimal?)source.ResidentialSquare : null), + КодЖКУ = source.ServiceID, + ДатаСоздания = (source.CreationDateSpecified ? (DateTime?)source.CreationDate : null), + ДатаЗакрытия = (source.Closed != null ? (DateTime?)source.Closed.CloseDate : null), + КодНсиПричиныЗакрытия = (source.Closed != null ? source.Closed.CloseReason.Code : null), + ИмяПричиныЗакрытия = (source.Closed != null ? source.Closed.Description : null), + Размещения = Adopt(source.Accommodation), + Основания = Adopt(source.AccountReasons) + }; + } + + private ГисОснованиеЛС[] Adopt(HouseManagement.exportAccountResultTypeAccountReasons source) + { + if (source == null) throw new ArgumentNullException("HouseManagement.exportAccountResultTypeAccountReasons"); + + var основания = new List<ГисОснованиеЛС>(); + + if (source.SupplyResourceContract != null) + { + foreach (var sr in source.SupplyResourceContract) + { + var основание = new ГисОснованиеЛС(); + основание.ТипОснованияЛС = ГисТипОснованияЛС.ДоговорРСО; + + for (int i = 0; i < sr.Items.Length; i++) + { + switch (sr.ItemsElementName[i]) + { + case HouseManagement.ItemsChoiceType9.ContractGUID: + основание.ГуидДоговора = ParseGuid(sr.Items[i]); + break; + } + } + + if (основание.ГуидДоговора == default(Guid)) + throw new HcsException("Для основания ЛС не указан ГУИД договора РСО"); + + основания.Add(основание); + } + } + + if (source.SocialHireContract != null) + { + var sh = source.SocialHireContract; + + var основание = new ГисОснованиеЛС(); + основание.ТипОснованияЛС = ГисТипОснованияЛС.Соцнайм; + + for (int i = 0; i < sh.Items.Length; i++) + { + object itemValue = sh.Items[i]; + switch (sh.ItemsElementName[i]) + { + case HouseManagement.ItemsChoiceType10.ContractGUID: + основание.ГуидДоговора = ParseGuid(itemValue); + break; + case HouseManagement.ItemsChoiceType10.ContractNumber: + основание.НомерДоговора = (itemValue != null ? itemValue.ToString() : null); + break; + } + } + + if (основание.ГуидДоговора == default(Guid)) + throw new HcsException("Для основания ЛС не указан ГУИД договора соцнайма"); + + основания.Add(основание); + } + + if (source.Contract != null) + { + var основание = new ГисОснованиеЛС(); + основание.ТипОснованияЛС = ГисТипОснованияЛС.Договор; + основание.ГуидДоговора = ParseGuid(source.Contract.ContractGUID); + основания.Add(основание); + } + + // TODO: Проверить комментарий + // Непонятно что делать с остальными типам основания и даже следует ли их + // расшифровывать или считать ошибкой пустого списка оснований + return основания.ToArray(); + } + + private ГисРазмещениеЛС[] Adopt(HouseManagement.AccountExportTypeAccommodation[] array) + { + if (array == null) throw new ArgumentNullException("HouseManagement.AccountExportTypeAccommodation"); + return array.ToList().Select(x => Adopt(x)).ToArray(); + } + + private ГисРазмещениеЛС Adopt(HouseManagement.AccountExportTypeAccommodation source) + { + var размещение = new ГисРазмещениеЛС(); + размещение.ПроцентДоли = (source.SharePercentSpecified ? (decimal?)source.SharePercent : null); + + switch (source.ItemElementName) + { + case HouseManagement.ItemChoiceType7.FIASHouseGuid: размещение.ГуидЗдания = ParseGuid(source.Item); break; + case HouseManagement.ItemChoiceType7.PremisesGUID: размещение.ГуидПомещения = ParseGuid(source.Item); break; + case HouseManagement.ItemChoiceType7.LivingRoomGUID: размещение.ГуидЖилойКомнаты = ParseGuid(source.Item); break; + default: throw new HcsException("Неизвестный тип размещения ЛС: " + source.ItemElementName); + } + + return размещение; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportHouse.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportHouse.cs new file mode 100644 index 0000000..8ac2d7d --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportHouse.cs @@ -0,0 +1,101 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения информации о доме и его помещениях + /// + public class HcsMethodExportHouse : HcsHouseManagementMethod + { + public HcsMethodExportHouse(HcsClientConfig config) : base(config) + { + CanBeRestarted = true; + } + + public async Task<ГисЗдание> ExportHouseByFiasGuid(Guid fiasHouseGuid, CancellationToken token) + { + var request = new HouseManagement.exportHouseRequest + { + Id = HcsConstants.SignedXmlElementId, + FIASHouseGuid = FormatGuid(fiasHouseGuid), + // TODO: Тут хардкод версии + version = "12.2.0.1" + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var response = await portClient.exportHouseDataAsync(CreateRequestHeader(), request); + return response.AckRequest.Ack; + }, token); + + return Adopt(RequireSingleItem(stateResult.Items)); + } + + private ГисЗдание Adopt(HouseManagement.exportHouseResultType source) + { + bool заполнен = false; + + var дом = new ГисЗдание(); + дом.НомерДомаГис = source.HouseUniqueNumber; + var помещения = new List<ГисПомещение>(); + + var apartmentHouse = source.Item as HouseManagement.exportHouseResultTypeApartmentHouse; + if (apartmentHouse != null) + { + дом.ТипДома = ГисТипДома.Многоквартирный; + дом.ГуидЗданияФиас = ParseGuid(apartmentHouse.BasicCharacteristicts.FIASHouseGuid); + if (apartmentHouse.ResidentialPremises != null) + { + apartmentHouse.ResidentialPremises.ToList().ForEach(x => помещения.Add(Adopt(x))); + } + if (apartmentHouse.NonResidentialPremises != null) + { + apartmentHouse.NonResidentialPremises.ToList().ForEach(x => помещения.Add(Adopt(x))); + } + заполнен = true; + } + + var livingHouse = source.Item as HouseManagement.exportHouseResultTypeLivingHouse; + if (livingHouse != null) + { + дом.ТипДома = ГисТипДома.Жилой; + дом.ГуидЗданияФиас = ParseGuid(livingHouse.BasicCharacteristicts.FIASHouseGuid); + заполнен = true; + } + + if (!заполнен) throw new HcsException("В информации о доме неизвестный тип данных: " + source.Item); + + дом.Помещения = помещения.ToArray(); + return дом; + } + + private ГисПомещение Adopt(HouseManagement.exportHouseResultTypeApartmentHouseResidentialPremises source) + { + return new ГисПомещение() + { + ЭтоЖилоеПомещение = true, + НомерПомещения = source.PremisesNum, + ГуидПомещения = ParseGuid(source.PremisesGUID), + ДатаПрекращения = source.TerminationDateSpecified ? source.TerminationDate : null, + Аннулирование = source.AnnulmentInfo + }; + } + + private ГисПомещение Adopt(HouseManagement.exportHouseResultTypeApartmentHouseNonResidentialPremises source) + { + return new ГисПомещение() + { + ЭтоЖилоеПомещение = false, + НомерПомещения = source.PremisesNum, + ГуидПомещения = ParseGuid(source.PremisesGUID) + }; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportMeteringDeviceData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportMeteringDeviceData.cs new file mode 100644 index 0000000..0eb97de --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportMeteringDeviceData.cs @@ -0,0 +1,165 @@ +using Hcs.ClientApi.DataTypes; +using Hcs.Service.Async.HouseManagement.v14_5_0_1; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения списка приборов учета + /// + public class HcsMethodExportMeteringDeviceData : HcsHouseManagementMethod + { + public HcsMethodExportMeteringDeviceData(HcsClientConfig config) : base(config) + { + CanBeRestarted = true; + } + + /// + /// Получение списка приборов учета для одного здания + /// + public async Task ExportByHouse( + Guid fiasHouseGuid, Action<ГисПриборУчета> resultHandler, CancellationToken token) + { + List itemNames = [HouseManagement.ItemsChoiceType4.FIASHouseGuid]; + List items = [FormatGuid(fiasHouseGuid)]; + + var request = new HouseManagement.exportMeteringDeviceDataRequest + { + Id = HcsConstants.SignedXmlElementId, + Items = items.ToArray(), + ItemsElementName = itemNames.ToArray(), + // TODO: Проверить комментарий + //version = "11.1.0.2" // Версия указана в API + }; + + int numResults = 0; + try + { + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.exportMeteringDeviceDataAsync(CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + stateResult.Items.OfType().ToList().ForEach( + device => { resultHandler(Adopt(device)); numResults += 1; } + ); + } + catch (HcsNoResultsRemoteException) + { + return 0; + } + + return numResults; + } + + private ГисПриборУчета Adopt(HouseManagement.exportMeteringDeviceDataResultType source) + { + var прибор = new ГисПриборУчета() + { + ГуидПрибораУчета = ParseGuid(source.MeteringDeviceRootGUID), + ГуидВерсииПрибора = ParseGuid(source.MeteringDeviceVersionGUID), + НомерПрибораУчетаГис = source.MeteringDeviceGISGKHNumber, + ЗаводскойНомер = source.BasicChatacteristicts.MeteringDeviceNumber, + МодельПрибораУчета = source.BasicChatacteristicts.MeteringDeviceModel, + ДатаРазмещенияВерсии = source.UpdateDateTime + }; + + if (!IsArrayEmpty(source.MeteringOwner)) + { + прибор.ГуидВладельцаПрибора = ParseGuid(source.MeteringOwner[0]); + } + + switch (source.StatusRootDoc) + { + case HouseManagement.exportMeteringDeviceDataResultTypeStatusRootDoc.Active: + прибор.СтатусПрибораУчета = ГисСтатусПрибораУчета.Активный; + break; + case HouseManagement.exportMeteringDeviceDataResultTypeStatusRootDoc.Archival: + прибор.СтатусПрибораУчета = ГисСтатусПрибораУчета.Архивный; + break; + default: + throw new HcsException($"Неизвестный статус ПУ {source.StatusRootDoc} для №{прибор.ЗаводскойНомер}"); + } + + var basic = source.BasicChatacteristicts; + + прибор.ДатаУстановки = basic.InstallationDateSpecified ? basic.InstallationDate : null; + прибор.ДатаВводаВЭксплуатацию = basic.CommissioningDateSpecified ? basic.CommissioningDate : null; + прибор.ДатаПоследнейПоверки = basic.FirstVerificationDateSpecified ? basic.FirstVerificationDate : null; + прибор.ДатаИзготовления = basic.FactorySealDateSpecified ? basic.FactorySealDate : null; + + прибор.РежимДистанционногоОпроса = basic.RemoteMeteringMode; + прибор.ОписаниеДистанционногоОпроса = basic.RemoteMeteringInfo; + + object basicItem = basic.Item; + bool типНайден = false; + + CallOnType(basicItem, x => + { + прибор.ГуидыЛицевыхСчетов = ParseGuidArray(x.AccountGUID); + прибор.ГуидыПомещений = ParseGuidArray(x.PremiseGUID); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.ЖилоеПомещение; + типНайден = true; + }); + + CallOnType(basicItem, x => + { + прибор.ГуидыЛицевыхСчетов = ParseGuidArray(x.AccountGUID); + прибор.ГуидыПомещений = ParseGuidArray(x.PremiseGUID); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.НежилоеПомещение; + типНайден = true; + }); + + CallOnType(basicItem, x => + { + прибор.ГуидыЗданийФиас = ParseGuidArray(x.FIASHouseGuid); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.ОДПУ; + типНайден = true; + }); + + CallOnType(basicItem, x => + { + прибор.ГуидыЛицевыхСчетов = ParseGuidArray(x.AccountGUID); + прибор.ГуидыПомещений = ParseGuidArray(x.PremiseGUID); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.КоммунальнаяКвартира; + типНайден = true; + }); + + CallOnType(basicItem, x => + { + прибор.ГуидыЛицевыхСчетов = ParseGuidArray(x.AccountGUID); + прибор.ГуидыЖилыхКомнат = ParseGuidArray(x.LivingRoomGUID); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.ЖилаяКомната; + типНайден = true; + }); + + CallOnType(basicItem, x => + { + прибор.ГуидыЗданийФиас = ParseGuidArray(x.FIASHouseGuid); + прибор.ГуидыЛицевыхСчетов = ParseGuidArray(x.AccountGUID); + прибор.ВидПрибораУчета = ГисВидПрибораУчета.ЖилойДом; + типНайден = true; + }); + + if (!типНайден) throw new HcsException($"Неизвестный тип ПУ {basicItem} для №{прибор.ЗаводскойНомер}"); + + foreach (var electric in source.Items.OfType()) + { + прибор.КоэффициентТрансформации = + (electric.TransformationRatioSpecified ? electric.TransformationRatio : 0); + прибор.ПоказаниеТ1 = electric.MeteringValueT1; + прибор.ПоказаниеТ2 = electric.MeteringValueT2; + прибор.ПоказаниеТ3 = electric.MeteringValueT3; + } + + return прибор; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractData.cs new file mode 100644 index 0000000..4ad0641 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractData.cs @@ -0,0 +1,297 @@ +using Hcs.ClientApi.DataTypes; +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения реестра договоров ресурсоснабжения (ДРСО) + /// + public class HcsMethodExportSupplyResourceContractData : HcsHouseManagementMethod + { + public HcsMethodExportSupplyResourceContractData(HcsClientConfig config) : base(config) + { + CanBeRestarted = true; + } + + /// + /// Получает один договор ресурсоснабжения по его GUID + /// + public async Task<ГисДоговор> QueryOne(Guid contractRootGuid, CancellationToken token) + { + ГисДоговор договор = null; + Action<ГисДоговор> handler = (result) => { договор = result; }; + await QueryOneBatch(contractRootGuid, null, handler, null, token); + if (договор == null) + throw new HcsNoResultsRemoteException($"Нет договора РСО с ГУИД {contractRootGuid}"); + return договор; + } + + /// + /// Получает один договор ресурсоснабжения по его номеру договора + /// + public async Task<ГисДоговор[]> QueryByContractNumber(string contractNumber, CancellationToken token) + { + var list = new List<ГисДоговор>(); + Action<ГисДоговор> handler = list.Add; + await QueryOneBatch(null, contractNumber, handler, null, token); + if (!list.Any()) throw new HcsNoResultsRemoteException($"Нет договора РСО с номером {contractNumber}"); + return list.ToArray(); + } + + /// + /// Получает полный список реестра договоров ресурсоснабжения + /// + public async Task QueryAll(Action<ГисДоговор> resultHandler, CancellationToken token) + { + int numResults = 0; + int numPages = 0; + + Action<ГисДоговор> countingHandler = (result) => + { + numResults += 1; + resultHandler(result); + }; + + Guid? nextGuid = null; + while (true) + { + if (++numPages > 1) Log($"Запрашиваем страницу #{numPages} данных..."); + var paged = await QueryOneBatch(null, null, countingHandler, nextGuid, token); + if (paged.IsLastPage) break; + nextGuid = paged.NextGuid; + } + + return numResults; + } + + private async Task QueryOneBatch( + Guid? contractRootGuid, string contractNumber, Action<ГисДоговор> resultHandler, + Guid? exportNextGuid, CancellationToken token) + { + var itemNames = new List { }; + List items = new List { }; + + if (contractRootGuid != null) + { + itemNames.Add(HouseManagement.ItemsChoiceType27.ContractRootGUID); + items.Add(FormatGuid(contractRootGuid)); + } + + if (contractNumber != null) + { + itemNames.Add(HouseManagement.ItemsChoiceType27.ContractNumber); + items.Add(contractNumber); + } + + if (exportNextGuid != null) + { + itemNames.Add(HouseManagement.ItemsChoiceType27.ExportContractRootGUID); + items.Add(FormatGuid(exportNextGuid)); + } + + var request = new HouseManagement.exportSupplyResourceContractRequest + { + Id = HcsConstants.SignedXmlElementId, + Items = items.ToArray(), + ItemsElementName = itemNames.ToArray(), + // TODO: Проверить хардкод версии + version = "13.1.1.1" // Значение из сообщения об ошибке от сервера HCS + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.exportSupplyResourceContractDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + var result = RequireSingleItem + (stateResult.Items); + + foreach (var c in result.Contract) + { + resultHandler(Adopt(c)); + } + + return new HcsPagedResultState(result.Item); + } + + private ГисДоговор Adopt(HouseManagement.exportSupplyResourceContractResultType source) + { + var договор = new ГисДоговор() + { + ГуидДоговора = ParseGuid(source.ContractRootGUID), + ГуидВерсииДоговора = ParseGuid(source.ContractGUID), + НомерВерсии = source.VersionNumber, + СостояниеДоговора = Adopt(source.ContractState), + СтатусВерсииДоговора = Adopt(source.VersionStatus) + }; + + if (source.Item is HouseManagement.ExportSupplyResourceContractTypeIsContract isContract) + { + договор.ТипДоговораРСО = ГисТипДоговораРСО.НеПубличныйИлиНеНежилые; + договор.НомерДоговора = isContract.ContractNumber; + договор.ДатаЗаключения = (DateTime?)isContract.SigningDate; + договор.ДатаВступленияВСилу = (DateTime?)isContract.EffectiveDate; + if (isContract.ContractAttachment != null) + { + договор.ПриложенияДоговора = isContract.ContractAttachment.Select(AdoptAttachment).ToArray(); + } + } + + if (source.Item is HouseManagement.ExportSupplyResourceContractTypeIsNotContract isNotContract) + { + договор.ТипДоговораРСО = ГисТипДоговораРСО.ПубличныйИлиНежилые; + договор.НомерДоговора = isNotContract.ContractNumber; + договор.ДатаЗаключения = isNotContract.SigningDateSpecified ? isNotContract.SigningDate : null; + договор.ДатаВступленияВСилу = isNotContract.EffectiveDateSpecified ? isNotContract.EffectiveDate : null; + if (isNotContract.ContractAttachment != null) + { + договор.ПриложенияДоговора = isNotContract.ContractAttachment.Select(AdoptAttachment).ToArray(); + } + } + + var предметы = new List<ГисПредметДоговора>(); + foreach (var subject in source.ContractSubject) + { + var предмет = new ГисПредметДоговора() + { + КодНсиУслуги = subject.ServiceType.Code, + ГуидНсиУслуги = ParseGuid(subject.ServiceType.GUID), + ИмяНсиУслуги = subject.ServiceType.Name, + КодНсиРесурса = subject.MunicipalResource.Code, + ГуидНсиРесурса = ParseGuid(subject.MunicipalResource.GUID), + ИмяНсиРесурса = subject.MunicipalResource.Name + }; + предметы.Add(предмет); + } + договор.ПредметыДоговора = предметы.ToArray(); + + договор.Контрагент = AdoptCounterparty(source.Item1); + + if (source.CountingResourceSpecified) + { + if (source.CountingResource == HouseManagement.ExportSupplyResourceContractTypeCountingResource.R) + договор.НачисленияРазмещаетРСО = true; + } + + if (source.MeteringDeviceInformationSpecified) + { + if (source.MeteringDeviceInformation == true) + договор.ПриборыРазмещаетРСО = true; + } + + return договор; + } + + private ГисПриложение AdoptAttachment(HouseManagement.AttachmentType attachment) + { + return new ГисПриложение() + { + ИмяПриложения = attachment.Name, + ГуидПриложения = ParseGuid(attachment.Attachment.AttachmentGUID), + ХэшПриложения = attachment.AttachmentHASH + }; + } + + /// + /// Разбор сведений о контрагенте - второй стороне договора + /// + private ГисКонтрагент AdoptCounterparty(object item1) + { + switch (item1) + { + case HouseManagement.ExportSupplyResourceContractTypeApartmentBuildingOwner owner: + return AdoptCounterpartyEntity(owner.Item, ГисТипКонтрагента.ВладелецПомещения); + + case HouseManagement.ExportSupplyResourceContractTypeApartmentBuildingRepresentativeOwner rep: + return AdoptCounterpartyEntity(rep.Item, ГисТипКонтрагента.ВладелецПомещения); + + case HouseManagement.ExportSupplyResourceContractTypeApartmentBuildingSoleOwner sole: + return AdoptCounterpartyEntity(sole.Item, ГисТипКонтрагента.ВладелецПомещения); + + case HouseManagement.ExportSupplyResourceContractTypeLivingHouseOwner owner: + return AdoptCounterpartyEntity(owner.Item, ГисТипКонтрагента.ВладелецПомещения); + + case HouseManagement.ExportSupplyResourceContractTypeOrganization uk: + return new ГисКонтрагент() + { + ТипКонтрагента = ГисТипКонтрагента.УправляющаяКомпания, + ГуидОрганизации = ParseGuid(uk.orgRootEntityGUID) + }; + } + + return new ГисКонтрагент() { ТипКонтрагента = ГисТипКонтрагента.НеУказано }; + } + + /// + /// Разбор ссылки на контрагента - второй стороны договора + /// + private ГисКонтрагент AdoptCounterpartyEntity(object item, ГисТипКонтрагента типКонтрагента) + { + switch (item) + { + case HouseManagement.DRSORegOrgType org: + return new ГисКонтрагент() + { + ТипКонтрагента = типКонтрагента, + ГуидОрганизации = ParseGuid(org.orgRootEntityGUID) + }; + + case HouseManagement.DRSOIndType ind: + var индивид = new ГисИндивид() + { + Фамилия = ind.Surname, + Имя = ind.FirstName, + Отчество = ind.Patronymic + }; + + switch (ind.Item) + { + case string снилс: индивид.СНИЛС = снилс; break; + case HouseManagement.ID id: + индивид.НомерДокумента = id.Number; + индивид.СерияДокумента = id.Series; + индивид.ДатаДокумента = id.IssueDate; + break; + } + + return new ГисКонтрагент() { ТипКонтрагента = типКонтрагента, Индивид = индивид, }; + } + + return new ГисКонтрагент() { ТипКонтрагента = ГисТипКонтрагента.НеУказано }; + } + + internal static ГисСтатусВерсииДоговора Adopt( + HouseManagement.exportSupplyResourceContractResultTypeVersionStatus source) + { + switch (source) + { + case HouseManagement.exportSupplyResourceContractResultTypeVersionStatus.Posted: return ГисСтатусВерсииДоговора.Размещен; + case HouseManagement.exportSupplyResourceContractResultTypeVersionStatus.Terminated: return ГисСтатусВерсииДоговора.Расторгнут; + case HouseManagement.exportSupplyResourceContractResultTypeVersionStatus.Draft: return ГисСтатусВерсииДоговора.Проект; + case HouseManagement.exportSupplyResourceContractResultTypeVersionStatus.Annul: return ГисСтатусВерсииДоговора.Аннулирован; + default: throw NewUnexpectedObjectException(source); + } + } + + internal static ГисСостояниеДоговора Adopt( + HouseManagement.exportSupplyResourceContractResultTypeContractState source) + { + switch (source) + { + case HouseManagement.exportSupplyResourceContractResultTypeContractState.Expired: return ГисСостояниеДоговора.ИстекСрокДействия; + case HouseManagement.exportSupplyResourceContractResultTypeContractState.NotTakeEffect: return ГисСостояниеДоговора.НеВступилВСилу; + case HouseManagement.exportSupplyResourceContractResultTypeContractState.Proceed: return ГисСостояниеДоговора.Действующий; + default: throw NewUnexpectedObjectException(source); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractObjectAddress.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractObjectAddress.cs new file mode 100644 index 0000000..fdcce9c --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodExportSupplyResourceContractObjectAddress.cs @@ -0,0 +1,125 @@ +using Hcs.ClientApi.DataTypes; +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод получения списка адресных объектов по договору ресурсоснабжения + /// + public class HcsMethodExportSupplyResourceContractObjectAddress : HcsHouseManagementMethod + { + public HcsMethodExportSupplyResourceContractObjectAddress(HcsClientConfig config) : base(config) + { + EnableMinimalResponseWaitDelay = true; + CanBeRestarted = true; + } + + /// + /// Запрос на экспорт объектов жилищного фонда из договора ресурсоснабжения + /// + public async Task QueryAddresses( + ГисДоговор договор, Action<ГисАдресныйОбъект> resultHandler, CancellationToken token) + { + int numResults = 0; + + Action<ГисАдресныйОбъект> countingHandler = (result) => + { + numResults += 1; + resultHandler(result); + }; + + Guid? nextGuid = null; + while (true) + { + var paged = await QueryOneBatch(договор, countingHandler, nextGuid, token); + if (paged.IsLastPage) break; + nextGuid = paged.NextGuid; + numResults += 1; + } + + return numResults; + } + + private async Task QueryOneBatch( + ГисДоговор договор, Action<ГисАдресныйОбъект> resultHandler, + Guid? firstGuid, CancellationToken token) + { + var itemNames = new List { }; + List items = new List { }; + + if (договор.ГуидВерсииДоговора != default) + { + itemNames.Add(HouseManagement.ItemsChoiceType29.ContractGUID); + items.Add(FormatGuid(договор.ГуидВерсииДоговора)); + } + else + { + itemNames.Add(HouseManagement.ItemsChoiceType29.ContractRootGUID); + items.Add(FormatGuid(договор.ГуидДоговора)); + } + + // TODO: Проверить комментарий + // Если указан guid следующей страницы данных, добавляем его в параметры + // (на 20.12.2023 эта функция не работает, первый пакет содержит 1000 записей + // и запрос второго пакета с ExportObjectGUID возвращает "Bad request") + if (firstGuid != null) + { + itemNames.Add(HouseManagement.ItemsChoiceType29.ExportObjectGUID); + items.Add(FormatGuid(firstGuid)); + } + + var request = new HouseManagement.exportSupplyResourceContractObjectAddressRequest + { + Id = HcsConstants.SignedXmlElementId, + Items = items.ToArray(), + ItemsElementName = itemNames.ToArray(), + // TODO: Проверить хардкод версии + version = "13.1.1.1" // Номер версии из сообщения об ошибке сервера HCS + }; + + try + { + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.exportSupplyResourceContractObjectAddressDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + var result = RequireSingleItem + (stateResult.Items); + foreach (var x in result.ObjectAddress) + { + resultHandler(Adopt(x)); + } + + return new HcsPagedResultState(result.Item); + } + catch (HcsNoResultsRemoteException) + { + return HcsPagedResultState.IsLastPageResultState; + } + } + + private ГисАдресныйОбъект Adopt( + HouseManagement.exportSupplyResourceContractObjectAddressResultType source) + { + return new ГисАдресныйОбъект() + { + ТипЗдания = (source.HouseTypeSpecified ? source.HouseType.ToString() : null), + ГуидЗданияФиас = ParseGuid(source.FIASHouseGuid), + ГуидДоговора = ParseGuid(source.ContractRootGUID), + ГуидВерсииДоговора = ParseGuid(source.ContractGUID), + ГуидАдресногоОбъекта = ParseGuid(source.ObjectGUID), + НомерПомещения = source.ApartmentNumber, + НомерКомнаты = source.RoomNumber + }; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportAccountData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportAccountData.cs new file mode 100644 index 0000000..08380a9 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportAccountData.cs @@ -0,0 +1,187 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Операции размещения и закрытия Лицевых счетов в ГИС ЖКХ + /// + public class HcsMethodImportAccountData : HcsHouseManagementMethod + { + public HcsMethodImportAccountData(HcsClientConfig config) : base(config) + { + CanBeRestarted = false; + } + + /// + /// Размещение нового Лицевого счета если ГисЛицевойСчет.ГуидЛицевогоСчета не заполнен, + /// размещение новой версии лицевого счета если заполнен. + /// Возвращает Единый номер лицевого счета в ГИС ЖКХ для размещенного ЛС + /// http://open-gkh.ru/HouseManagement/importAccountRequest/Account.html + /// + public async Task ImportAccount( + ГисДоговор договор, ГисЛицевойСчет лицевойСчет, CancellationToken token) + { + if (лицевойСчет == null) throw new ArgumentNullException(nameof(лицевойСчет)); + if (договор == null) throw new ArgumentNullException(nameof(договор)); + + var account = ConvertToAccount(договор, лицевойСчет); + var result = await CallImportAccountData(account, token); + return result.UnifiedAccountNumber; + } + + private HouseManagement.importAccountRequestAccount ConvertToAccount( + ГисДоговор договор, ГисЛицевойСчет лицевойСчет) + { + var account = new HouseManagement.importAccountRequestAccount() + { + TransportGUID = FormatGuid(Guid.NewGuid()), + AccountNumber = лицевойСчет.НомерЛицевогоСчета + }; + + if (лицевойСчет.ГуидЛицевогоСчета != default) + { + account.AccountGUID = FormatGuid(лицевойСчет.ГуидЛицевогоСчета); + } + + if (договор.ГуидДоговора == null) throw new HcsException("Не указан ГуидДоговора для размещения ЛС"); + var reasonRSO = new HouseManagement.AccountReasonsImportTypeSupplyResourceContract() + { + Items = [FormatGuid(договор.ГуидДоговора)], + ItemsElementName = [HouseManagement.ItemsChoiceType9.ContractGUID] + }; + account.AccountReasons = new HouseManagement.AccountReasonsImportType() + { + SupplyResourceContract = [reasonRSO] + }; + + account.ItemElementName = HouseManagement.ItemChoiceType18.isRSOAccount; + account.Item = true; + + if (IsArrayEmpty(лицевойСчет.Размещения)) + throw new HcsException($"Не указаны размещения ЛС №{лицевойСчет.НомерЛицевогоСчета}"); + + account.Accommodation = лицевойСчет.Размещения.Select(ConvertToAccomodation).ToArray(); + + if (лицевойСчет.ДатаЗакрытия != null) + { + account.Closed = new HouseManagement.ClosedAccountAttributesType() + { + CloseDate = (DateTime)лицевойСчет.ДатаЗакрытия, + CloseReason = HcsHouseManagementNsi.ПричинаЗакрытияЛицевогоСчета.РасторжениеДоговора + }; + } + + account.PayerInfo = new HouseManagement.AccountTypePayerInfo() + { + Item = ConvertToAccountContragent(договор.Контрагент) + }; + + return account; + } + + private object ConvertToAccountContragent(ГисКонтрагент контрагент) + { + if (контрагент == null) throw new HcsException("В договоре не заполнен Контрагент"); + + if (контрагент.ГуидОрганизации != null) + { + if (контрагент.ГуидВерсииОрганизации == null) + throw new HcsException("Для размещения ЛС в договоре с ЮЛ обязательно указание ГисКонтрагент.ГуидВерсииОрганизации"); + + return new HouseManagement.RegOrgVersionType() + { + orgVersionGUID = FormatGuid(контрагент.ГуидВерсииОрганизации) + }; + } + + if (контрагент.Индивид != null) + { + контрагент.Индивид.ПроверитьЗаполнениеСНИЛС(); + контрагент.Индивид.ПроверитьЗаполнениеФИО(); + + return new HouseManagement.AccountIndType() + { + FirstName = контрагент.Индивид.Имя, + Patronymic = контрагент.Индивид.Отчество, + Surname = контрагент.Индивид.Фамилия, + Item = контрагент.Индивид.СНИЛСТолькоЦифры + }; + } + + throw new HcsException("Не указана ни организация ни индивид для размещения ЛС"); + } + + private HouseManagement.AccountTypeAccommodation ConvertToAccomodation(ГисРазмещениеЛС размещение) + { + if (размещение == null) throw new HcsException("Пустое размещение для ЛС"); + + var accomodation = new HouseManagement.AccountTypeAccommodation(); + if (размещение.ГуидПомещения != null) + { + accomodation.ItemElementName = HouseManagement.ItemChoiceType19.PremisesGUID; + accomodation.Item = FormatGuid(размещение.ГуидПомещения); + } + else if (размещение.ГуидЖилойКомнаты != null) + { + accomodation.ItemElementName = HouseManagement.ItemChoiceType19.LivingRoomGUID; + accomodation.Item = FormatGuid(размещение.ГуидЖилойКомнаты); + } + else + { + throw new HcsException("Не указан ГУИД помещения или комнаты для ЛС"); + } + + if (размещение.ПроцентДоли != null) + { + accomodation.SharePercent = (decimal)размещение.ПроцентДоли; + accomodation.SharePercentSpecified = true; + } + + return accomodation; + } + + private async Task<(string UnifiedAccountNumber, DateTime UpdateDate)> CallImportAccountData( + HouseManagement.importAccountRequestAccount account, + CancellationToken token) + { + var request = new HouseManagement.importAccountRequest + { + Id = HcsConstants.SignedXmlElementId, + Account = [account] + // TODO: Проверить комментарий + //version = "13.1.1.1" // Версия указана в API + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importAccountDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + var commonResult = ParseSingleImportResult(stateResult); + + switch (commonResult.ItemElementName) + { + + case HouseManagement.ItemChoiceType2.ImportAccount: + var accountResult = RequireType(commonResult.Item); + + DateTime updateDate = commonResult.Items.OfType().FirstOrDefault(); + if (updateDate == default) + throw new HcsException("В ответе сервера не указана дата обновления лицевого счета"); + + return (accountResult.UnifiedAccountNumber, updateDate); + + default: + throw new HcsException($"Неожиданная структура в пакете результата: {commonResult.ItemElementName}"); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportMeteringDeviceData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportMeteringDeviceData.cs new file mode 100644 index 0000000..9f28737 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportMeteringDeviceData.cs @@ -0,0 +1,207 @@ +using Hcs.ClientApi.DataTypes; +using Hcs.ClientApi.DeviceMeteringApi; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод передачи в ГИС ЖКХ сведений о приборе учета (новом или уже существующем) + /// + public class HcsMethodImportMeteringDeviceData : HcsHouseManagementMethod + { + public HcsMethodImportMeteringDeviceData(HcsClientConfig config) : base(config) + { + CanBeRestarted = false; + } + + /// + /// Размещение нового прибора учета если ГисПриборУчета.ГуидПрибораУчета не заполнен, + /// размещение новой версии прибора учета если заполнен. + /// Возвращает GUID размещенного прибора учета + /// http://open-gkh.ru/HouseManagement/importMeteringDeviceDataRequest.html + /// + public async Task ImportMeteringDevice(ГисПриборУчета прибор, CancellationToken token) + { + if (прибор == null) throw new ArgumentNullException(nameof(прибор)); + + var device = ConvertToMeteringDevice(прибор); + var result = await CallImportMeteringDevice(device, token); + return result.MeteringDeviceGuid; + } + + /// + /// Выполняет архивацию(удаление) прибора учета в ГИС. + /// В структуре ПриборУчета используется только поле ГуидВерсииПрибора. + /// + public async Task ArchiveMeteringDevice(ГисПриборУчета приборУчета, CancellationToken token) + { + var archive = new HouseManagement.importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateArchiveDevice(); + archive.ArchivingReason = HcsHouseManagementNsi.ПричинаАрхивацииПрибораУчета.ИстекСрокЭксплуатации; + + var update = new HouseManagement.importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate(); + update.MeteringDeviceVersionGUID = FormatGuid(приборУчета.ГуидВерсииПрибора); + update.Item = archive; + + var device = new HouseManagement.importMeteringDeviceDataRequestMeteringDevice(); + device.TransportGUID = FormatGuid(Guid.NewGuid()); + device.Item = update; + + var result = await CallImportMeteringDevice(device, token); + return result.UpdateDate; + } + + private HouseManagement.importMeteringDeviceDataRequestMeteringDevice + ConvertToMeteringDevice(ГисПриборУчета прибор) + { + var device = new HouseManagement.importMeteringDeviceDataRequestMeteringDevice(); + + // ГИС будет возвращать ошибку с указанием этого идентификатора для определения элемента пакета + device.TransportGUID = FormatGuid(Guid.NewGuid()); + + if (прибор.ГуидВерсииПрибора != default) + { + var update = new HouseManagement.importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate(); + update.MeteringDeviceVersionGUID = FormatGuid(прибор.ГуидВерсииПрибора); + update.Item = ConvertToFullInformationType(прибор); + device.Item = update; + } + else + { + device.Item = ConvertToFullInformationType(прибор); + } + + return device; + } + + private HouseManagement.MeteringDeviceFullInformationType ConvertToFullInformationType( + ГисПриборУчета прибор) + { + var basic = new HouseManagement.MeteringDeviceBasicCharacteristicsType(); + basic.MeteringDeviceNumber = прибор.ЗаводскойНомер; + basic.MeteringDeviceModel = прибор.МодельПрибораУчета; + basic.MeteringDeviceStamp = прибор.МодельПрибораУчета; + + basic.TemperatureSensor = false; + basic.PressureSensor = false; + + basic.RemoteMeteringMode = прибор.РежимДистанционногоОпроса; + if (прибор.РежимДистанционногоОпроса) + basic.RemoteMeteringInfo = прибор.ОписаниеДистанционногоОпроса; + + if (прибор.ДатаУстановки != null) + { + basic.InstallationDate = (DateTime)прибор.ДатаУстановки; + basic.InstallationDateSpecified = true; + } + + if (прибор.ДатаВводаВЭксплуатацию != null) + { + basic.CommissioningDate = (DateTime)прибор.ДатаВводаВЭксплуатацию; + basic.CommissioningDateSpecified = true; + } + + if (прибор.ДатаПоследнейПоверки != null) + { + basic.FirstVerificationDate = (DateTime)прибор.ДатаПоследнейПоверки; + basic.FirstVerificationDateSpecified = true; + } + + if (прибор.ДатаИзготовления != null) + { + basic.FactorySealDate = (DateTime)прибор.ДатаИзготовления; + basic.FactorySealDateSpecified = true; + } + + switch (прибор.ВидПрибораУчета) + { + case ГисВидПрибораУчета.ОДПУ: + if (IsArrayEmpty(прибор.ГуидыЗданийФиас)) + throw new HcsException("Для ОДПУ необходимо указать ГУИД здания ФИАС"); + basic.Item = new HouseManagement.MeteringDeviceBasicCharacteristicsTypeCollectiveDevice() + { + FIASHouseGuid = прибор.ГуидыЗданийФиас.Select(FormatGuid).ToArray() + }; + break; + + case ГисВидПрибораУчета.НежилоеПомещение: + if (IsArrayEmpty(прибор.ГуидыЛицевыхСчетов)) + throw new HcsException("Для размещения ПУ нежилого помещения следует указать ГУИД лицевого счета"); + if (IsArrayEmpty(прибор.ГуидыПомещений)) + throw new HcsException("Для размещения ПУ нежилого помещения следует указать ГУИД помещения"); + basic.Item = new HouseManagement.MeteringDeviceBasicCharacteristicsTypeNonResidentialPremiseDevice() + { + AccountGUID = прибор.ГуидыЛицевыхСчетов.Select(FormatGuid).ToArray(), + PremiseGUID = прибор.ГуидыПомещений.Select(FormatGuid).ToArray() + }; + break; + + default: + throw new NotImplementedException( + "Не реализовано размещение вида прибора: " + прибор.ВидПрибораУчета); + } + + var electric = new HouseManagement.MunicipalResourceElectricBaseType(); + electric.Unit = HouseManagement.MunicipalResourceElectricBaseTypeUnit.Item245; // Константа ОКЕИ 245=кВт*ч + electric.UnitSpecified = true; + electric.MeteringValueT1 = HcsDeviceMeteringUtil.ConvertMeterReading(прибор.ПоказаниеТ1, true); + electric.MeteringValueT2 = HcsDeviceMeteringUtil.ConvertMeterReading(прибор.ПоказаниеТ2, false); + electric.MeteringValueT3 = HcsDeviceMeteringUtil.ConvertMeterReading(прибор.ПоказаниеТ3, false); + if (прибор.КоэффициентТрансформацииУказан) + { + electric.TransformationRatio = прибор.КоэффициентТрансформации; + electric.TransformationRatioSpecified = true; + } + + return new HouseManagement.MeteringDeviceFullInformationType() + { + BasicChatacteristicts = basic, + // TODO: Проверить комментарий + Item = true, // NotLinkedWithMetering (нет связей с другими приборами) + Items = [electric] + }; + } + + private async Task<(Guid MeteringDeviceGuid, DateTime UpdateDate)> CallImportMeteringDevice( + HouseManagement.importMeteringDeviceDataRequestMeteringDevice device, + CancellationToken token) + { + HouseManagement.importMeteringDeviceDataRequestMeteringDevice[] devices = { device }; + + var request = new HouseManagement.importMeteringDeviceDataRequest + { + Id = HcsConstants.SignedXmlElementId, + MeteringDevice = devices + // TODO: Проверить хардкод версии + //version = "13.1.1.1" // Версия указана в API + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importMeteringDeviceDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + var commonResult = ParseSingleImportResult(stateResult); + + switch (commonResult.ItemElementName) + { + case HouseManagement.ItemChoiceType2.importMeteringDevice: + var deviceResult = RequireType(commonResult.Item); + + DateTime updateDate = commonResult.Items.OfType().FirstOrDefault(); + if (updateDate == default) throw new HcsException("В ответе сервера не указана дата обновления прибора учета"); + + return (ParseGuid(deviceResult.MeteringDeviceGUID), updateDate); + + default: + throw new HcsException($"Неожиданная структура в пакете результата: {commonResult.ItemElementName}"); + } + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractData.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractData.cs new file mode 100644 index 0000000..f19ef4f --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractData.cs @@ -0,0 +1,386 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод передачи в ГИС ЖКХ сведений о договоре РСО (новом или уже существующем) + /// + public class HcsMethodImportSupplyResourceContractData : HcsHouseManagementMethod + { + public HcsMethodImportSupplyResourceContractData(HcsClientConfig config) : base(config) + { + CanBeRestarted = false; + } + + /// + /// Размещение нового договора если ГисДоговор.ГуидДоговора не заполнен, + /// размещение новой версии договора если заполнен + /// http://open-gkh.ru/HouseManagement/SupplyResourceContractType.html + /// + public async Task ImportContract( + ГисДоговор договор, IEnumerable<ГисАдресныйОбъект> адреса, CancellationToken token) + { + if (договор == null) throw new ArgumentNullException(nameof(договор)); + if (адреса == null || !адреса.Any()) + throw new ArgumentException($"Для импорта нового договора {договор.НомерДоговора}" + + " необходимо указать хотя-бы один адресный объект"); + + Guid? contractGuid = (договор.ГуидДоговора == default) ? null : договор.ГуидДоговора; + var contract = ConvertToSupplyResourceContract(договор, адреса); + return await CallImportContract(contractGuid, contract, token); + } + + /// + /// Вызывает удаленный метод импорта договора с @contractGuid и данными операции импорта @contractItem. + /// Чтобы перевести договор из состояния "Проект" в состояние "Размещен" необходимо вызвать + /// importSupplyResourceContractProjectData/PlacingContractProject=true + /// http://open-gkh.ru/HouseManagement/importSupplyResourceContractRequest.html + /// + private async Task CallImportContract( + Guid? contractGuid, object contractItem, CancellationToken token) + { + var contract = new HouseManagement.importSupplyResourceContractRequestContract(); + HouseManagement.importSupplyResourceContractRequestContract[] contracts = { contract }; + + // Передаем условие запроса - гуид версии договора. + // При создании нового договора атрибут importSupplyResourceContractRequest.Contract.ContractGUID не заполняется. + if (contractGuid != null) + { + contract.ItemElementName = HouseManagement.ItemChoiceType26.ContractRootGUID; + contract.Item = FormatGuid(contractGuid); + } + + contract.TransportGUID = FormatGuid(Guid.NewGuid()); + + contract.Item1 = contractItem; + + var request = new HouseManagement.importSupplyResourceContractRequest + { + Id = HcsConstants.SignedXmlElementId, + Contract = contracts + // TODO: Проверить комментарий + //version = "13.1.1.1" // Версия указана в API + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importSupplyResourceContractDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + var commonResult = ParseSingleImportResult(stateResult); + + switch (commonResult.ItemElementName) + { + case HouseManagement.ItemChoiceType2.ImportSupplyResourceContract: + var contractResult = RequireType(commonResult.Item); + var датаИмпорта = RequireSingleItem(commonResult.Items); + return датаИмпорта; + default: + throw new HcsException($"Неожиданная структура в пакете результата: {commonResult.ItemElementName}"); + } + } + + /// + /// Преобразует модель данных ГисДоговор в модель данных HouseManagement.SupplyResourceContractType + /// http://open-gkh.ru/HouseManagement/SupplyResourceContractType.html + /// + private HouseManagement.SupplyResourceContractType ConvertToSupplyResourceContract( + ГисДоговор договор, IEnumerable<ГисАдресныйОбъект> адреса) + { + var contract = new HouseManagement.SupplyResourceContractType(); + + if (договор.ЭтоДоговорНежилогоПомещения) + { + var isNotContract = new HouseManagement.SupplyResourceContractTypeIsNotContract(); + isNotContract.ContractNumber = договор.НомерДоговора; + if (договор.ДатаЗаключения != null) + isNotContract.SigningDate = (DateTime)договор.ДатаЗаключения; + if (!IsArrayEmpty(договор.ПриложенияДоговора)) + isNotContract.ContractAttachment = договор.ПриложенияДоговора.Select(ConvertToAttachment).ToArray(); + contract.Item = isNotContract; + } + + if (договор.ЭтоДоговорИКУ) + { + var isContract = new HouseManagement.SupplyResourceContractTypeIsContract(); + isContract.ContractNumber = договор.НомерДоговора; + var нужнаДатаЗаключения = (договор.ДатаЗаключения != null) ? (DateTime)договор.ДатаЗаключения : DateTime.Now; + isContract.SigningDate = isContract.EffectiveDate = нужнаДатаЗаключения; + + // Для ИКУ обязательно приложение файла договора (иначе 400 Bad request) + if (IsArrayEmpty(договор.ПриложенияДоговора)) + throw new HcsException($"Для размещения договора ИКУ {договор.НомерДоговора} необходимо указать файл приложения"); + isContract.ContractAttachment = договор.ПриложенияДоговора.Select(ConvertToAttachment).ToArray(); + contract.Item = isContract; + } + + if (договор.Контрагент == null) + throw new HcsException($"В договоре {договор.НомерДоговора} не указан Контрагент"); + + if (договор.ЭтоДоговорНежилогоПомещения) + { + contract.Item1 = new HouseManagement.SupplyResourceContractTypeApartmentBuildingOwner() + { + Item = ConvertToDRSOContragent(договор.Контрагент) + }; + + contract.ContractBase = [HcsHouseManagementNsi.ОснованиеЗаключенияДоговора.ЗаявлениеПотребителя]; + } + + if (договор.ЭтоДоговорИКУ) + { + if (договор.Контрагент.ГуидОрганизации == null) + throw new HcsException($"В договоре ИКУ {договор.НомерДоговора} не указан ГУИД организации"); + + contract.Item1 = new HouseManagement.SupplyResourceContractTypeOrganization() + { + orgRootEntityGUID = FormatGuid(договор.Контрагент.ГуидОрганизации) + }; + + contract.ContractBase = [HcsHouseManagementNsi.ОснованиеЗаключенияДоговора.ДоговорУправления]; + } + + Guid contractSubjectGuid = Guid.NewGuid(); + contract.ContractSubject = [ + new HouseManagement.SupplyResourceContractTypeContractSubject() { + ServiceType = HcsHouseManagementNsi.ElectricSupplyServiceType, + MunicipalResource = HcsHouseManagementNsi.ElectricSupplyMunicipalResource, + StartSupplyDate = (договор.ДатаЗаключения != null ? (DateTime)договор.ДатаЗаключения : DateTime.Now), + EndSupplyDate = DateTime.Now.AddYears(50), + TransportGUID = FormatGuid(contractSubjectGuid) + } + ]; + + // Порядок размещения информации о начислениях за коммунальные услуги ведется. + // "D" - в разрезе договора. "O" - в разрезе объектов. Обязательно для ИКУ. + if (договор.ЭтоДоговорИКУ) + { + contract.AccrualProcedure = HouseManagement.SupplyResourceContractTypeAccrualProcedure.D; + contract.AccrualProcedureSpecified = true; + } + + if (договор.ЭтоДоговорИКУ) + { + // Размещение информации о начислениях за коммунальные услуги осуществляет. + // R(SO)- РСО. P(roprietor)-Исполнитель коммунальных услуг. Обязательно для ИКУ. + contract.CountingResource = + договор.НачисленияРазмещаетРСО ? + HouseManagement.SupplyResourceContractTypeCountingResource.R : + HouseManagement.SupplyResourceContractTypeCountingResource.P; + contract.CountingResourceSpecified = true; + + if (договор.НачисленияРазмещаетРСО) + { + if (договор.ПриборыРазмещаетРСО) + { + contract.MeteringDeviceInformation = true; + contract.MeteringDeviceInformationSpecified = true; + } + } + + // В договоре нет планового объема потребления + contract.IsPlannedVolume = false; + } + + if (договор.НачисленияРазмещаетРСО) + { + // Cрок предоставления платежных документов, не позднее + contract.BillingDate = new HouseManagement.SupplyResourceContractTypeBillingDate() + { + Date = 15, + DateType = HouseManagement.SupplyResourceContractTypeBillingDateDateType.N // Следующий месяц + }; + + // Срок предоставления информации о поступивших платежах, не позднее + contract.ProvidingInformationDate = new HouseManagement.SupplyResourceContractTypeProvidingInformationDate() + { + Date = 15, + DateType = HouseManagement.SupplyResourceContractTypeProvidingInformationDateDateType.N // Следующий месяц + }; + } + + if (договор.ПриборыРазмещаетРСО) + { + // Период передачи текущих показаний должен быть указан, если ИПУ размещает РСО + contract.Period = new HouseManagement.SupplyResourceContractTypePeriod() + { + Start = new HouseManagement.SupplyResourceContractTypePeriodStart() + { + StartDate = 1 + }, + End = new HouseManagement.SupplyResourceContractTypePeriodEnd() + { + EndDate = 25 + } + }; + } + + // Срок представления (выставления) платежных документов, не позднее. Является обязательным, + // если вторая сторона договора отличается от "Управляющая организация". + if (договор.ЭтоДоговорНежилогоПомещения) + { + contract.BillingDate = new HouseManagement.SupplyResourceContractTypeBillingDate() + { + Date = -1, // последний день месяца + DateType = HouseManagement.SupplyResourceContractTypeBillingDateDateType.N // следующего месяца + }; + + // Объем поставки определяется на основании прибора учета (признак необходим чтобы + // ГИС разрешал размещать ПУ на лицевых счетах договора) (признак запрещен для ИКУ) + contract.VolumeDepends = true; + contract.VolumeDependsSpecified = true; + + // Период передачи текущих показаний должен быть указан если указано VolumeDepends + contract.Period = new HouseManagement.SupplyResourceContractTypePeriod() + { + Start = new HouseManagement.SupplyResourceContractTypePeriodStart() + { + StartDate = 1 + }, + End = new HouseManagement.SupplyResourceContractTypePeriodEnd() + { + EndDate = 25 + } + }; + } + + // Срок действия договора + contract.ItemsElementName = [HouseManagement.ItemsChoiceType25.IndefiniteTerm]; + contract.Items = [true]; + + // Данные об объекте жилищного фонда. При импорте договора должен быть добавлен + // как минимум один адрес объекта жилищного фонда. + if (адреса != null) + { + contract.ObjectAddress = адреса.Select( + адрес => ConvertToObjectAddress(договор, адрес, contractSubjectGuid)).ToArray(); + } + + return contract; + } + + /// + /// Сборка сведений для отправки указателя на файл приложения к договору + /// http://open-gkh.ru/Base/AttachmentType.html + /// + private HouseManagement.AttachmentType ConvertToAttachment(ГисПриложение приложение) + { + return new HouseManagement.AttachmentType() + { + Name = приложение.ИмяПриложения ?? throw new HcsException("Не указано имя файла приложения"), + Description = приложение.ОписаниеПриложения != null ? приложение.ОписаниеПриложения : приложение.ИмяПриложения, + AttachmentHASH = приложение.ХэшПриложения ?? throw new HcsException("Не указан хэш файла приложения"), + Attachment = new HouseManagement.Attachment() + { + AttachmentGUID = FormatGuid(приложение.ГуидПриложения) + } + }; + } + + private HouseManagement.SupplyResourceContractTypeObjectAddress ConvertToObjectAddress( + ГисДоговор договор, ГисАдресныйОбъект адрес, Guid contractSubjectGuid) + { + // Дату начала снабжения выводим из даты заключения договора + DateTime startSupplyDate = (договор.ДатаЗаключения != null) ? + (DateTime)договор.ДатаЗаключения : DateTime.Now; + + // Ссылка на пару определения ресурсов предмета договора + var pair = new HouseManagement.SupplyResourceContractTypeObjectAddressPair(); + pair.PairKey = FormatGuid(contractSubjectGuid); + pair.StartSupplyDate = startSupplyDate; + // TODO: Проверить комментарий + pair.EndSupplyDateSpecified = false; // Не указана дата окончания поставки ресурса + + var address = new HouseManagement.SupplyResourceContractTypeObjectAddress() + { + TransportGUID = FormatGuid(Guid.NewGuid()), + FIASHouseGuid = FormatGuid(адрес.ГуидЗданияФиас), + ApartmentNumber = MakeEmptyNull(адрес.НомерПомещения), + RoomNumber = MakeEmptyNull(адрес.НомерКомнаты), + Pair = [pair] + }; + + if (!string.IsNullOrEmpty(адрес.ТипЗдания)) + { + address.HouseTypeSpecified = true; + address.HouseType = ConvertToHouseType(адрес.ТипЗдания); + } + + return address; + } + + private HouseManagement.ObjectAddressTypeHouseType ConvertToHouseType(string типЗдания) + { + return типЗдания switch + { + ГисАдресныйОбъект.ИзвестныеТипыЗдания.MKD => HouseManagement.ObjectAddressTypeHouseType.MKD, + ГисАдресныйОбъект.ИзвестныеТипыЗдания.ZHD => HouseManagement.ObjectAddressTypeHouseType.ZHD, + ГисАдресныйОбъект.ИзвестныеТипыЗдания.ZHDBlockZastroyki => HouseManagement.ObjectAddressTypeHouseType.ZHDBlockZastroyki, + _ => throw new HcsException($"Указан неизвестный тип здания [{типЗдания}]") + }; + } + + /// + /// Преобразует реквизиты контрагента в модель данных ГИС ЖКХ + /// + private object ConvertToDRSOContragent(ГисКонтрагент контрагент) + { + if (контрагент.ГуидОрганизации != null) + { + return new HouseManagement.DRSORegOrgType() + { + orgRootEntityGUID = FormatGuid(контрагент.ГуидОрганизации) + }; + } + + if (контрагент.Индивид != null) + { + контрагент.Индивид.ПроверитьЗаполнениеСНИЛС(); + контрагент.Индивид.ПроверитьЗаполнениеФИО(); + + return new HouseManagement.DRSOIndType() + { + Patronymic = MakeEmptyNull(контрагент.Индивид.Отчество), + FirstName = MakeEmptyNull(контрагент.Индивид.Имя), + Surname = MakeEmptyNull(контрагент.Индивид.Фамилия), + Item = MakeEmptyNull(контрагент.Индивид.СНИЛСТолькоЦифры) // В СНИЛС требуется только 11 цифр + }; + } + + return false; + } + + /// + /// Выполнение операции размещения факта расторжения договора + /// http://open-gkh.ru/HouseManagement/importSupplyResourceContractRequest/Contract/TerminateContract.html + /// + public async Task TerminateContract( + ГисДоговор договор, DateTime датаРасторжения, CancellationToken token) + { + var terminate = new HouseManagement.importSupplyResourceContractRequestContractTerminateContract(); + terminate.Terminate = датаРасторжения; + terminate.ReasonRef = HcsHouseManagementNsi.ПричинаРасторженияДоговора.ПоВзаимномуСогласиюСторон; + return await CallImportContract(договор.ГуидДоговора, terminate, token); + } + + /// + /// Выполнение операции размещения факта аннулирование договора + /// http://open-gkh.ru/HouseManagement/AnnulmentType.html + /// + public async Task AnnulContract(ГисДоговор договор, string причина, CancellationToken token) + { + var annulment = new HouseManagement.AnnulmentType(); + annulment.ReasonOfAnnulment = причина; + return await CallImportContract(договор.ГуидДоговора, annulment, token); + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractObjectAddress.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractObjectAddress.cs new file mode 100644 index 0000000..1abb771 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractObjectAddress.cs @@ -0,0 +1,133 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод добавления/изменения/удаления элементов списка адресных объектов + /// в договоре ресурсоснабжения + /// + public class HcsMethodImportSupplyResourceContractObjectAddress : HcsHouseManagementMethod + { + public HcsMethodImportSupplyResourceContractObjectAddress + (HcsClientConfig config) : base(config) + { + EnableMinimalResponseWaitDelay = true; + CanBeRestarted = true; + } + + public async Task ImportObjectAddresses( + ГисДоговор договор, + IEnumerable<ГисАдресныйОбъект> адресаДляРазмещения, + IEnumerable<ГисАдресныйОбъект> адресаДляУдаления, + CancellationToken token) + { + if (договор == null) throw new ArgumentNullException(nameof(договор)); + + var list = new List(); + if (адресаДляРазмещения != null) list.AddRange(адресаДляРазмещения.Select(AdoptForLoading)); + if (адресаДляУдаления != null) list.AddRange(адресаДляУдаления.Select(AdoptForRemoval)); + + var request = new HouseManagement.importSupplyResourceContractObjectAddressRequest() + { + Id = HcsConstants.SignedXmlElementId, + Item = FormatGuid(договор.ГуидДоговора), + ItemElementName = HouseManagement.ItemChoiceType28.ContractRootGUID, + ObjectAddress = list.ToArray() + // TODO: Проверить комментарий + //version = "13.1.1.1" // Версия указана в API + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importSupplyResourceContractObjectAddressDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + ParseImportResults(stateResult, list.Count(), true); + } + + /// + /// Готовит структуру адресного объекта для удаления в ГИС + /// + private HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddress AdoptForRemoval( + ГисАдресныйОбъект адрес) + { + if (адрес == null) throw new ArgumentNullException(nameof(адрес)); + + Guid transportGuid = Guid.NewGuid(); + + bool deleteObject = true; + + return new HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddress() + { + TransportGUID = FormatGuid(transportGuid), + ObjectGUID = FormatGuid(адрес.ГуидАдресногоОбъекта), + Item = deleteObject + }; + } + + /// + /// Готовит структуру адресного объекта для добавления/обновления в ГИС + /// + private HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddress AdoptForLoading( + ГисАдресныйОбъект адрес) + { + if (адрес == null) throw new ArgumentNullException(nameof(адрес)); + + Guid transportGuid = Guid.NewGuid(); + + var serviceType = new HouseManagement.ContractSubjectObjectAdressTypeServiceType() + { + Code = HcsHouseManagementNsi.ElectricSupplyServiceType.Code, + GUID = HcsHouseManagementNsi.ElectricSupplyServiceType.GUID, + Name = HcsHouseManagementNsi.ElectricSupplyServiceType.Name + }; + + var municipalResource = new HouseManagement.ContractSubjectObjectAdressTypeMunicipalResource() + { + Code = HcsHouseManagementNsi.ElectricSupplyMunicipalResource.Code, + GUID = HcsHouseManagementNsi.ElectricSupplyMunicipalResource.GUID, + Name = HcsHouseManagementNsi.ElectricSupplyMunicipalResource.Name + }; + + var pair = new HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPair() + { + // TODO: Проверить комментарий + TransportGUID = FormatGuid(Guid.NewGuid()), // Получал BadRequest пока не сделал здесь новый GUID + ServiceType = serviceType, + MunicipalResource = municipalResource, + // TODO: Проверить комментарий + StartSupplyDate = DateTime.Now // В договоре нет даты начала снабжения адреса, ставлю что-нибудь + }; + + var loadObject = new HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddressLoadObject() + { + FIASHouseGuid = FormatGuid(адрес.ГуидЗданияФиас), + ApartmentNumber = MakeEmptyNull(адрес.НомерПомещения), + RoomNumber = MakeEmptyNull(адрес.НомерКомнаты), + Pair = [pair] + }; + + var address = new HouseManagement.importSupplyResourceContractObjectAddressRequestObjectAddress() + { + TransportGUID = FormatGuid(transportGuid), + Item = loadObject + }; + + if (адрес.ГуидАдресногоОбъекта != default) + { + address.ObjectGUID = FormatGuid(адрес.ГуидАдресногоОбъекта); + } + + return address; + } + } +} diff --git a/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractProject.cs b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractProject.cs new file mode 100644 index 0000000..19c1d79 --- /dev/null +++ b/Hcs.Client/ClientApi/HouseManagementApi/HcsMethodImportSupplyResourceContractProject.cs @@ -0,0 +1,80 @@ +using Hcs.ClientApi.DataTypes; +using Hcs.Service.Async.HouseManagement.v14_5_0_1; +using System; +using System.Threading; +using System.Threading.Tasks; + +using HouseManagement = Hcs.Service.Async.HouseManagement.v14_5_0_1; + +namespace Hcs.ClientApi.HouseManagementApi +{ + /// + /// Метод отправки в ГИС проекта договора ресурсоснабжения, удаления + /// проекта договора РСО, перевода проекта в статус Размещенные + /// + public class HcsMethodImportSupplyResourceContractProject : HcsHouseManagementMethod + { + public HcsMethodImportSupplyResourceContractProject + (HcsClientConfig config) : base(config) + { + EnableMinimalResponseWaitDelay = true; + CanBeRestarted = false; + } + + /// + /// Выполнение удаления в ГИС проекта договора + /// + public async Task DeleteContractProject(ГисДоговор договор, CancellationToken token) + { + await DoContractProjectOperation( + договор, Item1ChoiceType10.DeleteContractProject, token); + } + + /// + /// Выполнение перевода проекта договора в статус Размещен + /// + public async Task PlaceContractProject(ГисДоговор договор, CancellationToken token) + { + await DoContractProjectOperation( + договор, Item1ChoiceType10.PlacingContractProject, token); + } + + private async Task DoContractProjectOperation( + ГисДоговор договор, Item1ChoiceType10 operationType, CancellationToken token) + { + if (договор == null) throw new ArgumentNullException(nameof(договор)); + if (договор.ГуидВерсииДоговора == default) + throw new ArgumentException("Для проекта договора не указан ГУИД версии"); + + var contract = new HouseManagement.importSupplyResourceContractProjectRequestContract() + { + TransportGUID = FormatGuid(Guid.NewGuid()), + ItemElementName = ItemChoiceType29.ContractRootGUID, + Item = FormatGuid(договор.ГуидДоговора), + // TODO: Проверить комментарий + // Если удалять версию проекта то остается предыдущая версия проекта + //ItemElementName = ItemChoiceType29.ContractGUID, + //Item = FormatGuid(договор.ГуидВерсииДоговора), + Item1ElementName = operationType, + Item1 = true, + }; + + var request = new HouseManagement.importSupplyResourceContractProjectRequest() + { + Id = HcsConstants.SignedXmlElementId, + Contract = [contract], + // TODO: Проверить комментарий + //version = "13.1.1.1" // Версия указана в API + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var ackResponse = await portClient.importSupplyResourceContractProjectDataAsync( + CreateRequestHeader(), request); + return ackResponse.AckRequest.Ack; + }, token); + + ParseSingleImportResult(stateResult); + } + } +} diff --git a/Hcs.Client/ClientApi/IHcsLogger.cs b/Hcs.Client/ClientApi/IHcsLogger.cs new file mode 100644 index 0000000..2afe139 --- /dev/null +++ b/Hcs.Client/ClientApi/IHcsLogger.cs @@ -0,0 +1,10 @@ +namespace Hcs.ClientApi +{ + /// + /// Интерфейс для механизма вывода отладочных сообщений для обработки вызывающей системой + /// + public interface IHcsLogger + { + void WriteLine(string message); + } +} diff --git a/Hcs.Client/ClientApi/IHcsMessageCapture.cs b/Hcs.Client/ClientApi/IHcsMessageCapture.cs new file mode 100644 index 0000000..56bf46d --- /dev/null +++ b/Hcs.Client/ClientApi/IHcsMessageCapture.cs @@ -0,0 +1,11 @@ +namespace Hcs.ClientApi +{ + /// + /// Интерфейс для механизма захвата отправляемых и принимаемых + /// SOAP сообщений в ходе коммуникации с ГИС ЖКХ + /// + public interface IHcsMessageCapture + { + void CaptureMessage(bool sentOrReceived, string messageBody); + } +} diff --git a/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsMethodExportOrgRegistry.cs b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsMethodExportOrgRegistry.cs new file mode 100644 index 0000000..f8e7cab --- /dev/null +++ b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsMethodExportOrgRegistry.cs @@ -0,0 +1,133 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using OrgRegistryCommon = Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1; + +namespace Hcs.ClientApi.OrgRegistryCommonApi +{ + /// + /// Операции экспорта данных из реестра организаций ГИС ЖКХ + /// + public class HcsMethodExportOrgRegistry : HcsOrgRegistryCommonMethod + { + public HcsMethodExportOrgRegistry(HcsClientConfig config) : base(config) + { + EnableMinimalResponseWaitDelay = true; + CanBeRestarted = true; + } + + /// + /// Возвращает карточки организации в ГИС ЖКХ по номеру ОГРН организации. + /// При отсутствии результатов будет выброшено HcsNoResultsRemoteException. + /// + public async Task> GetOrgByOgrn( + string ogrn, string kpp, CancellationToken token) + { + if (string.IsNullOrEmpty(ogrn)) throw new ArgumentException("Не указан ОГРН для поиска организации"); + if (ogrn.Length != ГисОрганизация.ДлинаОГРН && ogrn.Length != ГисОрганизация.ДлинаОГРНИП) + { + throw new ArgumentException( + $"В строке ОГРН допускается или {ГисОрганизация.ДлинаОГРН} или {ГисОрганизация.ДлинаОГРНИП} символов: {ogrn}"); + } + + var criteria = new OrgRegistryCommon.exportOrgRegistryRequestSearchCriteria(); + if (!string.IsNullOrEmpty(kpp)) + { + criteria.ItemsElementName = [OrgRegistryCommon.ItemsChoiceType3.OGRN, OrgRegistryCommon.ItemsChoiceType3.KPP]; + criteria.Items = [ogrn, kpp]; + } + else + { + if (ogrn.Length == ГисОрганизация.ДлинаОГРНИП) + criteria.ItemsElementName = [OrgRegistryCommon.ItemsChoiceType3.OGRNIP]; + else criteria.ItemsElementName = [OrgRegistryCommon.ItemsChoiceType3.OGRN]; + criteria.Items = [ogrn]; + } + + var request = new OrgRegistryCommon.exportOrgRegistryRequest + { + Id = HcsConstants.SignedXmlElementId, + SearchCriteria = [criteria] + }; + + var stateResult = await SendAndWaitResultAsync(request, async (portClient) => + { + var response = await portClient.exportOrgRegistryAsync(CreateRequestHeader(), request); + return response.AckRequest.Ack; + }, token); + + // В возвращаемой структуре мало ценной информации, только ГУИД организации в ГИС ЖКХ + // (необходимый для размещения договоров) и ГУИД поставщика информации OrgPPAGUID. + // Для организаций с филиалами может вернуться список из нескольких ГУИД. + return stateResult.Items + .OfType() + .Select(x => Adopt(x)); + } + + private ГисОрганизация Adopt(OrgRegistryCommon.exportOrgRegistryResultType orgResult) + { + if (orgResult.OrgVersion == null) + throw new HcsException("В структуре exportOrgRegistryResultType не указано поле OrgVersion"); + + var организация = new ГисОрганизация() + { + ГуидОрганизации = ParseGuid(orgResult.orgRootEntityGUID), + ГуидВерсииОрганизации = ParseGuid(orgResult.OrgVersion.orgVersionGUID), + Действующая = orgResult.OrgVersion.IsActual + }; + + switch (orgResult.OrgVersion.Item) + { + case OrgRegistryCommon.LegalType legal: + организация.ТипОрганизации = ГисТипОрганизации.ЮЛ; + организация.ИНН = legal.INN; + организация.КПП = legal.KPP; + организация.ОГРН = legal.OGRN; + организация.ОКОПФ = legal.OKOPF; + организация.КраткоеИмяОрганизации = legal.ShortName; + организация.ПолноеИмяОрганизации = legal.FullName; + организация.ЮридическийАдрес = legal.Address; + if (legal.ActivityEndDateSpecified) + организация.ДатаЛиквидации = legal.ActivityEndDate; + break; + + case OrgRegistryCommon.EntpsType entps: + организация.ТипОрганизации = ГисТипОрганизации.ИП; + организация.ИНН = entps.INN; + организация.ОГРН = entps.OGRNIP; + организация.Фамилия = entps.Surname; + организация.Имя = entps.FirstName; + организация.Отчество = entps.Patronymic; + break; + + case OrgRegistryCommon.SubsidiaryType sub: + организация.ТипОрганизации = ГисТипОрганизации.Филиал; + организация.ИНН = sub.INN; + организация.КПП = sub.KPP; + организация.ОГРН = sub.OGRN; + организация.ОКОПФ = sub.OKOPF; + организация.КраткоеИмяОрганизации = sub.ShortName; + организация.ПолноеИмяОрганизации = sub.FullName; + организация.ЮридическийАдрес = sub.Address; + if (sub.ActivityEndDateSpecified) + организация.ДатаЛиквидации = sub.ActivityEndDate; + break; + + case OrgRegistryCommon.ForeignBranchType foreign: + организация.ТипОрганизации = ГисТипОрганизации.Иностранный; + организация.ИНН = foreign.INN; + организация.КПП = foreign.KPP; + организация.КраткоеИмяОрганизации = foreign.ShortName; + организация.ПолноеИмяОрганизации = foreign.FullName; + организация.ЮридическийАдрес = foreign.Address; + break; + } + + return организация; + } + } +} diff --git a/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonApi.cs b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonApi.cs new file mode 100644 index 0000000..b6e480e --- /dev/null +++ b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonApi.cs @@ -0,0 +1,48 @@ +using Hcs.ClientApi.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.OrgRegistryCommonApi +{ + public class HcsOrgRegistryCommonApi + { + public HcsClientConfig Config { get; private set; } + + public HcsOrgRegistryCommonApi(HcsClientConfig config) + { + this.Config = config; + } + + /// + /// Возвращает ГУИДы действующих организаций в ГИС ЖКХ по номеру ОГРН (КПП может быть не указан). + /// Если организации не найдены, возвращается пустой список. + /// + public async Task> GetOrgRootEntityGuidByOgrn( + string ogrn, string kpp, CancellationToken token = default) + { + var orgs = await GetOrgByOgrn(ogrn, kpp, token); + return orgs.Where(x => x.Действующая).Select(x => x.ГуидОрганизации); + } + + /// + /// Возвращает карточки организации в ГИС ЖКХ по номеру ОГРН (КПП может быть не указан). + /// Если организации не найдены, возвращается пустой список. + /// + public async Task> GetOrgByOgrn( + string ogrn, string kpp, CancellationToken token = default) + { + try + { + var method = new HcsMethodExportOrgRegistry(Config); + return await method.GetOrgByOgrn(ogrn, kpp, token); + } + catch (HcsNoResultsRemoteException) + { + return []; + } + } + } +} diff --git a/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonMethod.cs b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonMethod.cs new file mode 100644 index 0000000..3eeabec --- /dev/null +++ b/Hcs.Client/ClientApi/OrgRegistryCommonApi/HcsOrgRegistryCommonMethod.cs @@ -0,0 +1,112 @@ +using Hcs.ClientApi.RemoteCaller; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +using OrgRegistryCommon = Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1; + +namespace Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1 +{ + public partial class AckRequestAck : IHcsAck { } + public partial class getStateResult : IHcsGetStateResult { } + public partial class Fault : IHcsFault { } + public partial class HeaderType : IHcsHeaderType { } +} + +namespace Hcs.ClientApi.OrgRegistryCommonApi +{ + public class HcsOrgRegistryCommonMethod : HcsRemoteCallMethod + { + public HcsEndPoints EndPoint => HcsEndPoints.OrgRegistryCommonAsync; + + public OrgRegistryCommon.ISRequestHeader CreateRequestHeader() => + HcsRequestHelper.CreateHeader(ClientConfig); + + public HcsOrgRegistryCommonMethod(HcsClientConfig config) : base(config) { } + + public System.ServiceModel.EndpointAddress RemoteAddress + => GetEndpointAddress(HcsConstants.EndPointLocator.GetPath(EndPoint)); + + private OrgRegistryCommon.RegOrgPortsTypeAsyncClient NewPortClient() + { + var client = new OrgRegistryCommon.RegOrgPortsTypeAsyncClient(_binding, RemoteAddress); + ConfigureEndpointCredentials(client.Endpoint, client.ClientCredentials); + return client; + } + + public async Task SendAndWaitResultAsync( + object request, + Func> sender, + CancellationToken token) + { + token.ThrowIfCancellationRequested(); + + while (true) + { + try + { + return await SendAndWaitResultAsyncImpl(request, sender, token); + } + catch (HcsRestartTimeoutException e) + { + if (!CanBeRestarted) throw new HcsException("Превышен лимит ожидания выполнения запроса", e); + Log($"Перезапускаем запрос типа {request.GetType().Name}..."); + } + } + } + + private async Task SendAndWaitResultAsyncImpl( + object request, + Func> sender, + CancellationToken token) + { + if (request == null) throw new ArgumentNullException("Null request"); + string version = HcsRequestHelper.GetRequestVersionString(request); + _config.Log($"Отправляем запрос: {RemoteAddress.Uri}/{request.GetType().Name} в версии {version}..."); + + var stopWatch = System.Diagnostics.Stopwatch.StartNew(); + + IHcsAck ack; + using (var client = NewPortClient()) + { + ack = await sender(client); + } + + stopWatch.Stop(); + _config.Log($"Запрос принят в обработку за {stopWatch.ElapsedMilliseconds}мс., подтверждение {ack.MessageGUID}"); + + var stateResult = await WaitForResultAsync(ack, true, token); + + stateResult.Items.OfType().ToList().ForEach(x => + { + throw HcsRemoteException.CreateNew(x.ErrorCode, x.Description); + }); + + return stateResult; + } + + /// + /// Выполняет однократную проверку наличия результата. + /// Возвращает null если результата еще нет. + /// + protected override async Task TryGetResultAsync(IHcsAck sourceAck, CancellationToken token) + { + using (var client = NewPortClient()) + { + var requestHeader = HcsRequestHelper.CreateHeader(_config); + var requestBody = new OrgRegistryCommon.getStateRequest { MessageGUID = sourceAck.MessageGUID }; + + var response = await client.getStateAsync(requestHeader, requestBody); + var resultBody = response.getStateResult; + + if (resultBody.RequestState == HcsAsyncRequestStateTypes.Ready) + { + return resultBody; + } + + return null; + } + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/GostSigningEndpointBehavior.cs b/Hcs.Client/ClientApi/RemoteCaller/GostSigningEndpointBehavior.cs new file mode 100644 index 0000000..8395307 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/GostSigningEndpointBehavior.cs @@ -0,0 +1,34 @@ +using System.ServiceModel.Channels; +using System.ServiceModel.Description; +using System.ServiceModel.Dispatcher; + +namespace Hcs.ClientApi.RemoteCaller +{ + public class GostSigningEndpointBehavior : IEndpointBehavior + { + private HcsClientConfig clientConfig; + + public GostSigningEndpointBehavior(HcsClientConfig clientConfig) + { + this.clientConfig = clientConfig; + } + + public void Validate(ServiceEndpoint endpoint) + { + } + + public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters) + { + } + + public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) + { + } + + public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime) + { + clientRuntime.MessageInspectors.Add( + new GostSigningMessageInspector(clientConfig)); + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/GostSigningMessageInspector.cs b/Hcs.Client/ClientApi/RemoteCaller/GostSigningMessageInspector.cs new file mode 100644 index 0000000..2b72522 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/GostSigningMessageInspector.cs @@ -0,0 +1,120 @@ +using Hcs.GostXades; +using System; +using System.IO; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.ServiceModel.Dispatcher; +using System.Text; +using System.Xml; + +namespace Hcs.ClientApi.RemoteCaller +{ + /// + /// Фильтр сообщений добавляет в XML сообщение электронную подпись XADES/GOST. + /// + internal class GostSigningMessageInspector : IClientMessageInspector + { + private HcsClientConfig clientConfig; + + public GostSigningMessageInspector(HcsClientConfig clientConfig) + { + this.clientConfig = clientConfig; + } + + public object BeforeSendRequest(ref Message request, IClientChannel channel) + { + try + { + string filterHeader = " Фильтр отправки:"; + + PurgeDebuggerHeaders(ref request); + var messageBody = GetMessageBodyString(ref request, Encoding.UTF8); + + if (!messageBody.Contains(HcsConstants.SignedXmlElementId)) + { + clientConfig.MaybeCaptureMessage(true, messageBody); + } + else + { + string certInfo = HcsX509Tools.ДатьСтрокуФИОСертификатаСДатойОкончания(clientConfig.Certificate); + clientConfig.Log($"{filterHeader} подписываю сообщение ключем [{certInfo}]..."); + + var stopwatch = System.Diagnostics.Stopwatch.StartNew(); + var service = new GostXadesBesService(clientConfig.CryptoProviderType); + var signedXml = service.Sign(messageBody, + HcsConstants.SignedXmlElementId, + clientConfig.CertificateThumbprint, + clientConfig.CertificatePassword); + stopwatch.Stop(); + + clientConfig.Log($"{filterHeader} сообщение подписано за {stopwatch.ElapsedMilliseconds}мс."); + + clientConfig.MaybeCaptureMessage(true, signedXml); + + request = Message.CreateMessage( + XmlReaderFromString(signedXml), int.MaxValue, request.Version); + } + } + catch (Exception ex) + { + string error = $"В {GetType().Name} произошло исключение"; + throw new Exception(error, ex); + } + + return null; + } + + public void AfterReceiveReply(ref Message reply, object correlationState) + { + clientConfig.MaybeCaptureMessage(false, reply.ToString()); + } + + private void PurgeDebuggerHeaders(ref Message request) + { + int limit = request.Headers.Count; + for (int i = 0; i < limit; ++i) + { + if (request.Headers[i].Name.Equals("VsDebuggerCausalityData")) + { + request.Headers.RemoveAt(i); + break; + } + } + } + + string GetMessageBodyString(ref Message request, Encoding encoding) + { + MessageBuffer mb = request.CreateBufferedCopy(int.MaxValue); + + request = mb.CreateMessage(); + + Stream s = new MemoryStream(); + XmlWriter xw = XmlWriter.Create(s); + mb.CreateMessage().WriteMessage(xw); + xw.Flush(); + s.Position = 0; + + byte[] bXML = new byte[s.Length]; + s.Read(bXML, 0, (int)s.Length); + + if (bXML[0] != (byte)'<') + { + return encoding.GetString(bXML, 3, bXML.Length - 3); + } + else + { + return encoding.GetString(bXML, 0, bXML.Length); + } + } + + XmlReader XmlReaderFromString(String xml) + { + var stream = new MemoryStream(); + var writer = new System.IO.StreamWriter(stream); + writer.Write(xml); + writer.Flush(); + stream.Position = 0; + return XmlReader.Create(stream); + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/HcsPagedResultState.cs b/Hcs.Client/ClientApi/RemoteCaller/HcsPagedResultState.cs new file mode 100644 index 0000000..ec9d51b --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/HcsPagedResultState.cs @@ -0,0 +1,66 @@ +using System; + +namespace Hcs.ClientApi.RemoteCaller +{ + /// + /// Состояние многостраничной выдачи для методов HCS выдыющих длинные списки. + /// Списки выдаются порциями по 100 позиций и в каждой порции указано состояние + /// многостраничной выдачи одним значением - это либо bool со значением true что + /// означает что эта порция последняя IsLastPage, либо это строка содержащая + /// guid объекта начала следующей порции - и этот guid надо указать в запросе + /// чтобы получить следующую порцию. + /// + public class HcsPagedResultState + { + /// + /// Состояние указыввает что это последняя страница + /// + public bool IsLastPage { get; private set; } + + /// + /// Состояние указывает что это не последняя страница и + /// следующая страница начинается с NextGuid + /// + public Guid NextGuid { get; private set; } + + private const string me = nameof(HcsPagedResultState); + + public static readonly HcsPagedResultState IsLastPageResultState = new HcsPagedResultState(true); + + /// + /// Новый маркер состояния многостраничной выдачи метода HCS + /// + public HcsPagedResultState(object item) + { + if (item == null) throw new HcsException($"{me}.Item is null"); + + if (item is bool) + { + if ((bool)item == false) throw new HcsException($"{me}.IsLastPage is false"); + IsLastPage = true; + } + else if (item is string) + { + try + { + IsLastPage = false; + NextGuid = HcsUtil.ParseGuid((string)item); + } + catch (Exception e) + { + throw new HcsException($"Failed to parse {me}.NextGuid value", e); + } + } + else + { + throw new HcsException($"{me}.Item is of unrecognized type " + item.GetType().FullName); + } + } + + public override string ToString() + { + return $"{me}({nameof(IsLastPage)}={IsLastPage}" + + (IsLastPage ? "" : $",{nameof(NextGuid)}={NextGuid}") + ")"; + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/HcsRemoteCallMethod.cs b/Hcs.Client/ClientApi/RemoteCaller/HcsRemoteCallMethod.cs new file mode 100644 index 0000000..f6d1db4 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/HcsRemoteCallMethod.cs @@ -0,0 +1,373 @@ +using System; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.ServiceModel.Description; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.ClientApi.RemoteCaller +{ + /// + /// Базовый класс для методов HCS вызываемых удаленно + /// + public abstract class HcsRemoteCallMethod + { + public HcsClientConfig _config; + protected CustomBinding _binding; + + /// + /// Для методов возвращающих мало данных можно попробовать сократить + /// начальный период ожидания подготовки ответа + /// + public bool EnableMinimalResponseWaitDelay { get; internal set; } + + /// + /// Для противодействия зависанию ожидания вводится предел ожидания в минутах + /// для методов которые можно перезапустить заново с теми же параметрами. + /// С периодом в 120 минут 09.2024 не успевали за ночь получить все данные. + /// + public int RestartTimeoutMinutes = 20; + + /// + /// Можно ли этот метод перезапускать в случае зависания ожидания или в случае сбоя на сервере? + /// + public bool CanBeRestarted { get; protected set; } + + public HcsClientConfig ClientConfig => _config; + + public HcsRemoteCallMethod(HcsClientConfig config) + { + this._config = config; + ConfigureBinding(); + } + + private void ConfigureBinding() + { + _binding = new CustomBinding(); + + // Эксперимент 19.07.2022 возникает ошибка WCF (TimeoutException 60 сек) + _binding.ReceiveTimeout = TimeSpan.FromSeconds(180); + _binding.OpenTimeout = TimeSpan.FromSeconds(180); + _binding.SendTimeout = TimeSpan.FromSeconds(180); + _binding.CloseTimeout = TimeSpan.FromSeconds(180); + + _binding.Elements.Add(new TextMessageEncodingBindingElement + { + MessageVersion = MessageVersion.Soap11, + WriteEncoding = Encoding.UTF8 + }); + + if (_config.UseTunnel) + { + if (System.Diagnostics.Process.GetProcessesByName("stunnel").Any() ? false : true) + { + throw new Exception("stunnel не запущен"); + } + + _binding.Elements.Add(new HttpTransportBindingElement + { + AuthenticationScheme = (_config.IsPPAK ? System.Net.AuthenticationSchemes.Digest : System.Net.AuthenticationSchemes.Basic), + MaxReceivedMessageSize = int.MaxValue, + UseDefaultWebProxy = false + }); + } + else + { + _binding.Elements.Add(new HttpsTransportBindingElement + { + AuthenticationScheme = (_config.IsPPAK ? System.Net.AuthenticationSchemes.Digest : System.Net.AuthenticationSchemes.Basic), + MaxReceivedMessageSize = int.MaxValue, + UseDefaultWebProxy = false, + RequireClientCertificate = true + }); + } + } + + protected EndpointAddress GetEndpointAddress(string endpointName) + { + return new EndpointAddress(_config.ComposeEndpointUri(endpointName)); + } + + protected void ConfigureEndpointCredentials( + ServiceEndpoint serviceEndpoint, ClientCredentials clientCredentials) + { + serviceEndpoint.EndpointBehaviors.Add(new GostSigningEndpointBehavior(_config)); + + if (!_config.IsPPAK) + { + clientCredentials.UserName.UserName = HcsConstants.UserAuth.Name; + clientCredentials.UserName.Password = HcsConstants.UserAuth.Passwd; + + System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate ( + object sender, X509Certificate serverCertificate, X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) + { + return true; + }; + } + else + { + bool letSystemValidateServerCertificate = false; + if (!letSystemValidateServerCertificate) + { + System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate ( + object sender, X509Certificate serverCertificate, X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) + { + // 06.06.2024 возникла ошибка "Это может быть связано с тем, что сертификат сервера + // не настроен должным образом с помощью HTTP.SYS в случае HTTPS." + // ГИС ЖКХ заменил сертификат сервера HTTPS и System.Net не смогла проверить новый. + // В похожем случае необходимо включить "return true" чтобы любой сертификат + // без проверки принимался (или найти файл lk_api_dom_gosuslugi_ru.cer нового сертификата + // сервера ГИС ЖКХ API в разделе "Регламенты и инструкции" портала dom.gosuslugi.ru + // и установить этот сертификат текущему пользователю). + // Файл сертификата сервера API в разделе "Регламенты и инструкции" называется, например, так: + // "Сертификат открытого ключа для организации защищенного TLS соединения с сервисами + // легковесной интеграции (c 10.06.2024)". + return true; + }; + } + } + + if (!_config.UseTunnel) + { + clientCredentials.ClientCertificate.SetCertificate( + StoreLocation.CurrentUser, + StoreName.My, + X509FindType.FindByThumbprint, + _config.CertificateThumbprint); + } + } + + /// + /// Выполнение одной попытки пооучить результат операции. + /// Реализуется в производных классах. + /// + protected abstract Task TryGetResultAsync(IHcsAck sourceAck, CancellationToken token); + + /// + /// Основной алгоритм ожидания ответа на асинхронный запрос. + /// Из документации ГИС ЖКХ: + /// Также рекомендуем придерживаться следующего алгоритма отправки запросов на получение статуса обработки пакета в случае использования асинхронных сервисов ГИС ЖКХ (в рамках одного MessageGUID): + /// - первый запрос getState направлять не ранее чем через 10 секунд, после получения квитанции о приеме пакета с бизнес-данными от сервиса ГИС КЖХ; + /// - в случае, если на первый запрос getSate получен результат с RequestState равным "1" или "2", то следующий запрос getState необходимо направлять не ранее чем через 60 секунд после отправки предыдущего запроса; + /// - в случае, если на второй запрос getSate получен результат с RequestState равным "1" или "2", то следующий запрос getState необходимо направлять не ранее чем через 300 секунд после отправки предыдущего запроса; + /// - в случае, если на третий запрос getSate получен результат с RequestState равным "1" или "2", то следующий запрос getState необходимо направлять не ранее чем через 900 секунд после отправки предыдущего запроса; + /// - в случае, если на четвертый(и все последующие запросы) getState получен результат с RequestState равным "1" или "2", то следующий запрос getState необходимо направлять не ранее чем через 1800 секунд после отправки предыдущего запроса. + /// + protected async Task WaitForResultAsync( + IHcsAck ack, bool withInitialDelay, CancellationToken token) + { + var startTime = DateTime.Now; + IHcsGetStateResult result; + for (int attempts = 1; ; attempts++) + { + token.ThrowIfCancellationRequested(); + + int delaySec = EnableMinimalResponseWaitDelay ? 2 : 5; + if (attempts >= 2) delaySec = 5; + if (attempts >= 3) delaySec = 10; + if (attempts >= 5) delaySec = 20; + if (attempts >= 7) delaySec = 40; + if (attempts >= 9) delaySec = 80; + if (attempts >= 12) delaySec = 300; + + if (attempts > 1 || withInitialDelay) + { + var minutesElapsed = (int)(DateTime.Now - startTime).TotalMinutes; + if (CanBeRestarted && minutesElapsed > RestartTimeoutMinutes) + throw new HcsRestartTimeoutException($"Превышено ожидание в {RestartTimeoutMinutes} минут"); + + _config.Log($"Ожидаю {delaySec} сек. до попытки #{attempts}" + + $" получить ответ (ожидание {minutesElapsed} минут(ы))..."); + + await Task.Delay(delaySec * 1000, token); + } + + _config.Log($"Запрашиваю ответ, попытка #{attempts} {ThreadIdText}..."); + result = await TryGetResultAsync(ack, token); + if (result != null) break; + } + + _config.Log($"Ответ получен, число частей: {result.Items.Count()}"); + return result; + } + + /// + /// Исполнение повторяемой операции некоторое дпустимое число ошибок + /// + public async Task RunRepeatableTaskAsync( + Func> taskFunc, Func canIgnoreFunc, int maxAttempts) + { + for (int attempts = 1; ; attempts++) + { + try + { + return await taskFunc(); + } + catch (Exception e) + { + if (canIgnoreFunc(e)) + { + if (attempts < maxAttempts) + { + Log($"Игнорирую {attempts} из {maxAttempts} допустимых ошибок"); + continue; + } + throw new HcsException( + $"Более {maxAttempts} продолжений после допустимых ошибок", e); + } + throw new HcsException("Вложенная ошибка", e); + } + } + } + + /// + /// Для запросов к серверу которые можно направлять несколько раз, разрешаем + /// серверу аномально отказаться. Предполагается, что здесь мы игнорируем + /// только жесткие отказы серверной инфраструктуры, которые указывают + /// что запрос даже не был принят в обработку. Также все запросы на + /// чтение можно повторять в случае их серверных системных ошибок. + /// + protected async Task RunRepeatableTaskInsistentlyAsync( + Func> func, CancellationToken token) + { + int afterErrorDelaySec = 120; + for (int attempt = 1; ; attempt++) + { + try + { + return await func(); + } + catch (Exception e) + { + string marker; + if (CanIgnoreSuchException(e, out marker)) + { + _config.Log($"Игнорирую ошибку #{attempt} типа [{marker}]."); + _config.Log($"Ожидаю {afterErrorDelaySec} сек. до повторения после ошибки..."); + await Task.Delay(afterErrorDelaySec * 1000, token); + continue; + } + + if (e is HcsRestartTimeoutException) + throw new HcsRestartTimeoutException("Наступило событие рестарта", e); + + // Ошибки удаленной системы, которые нельзя игнорировать, дублируем для точности перехвата + if (e is HcsRemoteException) throw HcsRemoteException.CreateNew(e as HcsRemoteException); + throw new HcsException("Ошибка, которую нельзя игнорировать", e); + } + } + } + + // "[EXP001000] Произошла ошибка при передаче данных. Попробуйте осуществить передачу данных повторно", + // Видимо, эту ошибку нельзя включать здесь. Предположительно это маркер DDOS защиты и если отправлять + // точно такой же пакет повторно, то ошибка входит в бесконечный цикл - необходимо заново + // собирать пакет с новыми кодами и временем и новой подписью. Такую ошибку надо обнаруживать + // на более высоком уровне и заново отправлять запрос новым пакетом. (21.09.2022) + private static string[] ignorableSystemErrorMarkers = { + "Истекло время ожидания шлюза", + "Базовое соединение закрыто: Соединение, которое должно было работать, было разорвано сервером", + "Попробуйте осуществить передачу данных повторно", // Включено 18.10.2024, HouseManagement API сильно сбоит + "(502) Недопустимый шлюз", + "(503) Сервер не доступен" + }; + + private bool CanIgnoreSuchException(Exception e, out string resultMarker) + { + foreach (var marker in ignorableSystemErrorMarkers) + { + var found = HcsUtil.EnumerateInnerExceptions(e).Find( + x => x.Message != null && x.Message.Contains(marker)); + if (found != null) + { + resultMarker = marker; + return true; + } + } + + resultMarker = null; + return false; + } + + /// + /// Проверяет массив @items на содержание строго одного элемента типа @T и этот элемент + /// + protected T RequireSingleItem(object[] items) + { + if (items == null) + throw new HcsException($"Array of type {typeof(T)} must not be null"); + if (items.Length == 0) + throw new HcsException($"Array of type {typeof(T)} must not be empty"); + if (items.Length > 1) + throw new HcsException($"Array of type {typeof(T)} must contain 1 element, not {items.Length} of type {items[0].GetType().FullName}"); + return RequireType(items[0]); + } + + /// + /// Проверяет @obj на соответствие типу @T и возвращает преобразованный объект + /// + protected T RequireType(object obj) + { + if (obj != null) + { + if (typeof(T) == obj.GetType()) return (T)obj; + } + + throw new HcsException( + $"Require object of type {typeof(T)} but got" + + (obj == null ? "null" : obj.GetType().FullName)); + } + + internal static HcsException NewUnexpectedObjectException(object obj) + { + if (obj == null) return new HcsException("unexpected object is null"); + return new HcsException($"Unexpected object [{obj}] of type {obj.GetType().FullName}"); + } + + public static string FormatGuid(Guid guid) => HcsUtil.FormatGuid(guid); + + public static string FormatGuid(Guid? guid) => (guid != null) ? FormatGuid((Guid)guid) : null; + + public static Guid ParseGuid(string guid) => HcsUtil.ParseGuid(guid); + + public static Guid ParseGuid(object obj) + { + if (obj == null) throw new HcsException("Can't parse null as Guid"); + if (obj is Guid) return (Guid)obj; + return ParseGuid(obj.ToString()); + } + + public static Guid[] ParseGuidArray(string[] array) + { + if (array == null) return null; + return array.ToList().Select(x => ParseGuid(x)).ToArray(); + } + + public bool IsArrayEmpty(Array a) => (a == null || a.Length == 0); + + public string MakeEmptyNull(string s) + { + return string.IsNullOrEmpty(s) ? null : s; + } + + /// + /// Выполняет @action на объекте @x если объект не пустой и приводится к типу @T + /// + public void CallOnType(object x, Action action) where T : class + { + var t = x as T; + if (t != null) action(t); + } + + /// + /// Возвращает индентификатор текущего исполняемого потока + /// + public int ThreadId => System.Environment.CurrentManagedThreadId; + + public string ThreadIdText => $"(thread #{ThreadId})"; + + public void Log(string message) => ClientConfig.Log(message); + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/HcsRequestHelper.cs b/Hcs.Client/ClientApi/RemoteCaller/HcsRequestHelper.cs new file mode 100644 index 0000000..f8c488a --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/HcsRequestHelper.cs @@ -0,0 +1,84 @@ +using System; +using System.Linq; + +namespace Hcs.ClientApi.RemoteCaller +{ + public static class HcsRequestHelper + { + /// + /// Подготовка заголовка сообщения отправляемого в ГИС ЖКХ с обязательными атрибутами. + /// Заголовки могут быть разного типа для разных типов сообщений но имена полей одинаковые. + /// + public static THeaderType CreateHeader(HcsClientConfig config) where THeaderType : class + { + try + { + var instance = Activator.CreateInstance(typeof(THeaderType)); + + foreach (var prop in instance.GetType().GetProperties()) + { + switch (prop.Name) + { + case "Item": + prop.SetValue(instance, config.OrgPPAGUID); + break; + case "ItemElementName": + prop.SetValue(instance, Enum.Parse(prop.PropertyType, "orgPPAGUID")); + break; + case "MessageGUID": + prop.SetValue(instance, Guid.NewGuid().ToString()); + break; + case "Date": + prop.SetValue(instance, DateTime.Now); + break; + case "IsOperatorSignatureSpecified": + if (config.Role == HcsOrganizationRoles.RC || config.Role == HcsOrganizationRoles.RSO) + prop.SetValue(instance, true); + break; + case "IsOperatorSignature": + if (config.Role == HcsOrganizationRoles.RC || config.Role == HcsOrganizationRoles.RSO) + prop.SetValue(instance, true); + break; + } + } + + return instance as THeaderType; + } + catch (ArgumentNullException ex) + { + throw new ApplicationException($"При сборке заголовка запроса для ГИС произошла ошибка: {ex.Message}"); + } + catch (SystemException exc) + { + throw new ApplicationException($"При сборке заголовка запроса для ГИС произошла не предвиденная ошибка {exc.GetBaseException().Message}"); + } + } + + /// + /// Для объекта запроса возвращает значение строки свойства version + /// + public static string GetRequestVersionString(object requestObject) + { + if (requestObject == null) return null; + object versionHost = requestObject; + + if (versionHost != null) + { + var versionProperty = versionHost.GetType().GetProperties().FirstOrDefault(x => x.Name == "version"); + if (versionProperty != null) return versionProperty.GetValue(versionHost) as string; + } + + foreach (var field in requestObject.GetType().GetFields()) + { + versionHost = field.GetValue(requestObject); + if (versionHost != null) + { + var versionProperty = versionHost.GetType().GetProperties().FirstOrDefault(x => x.Name == "version"); + if (versionProperty != null) return versionProperty.GetValue(versionHost) as string; + } + } + + return null; + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/HcsServicePointConfig.cs b/Hcs.Client/ClientApi/RemoteCaller/HcsServicePointConfig.cs new file mode 100644 index 0000000..ac6b2e0 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/HcsServicePointConfig.cs @@ -0,0 +1,18 @@ +namespace Hcs.ClientApi.RemoteCaller +{ + /// + /// Конфигурация ServicePointManager для работы с TLS. Скорее всего класс не нужен. + /// + public static class HcsServicePointConfig + { + public static void InitConfig() + { + // TODO: Проверить комментарий + // Отключено 15.12.2023, работает и так + //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; + //ServicePointManager.CheckCertificateRevocationList = false; + //ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); + //ServicePointManager.Expect100Continue = false; + } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/IHcsAck.cs b/Hcs.Client/ClientApi/RemoteCaller/IHcsAck.cs new file mode 100644 index 0000000..7d1fdf4 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/IHcsAck.cs @@ -0,0 +1,8 @@ +namespace Hcs.ClientApi.RemoteCaller +{ + public interface IHcsAck + { + string MessageGUID { get; set; } + string RequesterMessageGUID { get; set; } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/IHcsFault.cs b/Hcs.Client/ClientApi/RemoteCaller/IHcsFault.cs new file mode 100644 index 0000000..deb172d --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/IHcsFault.cs @@ -0,0 +1,8 @@ +namespace Hcs.ClientApi.RemoteCaller +{ + public interface IHcsFault + { + string ErrorCode { get; set; } + string ErrorMessage { get; set; } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/IHcsGetStateResult.cs b/Hcs.Client/ClientApi/RemoteCaller/IHcsGetStateResult.cs new file mode 100644 index 0000000..87b4cea --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/IHcsGetStateResult.cs @@ -0,0 +1,7 @@ +namespace Hcs.ClientApi.RemoteCaller +{ + public interface IHcsGetStateResult + { + object[] Items { get; set; } + } +} diff --git a/Hcs.Client/ClientApi/RemoteCaller/IHcsHeaderType.cs b/Hcs.Client/ClientApi/RemoteCaller/IHcsHeaderType.cs new file mode 100644 index 0000000..c1505a3 --- /dev/null +++ b/Hcs.Client/ClientApi/RemoteCaller/IHcsHeaderType.cs @@ -0,0 +1,10 @@ +using System; + +namespace Hcs.ClientApi.RemoteCaller +{ + public interface IHcsHeaderType + { + string MessageGUID { get; set; } + DateTime Date { get; set; } + } +} diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest.datasource new file mode 100644 index 0000000..f4f744c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader.datasource new file mode 100644 index 0000000..6587d20 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse.datasource new file mode 100644 index 0000000..3705670 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse.datasource new file mode 100644 index 0000000..fdcf45c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse.datasource new file mode 100644 index 0000000..6e66a3b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult.datasource new file mode 100644 index 0000000..92289d9 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse.datasource new file mode 100644 index 0000000..f8b4c2a --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse.datasource new file mode 100644 index 0000000..fdc742e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse, Connected Services.Service.Async.DebtRequests.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.cs b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.cs new file mode 100644 index 0000000..6fb7179 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.cs @@ -0,0 +1,5525 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Hcs.Service.Async.DebtRequests.v14_5_0_1 { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Fault : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorMessageField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + this.RaisePropertyChanged("ErrorMessage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ImportHousingFundObjectInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] itemsField; + + private ItemsChoiceType3[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AddressType", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HMObjectGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("addressDetails", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("fiasHouseGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("houseGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType3[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType3 { + + /// + AddressType, + + /// + HMObjectGUID, + + /// + addressDetails, + + /// + fiasHouseGUID, + + /// + houseGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/nsi-base/")] + public partial class nsiRef : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DocumentType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private string seriesField; + + private string numberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("number"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ApplicantInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string firstNameField; + + private string lastNameField; + + private string middleNameField; + + private string snilsField; + + private DocumentType documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string firstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("firstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string lastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + this.RaisePropertyChanged("lastName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string middleName { + get { + return this.middleNameField; + } + set { + this.middleNameField = value; + this.RaisePropertyChanged("middleName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string snils { + get { + return this.snilsField; + } + set { + this.snilsField = value; + this.RaisePropertyChanged("snils"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public DocumentType document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ImportDRType : object, System.ComponentModel.INotifyPropertyChanged { + + private ApplicantInfoType applicantInfoField; + + private ImportHousingFundObjectInfoType housingFundObjectField; + + private string executorGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ApplicantInfoType applicantInfo { + get { + return this.applicantInfoField; + } + set { + this.applicantInfoField = value; + this.RaisePropertyChanged("applicantInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ImportHousingFundObjectInfoType housingFundObject { + get { + return this.housingFundObjectField; + } + set { + this.housingFundObjectField = value; + this.RaisePropertyChanged("housingFundObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string executorGUID { + get { + return this.executorGUIDField; + } + set { + this.executorGUIDField = value; + this.RaisePropertyChanged("executorGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string idField; + + private string mimeTypeField; + + private string encodingField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string MimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("MimeType"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Encoding { + get { + return this.encodingField; + } + set { + this.encodingField = value; + this.RaisePropertyChanged("Encoding"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SPKIDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKISexp", typeof(byte[]), DataType="base64Binary", Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class PGPDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType1[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyID", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyPacket", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType1[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType1 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + PGPKeyID, + + /// + PGPKeyPacket, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509IssuerSerialType : object, System.ComponentModel.INotifyPropertyChanged { + + private string x509IssuerNameField; + + private string x509SerialNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string X509IssuerName { + get { + return this.x509IssuerNameField; + } + set { + this.x509IssuerNameField = value; + this.RaisePropertyChanged("X509IssuerName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string X509SerialNumber { + get { + return this.x509SerialNumberField; + } + set { + this.x509SerialNumberField = value; + this.RaisePropertyChanged("X509SerialNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509DataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509CRL", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Certificate", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509IssuerSerial", typeof(X509IssuerSerialType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SKI", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SubjectName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + X509CRL, + + /// + X509Certificate, + + /// + X509IssuerSerial, + + /// + X509SKI, + + /// + X509SubjectName, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RetrievalMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class TransformType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string[] textField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("XPath", typeof(string), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] modulusField; + + private byte[] exponentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] Modulus { + get { + return this.modulusField; + } + set { + this.modulusField = value; + this.RaisePropertyChanged("Modulus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Exponent { + get { + return this.exponentField; + } + set { + this.exponentField = value; + this.RaisePropertyChanged("Exponent"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] pField; + + private byte[] qField; + + private byte[] gField; + + private byte[] yField; + + private byte[] jField; + + private byte[] seedField; + + private byte[] pgenCounterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] P { + get { + return this.pField; + } + set { + this.pField = value; + this.RaisePropertyChanged("P"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Q { + get { + return this.qField; + } + set { + this.qField = value; + this.RaisePropertyChanged("Q"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] G { + get { + return this.gField; + } + set { + this.gField = value; + this.RaisePropertyChanged("G"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=3)] + public byte[] Y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("Y"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] J { + get { + return this.jField; + } + set { + this.jField = value; + this.RaisePropertyChanged("J"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=5)] + public byte[] Seed { + get { + return this.seedField; + } + set { + this.seedField = value; + this.RaisePropertyChanged("Seed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=6)] + public byte[] PgenCounter { + get { + return this.pgenCounterField; + } + set { + this.pgenCounterField = value; + this.RaisePropertyChanged("PgenCounter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string[] textField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DSAKeyValue", typeof(DSAKeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RSAKeyValue", typeof(RSAKeyValueType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType2[] itemsElementNameField; + + private string[] textField; + + private string idField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyValue", typeof(KeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MgmtData", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPData", typeof(PGPDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RetrievalMethod", typeof(RetrievalMethodType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKIData", typeof(SPKIDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Data", typeof(X509DataType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType2[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType2 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + KeyName, + + /// + KeyValue, + + /// + MgmtData, + + /// + PGPData, + + /// + RetrievalMethod, + + /// + SPKIData, + + /// + X509Data, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private string idField; + + private byte[] valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute(DataType="base64Binary")] + public byte[] Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DigestMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ReferenceType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private DigestMethodType digestMethodField; + + private byte[] digestValueField; + + private string idField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DigestMethodType DigestMethod { + get { + return this.digestMethodField; + } + set { + this.digestMethodField = value; + this.RaisePropertyChanged("DigestMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] DigestValue { + get { + return this.digestValueField; + } + set { + this.digestValueField = value; + this.RaisePropertyChanged("DigestValue"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hMACOutputLengthField; + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string HMACOutputLength { + get { + return this.hMACOutputLengthField; + } + set { + this.hMACOutputLengthField = value; + this.RaisePropertyChanged("HMACOutputLength"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class CanonicalizationMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignedInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private CanonicalizationMethodType canonicalizationMethodField; + + private SignatureMethodType signatureMethodField; + + private ReferenceType[] referenceField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CanonicalizationMethodType CanonicalizationMethod { + get { + return this.canonicalizationMethodField; + } + set { + this.canonicalizationMethodField = value; + this.RaisePropertyChanged("CanonicalizationMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureMethodType SignatureMethod { + get { + return this.signatureMethodField; + } + set { + this.signatureMethodField = value; + this.RaisePropertyChanged("SignatureMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Reference", Order=2)] + public ReferenceType[] Reference { + get { + return this.referenceField; + } + set { + this.referenceField = value; + this.RaisePropertyChanged("Reference"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignedInfoType signedInfoField; + + private SignatureValueType signatureValueField; + + private KeyInfoType keyInfoField; + + private ObjectType[] objectField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SignedInfoType SignedInfo { + get { + return this.signedInfoField; + } + set { + this.signedInfoField = value; + this.RaisePropertyChanged("SignedInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureValueType SignatureValue { + get { + return this.signatureValueField; + } + set { + this.signatureValueField = value; + this.RaisePropertyChanged("SignatureValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public KeyInfoType KeyInfo { + get { + return this.keyInfoField; + } + set { + this.keyInfoField = value; + this.RaisePropertyChanged("KeyInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Object", Order=3)] + public ObjectType[] Object { + get { + return this.objectField; + } + set { + this.objectField = value; + this.RaisePropertyChanged("Object"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BaseAsyncResponseType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignatureType signatureField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", Order=0)] + public SignatureType Signature { + get { + return this.signatureField; + } + set { + this.signatureField = value; + this.RaisePropertyChanged("Signature"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseAsyncResponseType : BaseType { + + private sbyte requestStateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte RequestState { + get { + return this.requestStateField; + } + set { + this.requestStateField = value; + this.RaisePropertyChanged("RequestState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs-service-async", ConfigurationName="Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort")] + public interface DebtRequestsAsyncPort { + + // CODEGEN: Generating message contract since the operation importDebtRequests is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importDebtRequests", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DebtRequests.v14_5_0_1.Fault), Action="urn:importDebtRequests", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse importDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importDebtRequests", ReplyAction="*")] + System.Threading.Tasks.Task importDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest request); + + // CODEGEN: Generating message contract since the operation exportDebtSubrequests is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDebtSubrequests", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DebtRequests.v14_5_0_1.Fault), Action="urn:exportDebtSubrequests", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse exportDebtSubrequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDebtSubrequests", ReplyAction="*")] + System.Threading.Tasks.Task exportDebtSubrequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest request); + + // CODEGEN: Generating message contract since the operation importResponses is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importResponses", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DebtRequests.v14_5_0_1.Fault), Action="urn:importResponses", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse importResponses(Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importResponses", ReplyAction="*")] + System.Threading.Tasks.Task importResponsesAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest request); + + // CODEGEN: Generating message contract since the operation exportDebtRequests is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDebtRequests", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DebtRequests.v14_5_0_1.Fault), Action="urn:exportDebtRequests", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse exportDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDebtRequests", ReplyAction="*")] + System.Threading.Tasks.Task exportDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest request); + + // CODEGEN: Generating message contract since the operation getState is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DebtRequests.v14_5_0_1.Fault), Action="urn:getState", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse getState(Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeader : HeaderType { + + private object itemField; + + private ItemChoiceType itemElementNameField; + + private bool isOperatorSignatureField; + + private bool isOperatorSignatureFieldSpecified; + + private ISCreator[] iSCreatorField; + + public RequestHeader() { + this.isOperatorSignatureField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Citizen", typeof(RequestHeaderCitizen), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SenderID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsOperatorSignature { + get { + return this.isOperatorSignatureField; + } + set { + this.isOperatorSignatureField = value; + this.RaisePropertyChanged("IsOperatorSignature"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsOperatorSignatureSpecified { + get { + return this.isOperatorSignatureFieldSpecified; + } + set { + this.isOperatorSignatureFieldSpecified = value; + this.RaisePropertyChanged("IsOperatorSignatureSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ISCreator", Order=3)] + public ISCreator[] ISCreator { + get { + return this.iSCreatorField; + } + set { + this.iSCreatorField = value; + this.RaisePropertyChanged("ISCreator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizen : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType4[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CitizenPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Document", typeof(RequestHeaderCitizenDocument), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType4[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private RequestHeaderCitizenDocumentDocumentType documentTypeField; + + private string seriesField; + + private string numberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RequestHeaderCitizenDocumentDocumentType DocumentType { + get { + return this.documentTypeField; + } + set { + this.documentTypeField = value; + this.RaisePropertyChanged("DocumentType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocumentDocumentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemsChoiceType4 { + + /// + CitizenPPAGUID, + + /// + Document, + + /// + SNILS, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + Citizen, + + /// + SenderID, + + /// + orgPPAGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISCreator : object, System.ComponentModel.INotifyPropertyChanged { + + private string iSNameField; + + private string iSOperatorNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ISName { + get { + return this.iSNameField; + } + set { + this.iSNameField = value; + this.RaisePropertyChanged("ISName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ISOperatorName { + get { + return this.iSOperatorNameField; + } + set { + this.iSOperatorNameField = value; + this.RaisePropertyChanged("ISOperatorName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class HeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class importDRsRequest : BaseType { + + private importDRsRequestAction[] actionField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("action", Order=0)] + public importDRsRequestAction[] action { + get { + return this.actionField; + } + set { + this.actionField = value; + this.RaisePropertyChanged("action"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class importDRsRequestAction : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string requestGUIDField; + + private DRActionType actionTypeField; + + private ImportDRType requestDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string requestGUID { + get { + return this.requestGUIDField; + } + set { + this.requestGUIDField = value; + this.RaisePropertyChanged("requestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public DRActionType actionType { + get { + return this.actionTypeField; + } + set { + this.actionTypeField = value; + this.RaisePropertyChanged("actionType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ImportDRType requestData { + get { + return this.requestDataField; + } + set { + this.requestDataField = value; + this.RaisePropertyChanged("requestData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum DRActionType { + + /// + Send, + + /// + Revoke, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ResultHeader : HeaderType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private AckRequestAck ackField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AckRequestAck Ack { + get { + return this.ackField; + } + set { + this.ackField = value; + this.RaisePropertyChanged("Ack"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequestAck : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private string requesterMessageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RequesterMessageGUID { + get { + return this.requesterMessageGUIDField; + } + set { + this.requesterMessageGUIDField = value; + this.RaisePropertyChanged("RequesterMessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importDebtRequestsRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.importDRsRequest importDRsRequest; + + public importDebtRequestsRequest() { + } + + public importDebtRequestsRequest(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDRsRequest importDRsRequest) { + this.RequestHeader = RequestHeader; + this.importDRsRequest = importDRsRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importDebtRequestsResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest; + + public importDebtRequestsResponse() { + } + + public importDebtRequestsResponse(Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDSRsRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType5[] itemsElementNameField; + + private bool includeResponsesField; + + private bool includeResponsesFieldSpecified; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("exportHMObjectGUID", typeof(ExportHMObjectInfoType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportSubrequestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("houseGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("periodOfSendingRequest", typeof(Period), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestStatus", typeof(RequestStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("responseStatus", typeof(ResponseStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("subrequestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType5[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool includeResponses { + get { + return this.includeResponsesField; + } + set { + this.includeResponsesField = value; + this.RaisePropertyChanged("includeResponses"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool includeResponsesSpecified { + get { + return this.includeResponsesFieldSpecified; + } + set { + this.includeResponsesFieldSpecified = value; + this.RaisePropertyChanged("includeResponsesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportHMObjectInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hMobjectGUIDField; + + private string adressTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HMobjectGUID { + get { + return this.hMobjectGUIDField; + } + set { + this.hMobjectGUIDField = value; + this.RaisePropertyChanged("HMobjectGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string adressType { + get { + return this.adressTypeField; + } + set { + this.adressTypeField = value; + this.RaisePropertyChanged("adressType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Period : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateField; + + private System.DateTime endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime startDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("startDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime endDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("endDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum RequestStatusType { + + /// + Sent, + + /// + Processed, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum ResponseStatusType { + + /// + NotSent, + + /// + Sent, + + /// + AutoGenerated, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType5 { + + /// + exportHMObjectGUID, + + /// + exportSubrequestGUID, + + /// + houseGUID, + + /// + periodOfSendingRequest, + + /// + requestNumber, + + /// + requestStatus, + + /// + responseStatus, + + /// + subrequestGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDebtSubrequestsRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDSRsRequest exportDSRsRequest; + + public exportDebtSubrequestsRequest() { + } + + public exportDebtSubrequestsRequest(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDSRsRequest exportDSRsRequest) { + this.RequestHeader = RequestHeader; + this.exportDSRsRequest = exportDSRsRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDebtSubrequestsResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest; + + public exportDebtSubrequestsResponse() { + } + + public exportDebtSubrequestsResponse(Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class importDSRResponsesRequest : BaseType { + + private importDSRResponsesRequestAction[] actionField; + + private string versionField; + + public importDSRResponsesRequest() { + this.versionField = "14.0.0.0"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("action", Order=0)] + public importDSRResponsesRequestAction[] action { + get { + return this.actionField; + } + set { + this.actionField = value; + this.RaisePropertyChanged("action"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class importDSRResponsesRequestAction : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string subrequestGUIDField; + + private DSRResponseActionType actionTypeField; + + private ImportDSRResponseType responseDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string subrequestGUID { + get { + return this.subrequestGUIDField; + } + set { + this.subrequestGUIDField = value; + this.RaisePropertyChanged("subrequestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public DSRResponseActionType actionType { + get { + return this.actionTypeField; + } + set { + this.actionTypeField = value; + this.RaisePropertyChanged("actionType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ImportDSRResponseType responseData { + get { + return this.responseDataField; + } + set { + this.responseDataField = value; + this.RaisePropertyChanged("responseData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum DSRResponseActionType { + + /// + Send, + + /// + Revoke, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ImportDSRResponseType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool hasDebtField; + + private AttachmentType[] additionalFileField; + + private string descriptionField; + + private string executorGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool hasDebt { + get { + return this.hasDebtField; + } + set { + this.hasDebtField = value; + this.RaisePropertyChanged("hasDebt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("additionalFile", Order=1)] + public AttachmentType[] additionalFile { + get { + return this.additionalFileField; + } + set { + this.additionalFileField = value; + this.RaisePropertyChanged("additionalFile"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string executorGUID { + get { + return this.executorGUIDField; + } + set { + this.executorGUIDField = value; + this.RaisePropertyChanged("executorGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("debtGUID", typeof(string), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("debtInfo", typeof(DebtInfoType), Order=4)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AttachmentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string descriptionField; + + private Attachment attachmentField; + + private string attachmentHASHField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public Attachment Attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("Attachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AttachmentHASH { + get { + return this.attachmentHASHField; + } + set { + this.attachmentHASHField = value; + this.RaisePropertyChanged("AttachmentHASH"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Attachment : object, System.ComponentModel.INotifyPropertyChanged { + + private string attachmentGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AttachmentGUID { + get { + return this.attachmentGUIDField; + } + set { + this.attachmentGUIDField = value; + this.RaisePropertyChanged("AttachmentGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DebtInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private DebtInfoTypePerson personField; + + private DebtInfoTypeDocument[] documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DebtInfoTypePerson person { + get { + return this.personField; + } + set { + this.personField = value; + this.RaisePropertyChanged("person"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("document", Order=1)] + public DebtInfoTypeDocument[] document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DebtInfoTypePerson : object, System.ComponentModel.INotifyPropertyChanged { + + private string firstNameField; + + private string lastNameField; + + private string middleNameField; + + private string snilsField; + + private DocumentType documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string firstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("firstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string lastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + this.RaisePropertyChanged("lastName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string middleName { + get { + return this.middleNameField; + } + set { + this.middleNameField = value; + this.RaisePropertyChanged("middleName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string snils { + get { + return this.snilsField; + } + set { + this.snilsField = value; + this.RaisePropertyChanged("snils"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public DocumentType document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DebtInfoTypeDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private AttachmentType attachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public AttachmentType attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("attachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importResponsesRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.importDSRResponsesRequest importDSRResponsesRequest; + + public importResponsesRequest() { + } + + public importResponsesRequest(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDSRResponsesRequest importDSRResponsesRequest) { + this.RequestHeader = RequestHeader; + this.importDSRResponsesRequest = importDSRResponsesRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importResponsesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest; + + public importResponsesResponse() { + } + + public importResponsesResponse(Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDRsRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType6[] itemsElementNameField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("applicantInfo", typeof(ApplicantInfoRequestType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportHMObjectGUID", typeof(ExportHMObjectInfoType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportRequestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("houseGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("periodOfResponseDate", typeof(PeriodOpen), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("periodOfSendingRequest", typeof(Period), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestCreationPeriod", typeof(Period), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestResult", typeof(nsiRef), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestStatus", typeof(AllRequestStatusesType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType6[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ApplicantInfoRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private string firstNameField; + + private string lastNameField; + + private string middleNameField; + + private string snilsField; + + private DocumentType documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string firstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("firstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string lastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + this.RaisePropertyChanged("lastName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string middleName { + get { + return this.middleNameField; + } + set { + this.middleNameField = value; + this.RaisePropertyChanged("middleName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string snils { + get { + return this.snilsField; + } + set { + this.snilsField = value; + this.RaisePropertyChanged("snils"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public DocumentType document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class PeriodOpen : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateField; + + private bool startDateFieldSpecified; + + private System.DateTime endDateField; + + private bool endDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime startDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("startDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool startDateSpecified { + get { + return this.startDateFieldSpecified; + } + set { + this.startDateFieldSpecified = value; + this.RaisePropertyChanged("startDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime endDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("endDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool endDateSpecified { + get { + return this.endDateFieldSpecified; + } + set { + this.endDateFieldSpecified = value; + this.RaisePropertyChanged("endDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum AllRequestStatusesType { + + /// + Draft, + + /// + Processing, + + /// + Sent, + + /// + Processed, + + /// + Revoked, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType6 { + + /// + applicantInfo, + + /// + exportHMObjectGUID, + + /// + exportRequestGUID, + + /// + houseGUID, + + /// + periodOfResponseDate, + + /// + periodOfSendingRequest, + + /// + requestCreationPeriod, + + /// + requestGUID, + + /// + requestNumber, + + /// + requestResult, + + /// + requestStatus, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDebtRequestsRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDRsRequest exportDRsRequest; + + public exportDebtRequestsRequest() { + } + + public exportDebtRequestsRequest(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDRsRequest exportDRsRequest) { + this.RequestHeader = RequestHeader; + this.exportDRsRequest = exportDRsRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDebtRequestsResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest; + + public exportDebtRequestsResponse() { + } + + public exportDebtRequestsResponse(Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class getStateRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class getStateResult : BaseAsyncResponseType { + + private object[] itemsField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportDRsResult", typeof(exportDRsResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportDSRsResult", typeof(exportDSRsResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("importResult", typeof(CommonResultType), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ErrorMessageType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string descriptionField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDRsResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportDRType[] requestDataField; + + private exportDRsResultTypeNotFound notFoundField; + + private exportDRsResultTypePagedOutput pagedOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute("requestData", Order=0)] + public ExportDRType[] requestData { + get { + return this.requestDataField; + } + set { + this.requestDataField = value; + this.RaisePropertyChanged("requestData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportDRsResultTypeNotFound notFound { + get { + return this.notFoundField; + } + set { + this.notFoundField = value; + this.RaisePropertyChanged("notFound"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportDRsResultTypePagedOutput pagedOutput { + get { + return this.pagedOutputField; + } + set { + this.pagedOutputField = value; + this.RaisePropertyChanged("pagedOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDRType : object, System.ComponentModel.INotifyPropertyChanged { + + private string requestGUIDField; + + private string requestNumberField; + + private ApplicantInfoType applicantInfoField; + + private ExportHousingFundObjectInfoType housingFundObjectField; + + private Period periodField; + + private OrganizationInfoType organizationField; + + private ExecutorInfoType executorInfoField; + + private AllRequestStatusesType statusField; + + private nsiRef resultField; + + private System.DateTime creationDateField; + + private System.DateTime sentDateField; + + private bool sentDateFieldSpecified; + + private System.DateTime responseDateField; + + private bool responseDateFieldSpecified; + + private ExportDRTypeSubrequest[] subrequestField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string requestGUID { + get { + return this.requestGUIDField; + } + set { + this.requestGUIDField = value; + this.RaisePropertyChanged("requestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string requestNumber { + get { + return this.requestNumberField; + } + set { + this.requestNumberField = value; + this.RaisePropertyChanged("requestNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public ApplicantInfoType applicantInfo { + get { + return this.applicantInfoField; + } + set { + this.applicantInfoField = value; + this.RaisePropertyChanged("applicantInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ExportHousingFundObjectInfoType housingFundObject { + get { + return this.housingFundObjectField; + } + set { + this.housingFundObjectField = value; + this.RaisePropertyChanged("housingFundObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public Period period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public OrganizationInfoType organization { + get { + return this.organizationField; + } + set { + this.organizationField = value; + this.RaisePropertyChanged("organization"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public ExecutorInfoType executorInfo { + get { + return this.executorInfoField; + } + set { + this.executorInfoField = value; + this.RaisePropertyChanged("executorInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public AllRequestStatusesType status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("status"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public nsiRef result { + get { + return this.resultField; + } + set { + this.resultField = value; + this.RaisePropertyChanged("result"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=9)] + public System.DateTime creationDate { + get { + return this.creationDateField; + } + set { + this.creationDateField = value; + this.RaisePropertyChanged("creationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=10)] + public System.DateTime sentDate { + get { + return this.sentDateField; + } + set { + this.sentDateField = value; + this.RaisePropertyChanged("sentDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool sentDateSpecified { + get { + return this.sentDateFieldSpecified; + } + set { + this.sentDateFieldSpecified = value; + this.RaisePropertyChanged("sentDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=11)] + public System.DateTime responseDate { + get { + return this.responseDateField; + } + set { + this.responseDateField = value; + this.RaisePropertyChanged("responseDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool responseDateSpecified { + get { + return this.responseDateFieldSpecified; + } + set { + this.responseDateFieldSpecified = value; + this.RaisePropertyChanged("responseDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("subrequest", Order=12)] + public ExportDRTypeSubrequest[] subrequest { + get { + return this.subrequestField; + } + set { + this.subrequestField = value; + this.RaisePropertyChanged("subrequest"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportHousingFundObjectInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] itemsField; + + private ItemsChoiceType7[] itemsElementNameField; + + private string fiasHouseGUIDField; + + private string addressField; + + /// + [System.Xml.Serialization.XmlElementAttribute("HMobjectGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("addressDetails", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("adressType", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("houseGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType7[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string fiasHouseGUID { + get { + return this.fiasHouseGUIDField; + } + set { + this.fiasHouseGUIDField = value; + this.RaisePropertyChanged("fiasHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string address { + get { + return this.addressField; + } + set { + this.addressField = value; + this.RaisePropertyChanged("address"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType7 { + + /// + HMobjectGUID, + + /// + addressDetails, + + /// + adressType, + + /// + houseGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class OrganizationInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgRootGUIDField; + + private string nameField; + + private string telField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgRootGUID { + get { + return this.orgRootGUIDField; + } + set { + this.orgRootGUIDField = value; + this.RaisePropertyChanged("orgRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string tel { + get { + return this.telField; + } + set { + this.telField = value; + this.RaisePropertyChanged("tel"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExecutorInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string gUIDField; + + private string fioField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string fio { + get { + return this.fioField; + } + set { + this.fioField = value; + this.RaisePropertyChanged("fio"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDRTypeSubrequest : object, System.ComponentModel.INotifyPropertyChanged { + + private OrganizationInfoType organizationField; + + private ExportDRTypeSubrequestResponse responseField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public OrganizationInfoType organization { + get { + return this.organizationField; + } + set { + this.organizationField = value; + this.RaisePropertyChanged("organization"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportDRTypeSubrequestResponse response { + get { + return this.responseField; + } + set { + this.responseField = value; + this.RaisePropertyChanged("response"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDRTypeSubrequestResponse : object, System.ComponentModel.INotifyPropertyChanged { + + private ResponseType typeField; + + private bool hasDebtField; + + private bool hasDebtFieldSpecified; + + private ExportDebtInfoType[] debtInfoField; + + private AttachmentType[] additionalFileField; + + private string descriptionField; + + private ExecutorInfoType executorInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ResponseType type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool hasDebt { + get { + return this.hasDebtField; + } + set { + this.hasDebtField = value; + this.RaisePropertyChanged("hasDebt"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool hasDebtSpecified { + get { + return this.hasDebtFieldSpecified; + } + set { + this.hasDebtFieldSpecified = value; + this.RaisePropertyChanged("hasDebtSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("debtInfo", Order=2)] + public ExportDebtInfoType[] debtInfo { + get { + return this.debtInfoField; + } + set { + this.debtInfoField = value; + this.RaisePropertyChanged("debtInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("additionalFile", Order=3)] + public AttachmentType[] additionalFile { + get { + return this.additionalFileField; + } + set { + this.additionalFileField = value; + this.RaisePropertyChanged("additionalFile"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public ExecutorInfoType executorInfo { + get { + return this.executorInfoField; + } + set { + this.executorInfoField = value; + this.RaisePropertyChanged("executorInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public enum ResponseType { + + /// + Provided, + + /// + AutoGenerated, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDebtInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportDebtInfoTypePerson personField; + + private ExportDebtInfoTypeDocument[] documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ExportDebtInfoTypePerson person { + get { + return this.personField; + } + set { + this.personField = value; + this.RaisePropertyChanged("person"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("document", Order=1)] + public ExportDebtInfoTypeDocument[] document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDebtInfoTypePerson : object, System.ComponentModel.INotifyPropertyChanged { + + private string firstNameField; + + private string lastNameField; + + private string middleNameField; + + private string snilsField; + + private DocumentType documentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string firstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("firstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string lastName { + get { + return this.lastNameField; + } + set { + this.lastNameField = value; + this.RaisePropertyChanged("lastName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string middleName { + get { + return this.middleNameField; + } + set { + this.middleNameField = value; + this.RaisePropertyChanged("middleName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string snils { + get { + return this.snilsField; + } + set { + this.snilsField = value; + this.RaisePropertyChanged("snils"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public DocumentType document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("document"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ExportDebtInfoTypeDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private AttachmentType attachmentField; + + private string debtGUIDField; + + private ActType actTypeField; + + private CancelledAddressType cancelledAddressField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public AttachmentType attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("attachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string debtGUID { + get { + return this.debtGUIDField; + } + set { + this.debtGUIDField = value; + this.RaisePropertyChanged("debtGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ActType actType { + get { + return this.actTypeField; + } + set { + this.actTypeField = value; + this.RaisePropertyChanged("actType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public CancelledAddressType cancelledAddress { + get { + return this.cancelledAddressField; + } + set { + this.cancelledAddressField = value; + this.RaisePropertyChanged("cancelledAddress"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class ActType : object, System.ComponentModel.INotifyPropertyChanged { + + private string numberField; + + private System.DateTime dateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("number"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("date"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class CancelledAddressType : object, System.ComponentModel.INotifyPropertyChanged { + + private string cancelledAddressTextField; + + private string fiasHouseGUIDField; + + private string hCSHouseGUIDField; + + private string hMobjectGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string cancelledAddressText { + get { + return this.cancelledAddressTextField; + } + set { + this.cancelledAddressTextField = value; + this.RaisePropertyChanged("cancelledAddressText"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string fiasHouseGUID { + get { + return this.fiasHouseGUIDField; + } + set { + this.fiasHouseGUIDField = value; + this.RaisePropertyChanged("fiasHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string HCSHouseGUID { + get { + return this.hCSHouseGUIDField; + } + set { + this.hCSHouseGUIDField = value; + this.RaisePropertyChanged("HCSHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string HMobjectGUID { + get { + return this.hMobjectGUIDField; + } + set { + this.hMobjectGUIDField = value; + this.RaisePropertyChanged("HMobjectGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDRsResultTypeNotFound : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] itemsField; + + private ItemsChoiceType8[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("requestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("requestNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType8[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType8 { + + /// + requestGUID, + + /// + requestNumber, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDRsResultTypePagedOutput : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("lastPage", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("nextRequestGUID", typeof(string), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDSRsResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private DSRType[] subrequestDataField; + + private exportDSRsResultTypeNotFound notFoundField; + + private exportDSRsResultTypePagedOutput pagedOutputField; + + /// + [System.Xml.Serialization.XmlElementAttribute("subrequestData", Order=0)] + public DSRType[] subrequestData { + get { + return this.subrequestDataField; + } + set { + this.subrequestDataField = value; + this.RaisePropertyChanged("subrequestData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportDSRsResultTypeNotFound notFound { + get { + return this.notFoundField; + } + set { + this.notFoundField = value; + this.RaisePropertyChanged("notFound"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportDSRsResultTypePagedOutput pagedOutput { + get { + return this.pagedOutputField; + } + set { + this.pagedOutputField = value; + this.RaisePropertyChanged("pagedOutput"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DSRType : object, System.ComponentModel.INotifyPropertyChanged { + + private string subrequestGUIDField; + + private DSRTypeRequestInfo requestInfoField; + + private ResponseStatusType responseStatusField; + + private DSRTypeResponseData responseDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string subrequestGUID { + get { + return this.subrequestGUIDField; + } + set { + this.subrequestGUIDField = value; + this.RaisePropertyChanged("subrequestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DSRTypeRequestInfo requestInfo { + get { + return this.requestInfoField; + } + set { + this.requestInfoField = value; + this.RaisePropertyChanged("requestInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public ResponseStatusType responseStatus { + get { + return this.responseStatusField; + } + set { + this.responseStatusField = value; + this.RaisePropertyChanged("responseStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public DSRTypeResponseData responseData { + get { + return this.responseDataField; + } + set { + this.responseDataField = value; + this.RaisePropertyChanged("responseData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DSRTypeRequestInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private string requestGUIDField; + + private string requestNumberField; + + private OrganizationInfoType organizationField; + + private ExportHousingFundObjectInfoType housingFundObjectField; + + private Period periodField; + + private RequestStatusType statusField; + + private System.DateTime sentDateField; + + private System.DateTime responseDateField; + + private ExecutorInfoType executorInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string requestGUID { + get { + return this.requestGUIDField; + } + set { + this.requestGUIDField = value; + this.RaisePropertyChanged("requestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string requestNumber { + get { + return this.requestNumberField; + } + set { + this.requestNumberField = value; + this.RaisePropertyChanged("requestNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public OrganizationInfoType organization { + get { + return this.organizationField; + } + set { + this.organizationField = value; + this.RaisePropertyChanged("organization"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ExportHousingFundObjectInfoType housingFundObject { + get { + return this.housingFundObjectField; + } + set { + this.housingFundObjectField = value; + this.RaisePropertyChanged("housingFundObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public Period period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public RequestStatusType status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("status"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=6)] + public System.DateTime sentDate { + get { + return this.sentDateField; + } + set { + this.sentDateField = value; + this.RaisePropertyChanged("sentDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=7)] + public System.DateTime responseDate { + get { + return this.responseDateField; + } + set { + this.responseDateField = value; + this.RaisePropertyChanged("responseDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public ExecutorInfoType executorInfo { + get { + return this.executorInfoField; + } + set { + this.executorInfoField = value; + this.RaisePropertyChanged("executorInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class DSRTypeResponseData : object, System.ComponentModel.INotifyPropertyChanged { + + private bool hasDebtField; + + private ExportDebtInfoType[] debtInfoField; + + private AttachmentType[] additionalFileField; + + private string descriptionField; + + private ExecutorInfoType executorInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool hasDebt { + get { + return this.hasDebtField; + } + set { + this.hasDebtField = value; + this.RaisePropertyChanged("hasDebt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("debtInfo", Order=1)] + public ExportDebtInfoType[] debtInfo { + get { + return this.debtInfoField; + } + set { + this.debtInfoField = value; + this.RaisePropertyChanged("debtInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("additionalFile", Order=2)] + public AttachmentType[] additionalFile { + get { + return this.additionalFileField; + } + set { + this.additionalFileField = value; + this.RaisePropertyChanged("additionalFile"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ExecutorInfoType executorInfo { + get { + return this.executorInfoField; + } + set { + this.executorInfoField = value; + this.RaisePropertyChanged("executorInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDSRsResultTypeNotFound : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] itemsField; + + private ItemsChoiceType9[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("requestNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("subrequestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType9[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", IncludeInSchema=false)] + public enum ItemsChoiceType9 { + + /// + requestNumber, + + /// + subrequestGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/drs/")] + public partial class exportDSRsResultTypePagedOutput : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("lastPage", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("nextSubrequestGUID", typeof(string), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string gUIDField; + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(CommonResultTypeError), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UniqueNumber", typeof(string), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UpdateDate", typeof(System.DateTime), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultTypeError : ErrorMessageType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest getStateRequest; + + public getStateRequest1() { + } + + public getStateRequest1(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest getStateRequest) { + this.RequestHeader = RequestHeader; + this.getStateRequest = getStateRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/drs/", Order=0)] + public Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult getStateResult; + + public getStateResponse() { + } + + public getStateResponse(Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult getStateResult) { + this.ResultHeader = ResultHeader; + this.getStateResult = getStateResult; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface DebtRequestsAsyncPortChannel : Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class DebtRequestsAsyncPortClient : System.ServiceModel.ClientBase, Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort { + + public DebtRequestsAsyncPortClient() { + } + + public DebtRequestsAsyncPortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public DebtRequestsAsyncPortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DebtRequestsAsyncPortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DebtRequestsAsyncPortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.importDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest request) { + return base.Channel.importDebtRequests(request); + } + + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader importDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDRsRequest importDRsRequest, out Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importDRsRequest = importDRsRequest; + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsResponse retVal = ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).importDebtRequests(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.importDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest request) { + return base.Channel.importDebtRequestsAsync(request); + } + + public System.Threading.Tasks.Task importDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDRsRequest importDRsRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.importDebtRequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importDRsRequest = importDRsRequest; + return ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).importDebtRequestsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.exportDebtSubrequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest request) { + return base.Channel.exportDebtSubrequests(request); + } + + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader exportDebtSubrequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDSRsRequest exportDSRsRequest, out Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportDSRsRequest = exportDSRsRequest; + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsResponse retVal = ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).exportDebtSubrequests(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.exportDebtSubrequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest request) { + return base.Channel.exportDebtSubrequestsAsync(request); + } + + public System.Threading.Tasks.Task exportDebtSubrequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDSRsRequest exportDSRsRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtSubrequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportDSRsRequest = exportDSRsRequest; + return ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).exportDebtSubrequestsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.importResponses(Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest request) { + return base.Channel.importResponses(request); + } + + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader importResponses(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDSRResponsesRequest importDSRResponsesRequest, out Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importDSRResponsesRequest = importDSRResponsesRequest; + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesResponse retVal = ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).importResponses(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.importResponsesAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest request) { + return base.Channel.importResponsesAsync(request); + } + + public System.Threading.Tasks.Task importResponsesAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.importDSRResponsesRequest importDSRResponsesRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.importResponsesRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importDSRResponsesRequest = importDSRResponsesRequest; + return ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).importResponsesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.exportDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest request) { + return base.Channel.exportDebtRequests(request); + } + + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader exportDebtRequests(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDRsRequest exportDRsRequest, out Hcs.Service.Async.DebtRequests.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportDRsRequest = exportDRsRequest; + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsResponse retVal = ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).exportDebtRequests(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.exportDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest request) { + return base.Channel.exportDebtRequestsAsync(request); + } + + public System.Threading.Tasks.Task exportDebtRequestsAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDRsRequest exportDRsRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.exportDebtRequestsRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportDRsRequest = exportDRsRequest; + return ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).exportDebtRequestsAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.getState(Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getState(request); + } + + public Hcs.Service.Async.DebtRequests.v14_5_0_1.ResultHeader getState(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest getStateRequest, out Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResult getStateResult) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateResponse retVal = ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).getState(inValue); + getStateResult = retVal.getStateResult; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort.getStateAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getStateAsync(request); + } + + public System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.DebtRequests.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest getStateRequest) { + Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.DebtRequests.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + return ((Hcs.Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort)(this)).getStateAsync(inValue); + } + } +} diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.svcmap b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.svcmap new file mode 100644 index 0000000..c1433ca --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/Reference.svcmap @@ -0,0 +1,35 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration.svcinfo b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration.svcinfo new file mode 100644 index 0000000..564aeb7 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration91.svcinfo b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration91.svcinfo new file mode 100644 index 0000000..1fa7e5f --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + DebtRequestsAsyncBinding2 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + DebtRequestsAsyncBinding3 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://api.dom.gosuslugi.ru/ext-bus-debtreq-service/services/DebtRequestsAsync + + + + + + basicHttpBinding + + + DebtRequestsAsyncBinding2 + + + Service.Async.DebtRequests.v14_5_0_1.DebtRequestsAsyncPort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + DebtRequestsAsyncPort1 + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-base.xsd b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-base.xsd new file mode 100644 index 0000000..bbf262e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-base.xsd @@ -0,0 +1,861 @@ + + + + + + Строка не более 2000 символов. + + + + + + + + Строка не более 1500 символов. + + + + + + + + Строка не более 300 символов. + + + + + + + + Скалярный тип. Строка не более 255 символов. + + + + + + + + + Скалярный тип. Строка не более 100 символов. + + + + + + + + Скалярный тип. Строка не более 250 символов. + + + + + + + + Скалярный тип. Строка не более 500 символов. + + + + + + + + Строка не более 60 символов. + + + + + + + + Текстовое поле 2000 + + + + + + + + Непустая строка + + + + + + + + + Базовый тип бизнес-сообщения с подписью + + + + + + + + + Заголовок запроса + + + + + + + + + Идентификатор поставщика данных + + + + + Идентификатор зарегистрированной организации + + + + + Информация о физическом лице + + + + + + Идентификатор физического лица, зарегистрированного в ГИС ЖКХ + + + + + + СНИЛС + + + + + + + + + + Документ, удостоверяющий личность + + + + + + Вид документа, удостоверяющего личность (НСИ №95) + + + + + + Код записи справочника + + + + + + + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + + + + + + Используется подпись Оператора ИС + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164). Только для запросов размещения информации. + + + + + + + + + + Заголовок запроса + + + + + + + + + + + + + + Заголовок ответа + + + + + + + + + + Базовый тип ответа на запрос создания, редактирования, удаления + + + + + + Транспортный идентификатор, определенный постащиком информации + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + Дата модификации + + + + + Уникальный номер + + + + + + + + + + Базовый тип заголовка + + + + + Дата отправки пакета + + + + + Идентификатор сообщения + + + + + + + Вложение + + + + + + Идентификатор сохраненного вложения + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex. + +Элемент обязателен в запросах импорта + + + + + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex + + + + + + + + + + + + Базовый тип, описывающий вложение с открепленными (detached) подписями. В сервисах ГИС ЖКХ, использущих тип SignedAttachmentType, может быть наложено ограничение на максимальное количесво элементов в блоке Signature (см. контроль INT002039). + + + + + Вложение + + + + + Открепленная (detached) подпись + + + + + + + Элемент Fault (для параметра Fault в операции) + + + + Базовый тип для fault-ошибки + + + + + + + + + + + Описание ошибок контролей или бизнес-процесса + + + + + Базовый тип ошибки контроля или бизнес-процесса + + + + + Код ошибки + + + + + Описание ошибки + + + + + StackTrace в случае возникновения исключения + + + + + + + Версия элемента, начиная с которой поддерживается совместимость + + + + + Возврат квитанции приема сообщения + + + + + + Квитанция + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + Идентификатор сообщения, присвоенный поставщиком + + + + + + + + + + + Запрос статуса отправленного сообщения + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + Запрос списка обработанных сообщений + + + + + + Массив идентификаторов сообщений, присвоенных ГИС ЖКХ + + + + + + + + Ответ на запрос списка обработанных сообщений + + + + + + + + Список идентификаторов сообщений, присвоенный ГИС ЖКХ + + + + + + + + + + Базовый тип ответа на запрос статуса + + + + + + + Статус обработки + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + + Результат выполнения C_UD + + + + + Идентификатор создаваемой/изменяемой сущности + + + + + Транспортный идентификатор + + + + + + Операция выполнена успешно + + + + Уникальный реестровый номер + + + + + Дата модификации + + + + + + Описание ошибки + + + + + + + + + + + + + Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано) + + + + + + + + + + Транспортный идентификатор + + + + + GUID-тип. + + + + + + + + Дата модификации объекта + + + + + Тип, описывающий год + + + + + + + + Тип, описывающий месяц + + + + + + + + + Месяц + + + + + Год + + + + + + + + + + + Определенный месяц определенного года + + + + + + + + + Временной период (обе даты обязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Открытый временной период (даты необязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Тип объема + + + + + + + + + + Ссылка на субъект РФ (ФИАС) + + + + + Код региона (ФИАС) + + + + + + + + + + Полное наименование + + + + + + + + + + + + Ссылка на ОКТМО + + + + + Код по ОКТМО + + + + + + + + + + + Полное наименование + + + + + + + + + + + + + + + + + Код ОКЕИ + + + + + Идентификатор зарегистрированной организации + + + + + Базовый тип документа ОЧ + + + + + Наименование документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата принятия документа органом власти + + + + + Вложение + + + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164) + + + + + + Наименование ИС + + + + + Наименование Оператора ИС + + + + + + + + Код по ОКТМО + + + + + + + + + Код по ОКТМО + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-service-async.wsdl b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-service-async.wsdl new file mode 100644 index 0000000..1acdf20 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-service-async.wsdl @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Загрузка в ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + Выгрузка из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + Загрузка в ГИС ЖКХ ответов на запросы о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + Выгрузка из ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + Результат обработки асинхронного вызова + + + + + + + + + Загрузка в ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + + + + + + + + + + Выгрузка из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + + + + + + + + + + Загрузка в ГИС ЖКХ ответов на запросы о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + + + + + + + + + + Выгрузка из ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Сервис управления запросами о наличии задолженности за ЖКУ + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-types.xsd b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-types.xsd new file mode 100644 index 0000000..edfe714 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-debt-requests-types.xsd @@ -0,0 +1,1441 @@ + + + + + + + ???????????? ?? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ??????. ???????????????? ???????????? 13.1.10.1 ?? 14.0.0.0 + + + + + + + + ???????????????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + + + ?????????????????????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ???????????????????? ?????? ???????????????? Revoke. + + ?????? ???????????????? Send ?????????????????????? ?? ?????? ????????????, ???????? ?????????????????????? ?????? ???????????????????????? ?????? ???????????????????????? ?? ?????? ?????? ???????????? + + + + + ?????? ???????????????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ???????????????????? ????????????????: + Send - ?????????????????? ???????????? ?????????????????????? ??????; + Revoke - ???????????????? ????????????, ?????????? ???????????????????????? ?????????????????????? ??????. + + ?????? ???????????????? Send ???????????? ???????? ???????????? ???????? ???? ???????? ???? ?????????????????? requestGUID ?????? requestData + + + + + ???????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ?????????????????????? ???????????? ?????? ???????????????? Send. + + ???????? ???????????????? ?????????????? ?? ?????? ???????????????????????? ?? ?????? ?????? ???????????????? (???????????? ?????????????? requestGUID), ???? ?????????????? ???????????????? ???????????????????????? ?????? ?????????????????? ?????????????? ?????????? ?????? ???????????????????????? ?????????????????????? ??????. ?? ?????????????????? ????????????, ?????????????? ???????????????? ???????????????????????? ?????? ???????????????? ?? ?????? ?????? ???????????? ??????????????, ?????????????? ???????????????????????? ?????????????????????? ?????? + + + + + + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????? ?? ?????????????? ?????????????????????????? ?? ???????????? importDRsRequest + + + + + + + + ?????????????? ???? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ??????. ???????????????? ???????????? 13.1.10.1 ?? 14.0.0.0 + + + + + + + ?????????????? ???????????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + ?????????????????????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ?????????? ??????????????, ?????????????????????? ?????? ?????? + + + + + ?????????????? ???????????? ???? ?????????????????? ??????????????. + + ?????????????? ?????????? ?????????????????????? ?? ?????????? ????????????????????. ?? ???????????????? ?????????????????? ?????????? ???????????????? ???????????? ???? ?????????????? ?? ??????????????????????????, ?????????????? ?????????????????????????? ???????? ?????????????????? ????????????????. ?????????????? ?????????????????? ??????????????????????, ???????? ???????????????? ???????????????????????????????? ???????????????? ?????????????? ?? ?????????????????????????? + + ???????? ?????????????????? ?? ?????????????????? ?? ?????????????? ?????????????????? (?????????????????? ?? ???????????????? applicantInfo); + + ???????? ?????????????????? ?? ?????????? ???? ?????????????????? ?? ?????????????? ???????????????? (?????? ?????????????????? requestStatus, requestResult, houseGuid); + + ???????? ???????????????? ?? ???????????????? ?????????????????? ???????????? (?????? ??????????????????, ???????????????? ?????????????????? ????????????) + + + + ???????????? ???????????????? ?????????????? ?? ?????? ??????. + + ?????????????????????? ???????????? ???? ???????????? ?????????????????? 6-???? ?????????????? + + + + + ???????????? ?????????????????????? ?????????????? ?????????????????????? ??????. + + ?????????????????????? ???????????? ???? ???????????? ?????????????????? 6-???? ?????????????? + + + + + ???????????? ???????????????? ?????????? ???????????? ???? ???????????? + + + + + ???????????????????? ?? ?????????????????? + + + + + + ?????????????????????????? ????????/??????????????????/?????????????? ?? ?????????????? ???????????????? ???????????????? ?????? ?????? ?? ?????? ??????. +?????????????????????? ?????? ???????????? 14.0.0.0 + + + + + ?????????????????????????? ???????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????, ???? ???????????????? ???????????????????????????? ????????????. +?????????????????????? ?????? ???????????? 13.1.10.1 + + + + + + ???????????? ?????????????? ?? ?????? ??????. + + ???????????????????? ????????????????: + Draft - ????????????; + Processing - ?? ??????????????????; + Sent - ?????????????????? ?????????????????????? ??????; + Processed - ?????????????? ??????????; + Revoked - ?????????????? + + + + + ?????????????????? ???????????????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? (?????? #357) + + + + + ??????????????????????????, ???????????????????????? ?????? ???????????????? 2-???? ?? ?????????????????????? ???????????? ????????????. + + ???????? ?? ???????????????? exportDRsRequest ?????????????? ?????????????? ???????????? ???? ?????????????????? ??????????????, ???? ?????????????? ???????????????? ???????????????????????????? ?????????????? ???? 100 ???????????????? ?? ???????????? ?????????? (?????????????????? ???????? ?????????? ?????????????????? ?????????????? ?????????? ????????????????). + + ?????? ???????????????? ?????????????? ?????????? ???????????? ?????????????? ???? ??????????????????????. ?????? ???????????????? ?????????????? ???????????????????? ?????????? ???????????? ?? ???????????????? ???????????? ?????????????????????? ???????????????? ???????????????? getStateResult/ exportDRsResult/ pagedOutput/ nextRequestGUID, ???????????????????? ?????? ???????????????? ?????????????????????? ?????????? ???????????? + + + + + + + + + + + + ?????????????????? ???????????????? ???? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ??????. ???????????????? ???????????? 13.1.10.1 ?? 14.0.0.0 + + + + + + + + ?????????????????? ???????????????????? ?????????????? ???? ?????????????? ???? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + + + + + + + + ?????? ?????? ???????????????????? ???????????????? ???? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ???????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ?????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????? ?? ?????????????? ???? ?????????????? ?? ?????? ?????? + + + + + + ?????????????????????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ?????????? ??????????????, ?????????????????????? ?????? ?????? + + + + + + + + ??????????????????, ?????????????????????? ?????? ???????????????? ???????????????????? ?????????? ???????????? (????. ?????????????????? ???????????????? exportDRsRequest/ exportRequestGUID). + + ??????????????????????, ???????? ?? ???????????????? exportDRsRequest ?????????????? ?????????????? ???????????? ???? ?????????????????? ?????????????? + + + + + + ??????????????????????????, ?????????????? ???????????????????? ?????????????? ?? ???????????????? exportDRsRequest/ exportRequestGUID ?????? ???????????????? ???????????????????? ?????????? ???????????? + + + + + ?????????????? ????????, ?????? ?????????????? ???????????????????????????? ???????? ???????????????? ?????????????????? + + + + + + + + + + ?????????????? ???? ?????? ?????? ?????????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ??????. ???????????????? ???????????? 13.1.10.1 ?? 14.0.0.0 + + + + + + + + ?????????????? ???????????? ?????????????????????? + + + + ?????????????????????????? ????????????????????, ?????????????????????????????? ?????? ?????? + + + + + ?????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ?????????????????????????? ?? ?????? ?????? + + + + + ?????????????? ???? ???????????????? ?????????????? / ???????????????????? + + + + ???????????? ?????????????????????? ?????????????? ?????????????????????? ??????. + ?????????????????????? ???????????? ???? ???????????? ?????????????????? 6-???? ?????????????? + + + + + + ?????????????????????????? ???????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????, ?? ?????????????? ???????????? ???????????? ?? ?????????????? ??????????????????????????. +?????????????????????? ?????? ???????????? 13.1.10.1 + + + + + ?????????????????????????? ????????/??????????????????/?????????????? ?? ?????????????? ???????????????? ???????????????? ?????? ?????? ?? ?????? ??????. +?????????????????????? ?????? ???????????? 14.0.0.0 + + + + + + ???????????? ??????????????, ?????????????????????????? ?? ?????? ??????. + + ???????????????????? ????????????????: + Sent - ??????????????????; + Processed - ?????????????? ?????????? + + + + + ???????????? ???????????? ???? ??????????????????, ???????????????????????????? ?????? ??????. + + ???????????????????? ????????????????: + NotSent - ???? ??????????????????; + Sent - ??????????????????; + AutoGenerated - ?????????????????????? ?????????????????????????? + + + + + ??????????????????????????, ???????????????????????? ?????? ???????????????? 2-???? ?? ?????????????????????? ???????????? ????????????. + + ???????? ?? ???????????????? exportDSRsRequest ?????????????? ?????????????? ???????????? ???? ?????????????????? ??????????????/????????????????????, ???? ?????????????? ?????????????????????? ???????????????????????????? ?????????????? ???? 100 ?????????????????????? ?? ???????????? ?????????? (?????????????????? ???????? ?????????? ?????????????????? ?????????????? ?????????? ??????????????????????). + + ?????? ???????????????? ?????????????? ?????????? ???????????? ?????????????? ???? ??????????????????????. ?????? ???????????????? ?????????????? ???????????????????? ?????????? ???????????? ?? ???????????????? ???????????? ?????????????????????? ???????????????? ???????????????? getStateResult/ exportDSRsResult/ pagedOutput/ nextSubrequestGUID, ???????????????????? ?????? ???????????????? ?????????????????????? ?????????? ???????????? + + + + + + + ?????????????? ?????????????????? ?? ?????????????????? ???????????????? ???? ?????????????? ???? ?????????????? ?? ?????????????????????????? ???? ??????. +?????????????????????? ?????? ???????????? 13.1.10.1 + + + + + + + + + + + ?????????????????? ???????????????? ???? ?????? ?????? ?????????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ??????. ???????????????? ???????????? 13.1.10.1 ?? 14.0.0.0 + + + + + + + + ?????????????????? ???????????????????? ?????????????? ???? ?????????????? ?????????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ?????? + + + + + + + + + + + + ?????? ?????? ???????????????????? ???????????????? ???? ?????? ?????? ?????????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ?????? + + + + + ???????????? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ?????????????? ?? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????? ?? ?????????????? ???? ?????????????? ?? ?????? ?????? + + + + + + ?????????????????????????? ????????????????????, ?????????????????????????????? ?????? ?????? + + + + + ?????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ?????????????????????????? ?? ?????? ?????? + + + + + + + + ??????????????????, ?????????????????????? ?????? ???????????????? ???????????????????? ?????????? ???????????? (????. ?????????????????? ???????????????? exportDSRsRequest/ exportSubrequestGUID). + + ??????????????????????, ???????? ?? ???????????????? exportDSRsRequest ?????????????? ?????????????? ???????????? ???? ?????????????????? ?????????????? / ???????????????????? + + + + + + ??????????????????????????, ?????????????? ???????????????????? ?????????????? ?? ???????????????? exportDSRsRequest/ exportSubrequestGUID ?????? ???????????????? ???????????????????? ?????????? ???????????? + + + + + ?????????????? ????????, ?????? ?????????????? ???????????????????????????? ???????? ???????????????? ?????????????????? + + + + + + + + + + ???????????? ?? ?????? ?????? ?????????????? ???? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ?????? + + + + + + + + ???????????????? ?? ?????????????? ???? ?????????????????? ?? ?????????????? ?????????????????????????? + + + + + + + ?????????????????????????? ???????????????????? ?? ?????????????? ??????????????????????????, ?????????????????????????????? ?????? ?????? + + + + + ?????? ???????????????? ?? ?????????????? ???? ??????????????????. + + ???????????????????? ????????????????: + Send - ?????????????????? ??????????; + Revoke - ???????????????? ?????????? ???????????????????????? ?????????? + + + + + ?????????? ???? ??????????????????. + + ?????????????????????? ???????????? ?????? ???????????????? Send. + + ???????? ?????? ???????????????????? ?????????? ?????? ???????????????????? ?? ?????? ??????, ???? ?????????????? ???????????????? ???????????????????????? ?????? ?????????????????? ???????????? ?????????? ?????? ??????????????????. ?? ?????????????????? ????????????, ?????????????? ???????????????? ???????????????????????? ?????? ???????????????? ?? ???????????????? ???????????? ???????????? + + + + + + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????? ?? ?????????????? ?????????????????????????? ?? ???????????? importDSRResponsesRequest + + + + + + + + ?????????????? ?????????????? ?? ?????????????????????? ?????????????????????????? ?????????????????? + + + + + + + + ?????????????????? ?????????????? + + + + + ?????????????????? ???????????????????? ?????????????? ???? ?????????????? ???? ?????? ?????? ???????????????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + ?????????????????? ???????????????????? ?????????????? ???? ?????????????? ?????????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ???????????????????????????? ?????? ?????? + + + + + + + + + + + + ???????????????????? ?? ??????????????????, ?????????????????????? ?? ???????????????????? ?????????????? + + + + + ?????? + + + + + ?????????????? + + + + + ???????????????? + + + + + ?????????? + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????????? + + + + + + + ???????????????????? ?? ?????????????????? + + + + + ?????? + + + + + ?????????????? + + + + + ???????????????? + + + + + ?????????? + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????????? + + + + + + + ???????????????????? ?? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????? ?? ????????, ?? ?????????????????? ???????????????? ?????????????? ?????????????????????????? + + + + + + ?????? + + + + + ?????????????? + + + + + ???????????????? + + + + + ?????????? + + + + + ????????????????, ???????????????????????????? ???????????????? + + + + + + + + ????????????????, ???????????????????????????? ?????????????????????????? + + + + + + ?????? ??????????????????, ?????? ???????????? ???? ?????????????????? (?????? 358) + + + + + ?????????????????????????? ???????? + + + + + + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????????? + + + + + ?????? ??????????????????, ?????????????????????????????? ???????????????? (?????? #95) + + + + + ?????????? + + + + + + + + + + ?????????? + + + + + + + + + + + + ???????????? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ??????, ?????????????????????????????? ?????? ?????? + + + + + ?????????????????????????? ????????????????????, ?????????????????????? ?? ?????? ?????? + + + + + ???????????????????? ???? ???????????????? ?????????????? ?? ?????? ?????? ?? ?????????????? ?????????????????????????? ???? ?????? + + + + + + ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????? ?????????????? + + + + + ??????????????????????, + ?????????????????????? ???????????? + + + + + ???????????? ?????????????????? ?????????? (??????), ???? ???????????????? ???????????????????????????? ???????????? + + + + + ????????????, ???? ?????????????? ?????????????????????????? ?????????????????????????? + + + + + ???????????? ??????????????. + + ???????????????????? ????????????????: + Sent - ?????????????????? + Processed - ?????????????? ?????????? + + + + + ???????? ?????????????????????? ?????????????? + + + + + ?????????????? ???????? ???????????? ???? ???????????? + + + + + ???????????????????? ?? ????????????????????, ???????????????????????????? ???????????? + + + + + + + + ???????????? ???????????? ???? ?????????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ???????????????????? ????????????????: + NotSent - ???? ?????????????????? + Sent - ?????????????????? + AutoGenerated - ?????????????????????? ?????????????????????????? + + + + + ?????????? ???? ?????????????????? + + + + + + ?????????????? ?????????????? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????? ?? ???????????????????????? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????????????? ???????? + + + + + ???????????????????????????? ???????????????????? + + + + + + + + + + ???????????????????? ?? ????????????????????, ???????????????????????????? ?????????? + + + + + + + + + + ???????????????????? ???? ?????????????????????? + + + + + ?????????????????????????? ?????????????????????? + + + + + ?????? ?????????????????????? + + + + + + + ???????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? ?????? ???????????????? ???? ?????? ?????? + + + + + ?????????????????????????? ??????????????, ?????????????????????? ?? ?????? ?????? + + + + + ?????????? ??????????????, ?????????????????????? ?? ?????? ?????? + + + + + ???????????????????? ?? ?????????????????? + + + + + ???????????????? ???? ?????????????? ?????????????????? ?????????? (??????), ???? ???????????????? ???????????????????????????? ???????????? + + + + + ????????????, ???? ?????????????? ?????????????????????????? ?????????????????????????? + + + + + ??????????????????????, + ???????????????????????????? ???????????? + + + + + ???????????????????? ?? ????????????????????, ???????????????????????????? ???????????? + + + + + ???????????? ?????????????? ?? ?????? ??????. + + ???????????????????? ????????????????: + Draft - ????????????; + Processing - ?? ??????????????????; + Sent - ?????????????????? ?????????????????????? ??????; + Processed - ?????????????? ??????????; + Revoked - ?????????????? + + + + + ?????????????????? ???????????????????? ??????????????. + + ?????????????????????? ?????????? ???????????????? ???? ?????????????????????? ?????? ?????? "?????????????????? ?????????????? ?? ?????????????? ?????? ???????????????????? + ?????????????????????????? ???? ??????" (?????? #345). A???????????????????? + ???????????????? ?????????????????? ????????????????: + 1 - ???????????? ???? ?????????????????? + 2 - ???????????? ?????????????? ???????????? + 3 - ?????????????? ???????????????????? ?? ?????????????????????????? + 4 - ?????????????????????????? ?????? + 5 - ?????????????????????? ?????????????????????? ???????????????????? ?? ?????? ?????? + 6 - ???????????????????? ?? ?????????????????????????? ?????????????????????? + 7 - ???????????????????? ?? ?????????????????????????? ???? ???????????????????????? ?????????????????????? + + + + + ???????? ???????????????? ?????????????? + + + + + ???????? ?????????????????????? ?????????????? ?????????????????????? ?????? + + + + + ?????????????? ???????? ???????????? ???? ???????????? + + + + + ?????????????? ????????????????????????, ?????????????????????????????? ?????? + + + + + + ??????????????????????, + ?????????????????????????????? ?????? + + + + + ?????????? ?????????????????????? + + + + + + ???????????? ???????????????????????? ????????????. + + ???????????????????? ????????????????: + Provided - ???????????????????????? ???????????????????????? + AutoGenerated - ?????????????????????? ?????????????????????????? + + + + + ?????????????? ?????????????? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????? ?? ???????????????????????? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????????????? ???????? + + + + + ???????????????????????????? ???????????????????? + + + + + + + + + + ???????????????????? ?? ????????????????????, ???????????????????????????? ?????????? + + + + + + + + + + + + + ???????????????????????????? ???????????????? ???? ?????????????? ?????????????????? ?????????? (??????), ???? ???????????????? ???????????????????????????? ???????????? + + + + + + ?????????????????????? ?????? ????????????????, ???????????????????????? ???? ???????????? 13.1.10.1 + + + + ?????????????????????????? ???????? (???????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????, ???????? ?? ?????????????????????? ????????) + + + + + ???????????????????????????? ???????????????????? ???? ?????? (?????????? ???????????????? / ??????????????????, ??????????????, ?????????? ???????????? ????????). + +???????????????????? ?????? ??????, ?????????????? ?????? ?????????????????????????????? ?????? ?????? ?????????? ?????? ?????????????????????????? ??????????????????. ???? ?????????????????????? ?????? ??????, ?????????????? ?????? ?????????? ?????? + + + + + + + + + + + ?????????????????????? ?????? ????????????????, ???????????????????????? ???? ???????????? 14.0.0.0 + + + + ?????????????????????????? ????????/??????????????????/?????????????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????. + + + + + ?????? ??????????????. + ?????????????????? ????????????????: + Appartment - ??????????????????/????????, + Room - ??????????????, + House - ?????????? ?????? + ?????????????????????? ???????????? ?????? ?????????? ???????????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????????? ???????????? + + + + + + + + + + + + + ???????????? ?????????????? ?? ?????????????? ?????????????????????????? ???? ?????? ?????? ?????????????? ?? ?????? ?????? + + + + + ???????????????????? ?? ?????????????????? + + + + + ???????????????? ???? ?????????????? ?????????????????? ?????????? (??????), ???? ???????????????? ???????????????????????????? ???????????? + + + + + ?????????????????????????? ????????????????????, ?????????????????????????????? ???????????? + + + + + + + ???????????? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ?????? ?????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? + + + + + ???????????????????????????? ????????. + + ?????????? ???????? ????????????, ???????????? ???????? hasDebt=TRUE + + + + + ???????????????????????????? ???????????????????? + + + + + + + + + + ?????????????????????????? ????????????????????, ?????????????????????????????? ?????????? + + + + + ???????????????????? ?? ???????????????????????? ??????????????????????????, ???????????????????????????? ???????????????? ??????????. + +?????????? ???????? ????????????, ???????????? ???????? hasDebt=TRUE. + + + + ???????????????????? ?? ???????????????????????? ??????????????????????????, ???????????????????????????? ???????????????? ??????????. ??????????????????????, ???????? ?????????? ???????????????????????? ?????? ?????????? ?????????????? ???????????????? ?? ??????????????????????????. + +?????????? ???????? ????????????, ???????????? ???????? hasDebt=TRUE. ?? ???????? ???????????? ?????????????? ???????????????????? + + + + + ?????????????????????????? ???????????? ?????????????? ???????????????? ?? ??????????????????????????. ?????????????????????? ?????? ?????????????????????? ???????????? ?? ???????????? ?????????????? ???????????????? ?? ??????????????????????????. ?????????? ???????? ????????????, ???????????? ???????? hasDebt=TRUE. ???????????????????????? ?????? ???????????????????? + + + + + + + + ???????????????? ???? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????????????? (?? ?????????????? ?????????????????????? ?????? ??????) + + + + + ???????????????????????? ?????????????????????? + + + + + ?????????????? ?????????????????????? + + + + + + + ???????? ?????????????????? ???????? + + + + + ?????????? ?????????????????? ???????? + + + + + + + + + + ???????? ???????????????????? ?? ???????? ?????????????????? ???????? + + + + + + + ???????????????????? ???? ???????????????????????????? ?????????????? ?????????????????? ??????????, ?????????????????? ?? ???????????? ?? ?????????????? ???????????????? ?? ??????????????????????????. + ????????????????????????, ???????? ???????????????? ?????? ?????????????????? ???? ???????????????????????????? ?? ?????? ?????? ???????????? ?????????????????? ??????????. + + + + + ?????????? ?????????????????????????????? ?????????????? ?????????????????? ??????????. + + + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ?????????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????????????????? ?????? ?????????????????????????????? ???????? ?? ?????? ??????.???????????? ????????????????, ?????????????????????? ???? ?????????????? ???? ???????????????????? ?? ????????, ?????????????????????? ?? ???????????????? ?????????? ?????? ?????? ?? ?????????????? ?????????????????????? ?? ??????????????????????. + + + + + ???????????????????? ???????????????????? ?????????????????????????? ?????????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????. + + + + + + + ???????????????????? ?? ??????????????????????????, ???????????????????????????? ???????????????? ?????????? ?????? ???????????????? ?????? ?????? + + + + + ???????????????????? ?? ????????, ?? ?????????????????? ???????????????? ?????????????? ?????????????????????????? + + + + + + ?????? + + + + + ?????????????? + + + + + ???????????????? + + + + + ?????????? + + + + + ????????????????, ???????????????????????????? ???????????????? + + + + + + + + ????????????????, ???????????????????????????? ?????????????????????????? + + + + + + ?????? ??????????????????, ?????? ???????????? ???? ?????????????????? (?????? 358) + + + + + ?????????????????????????? ???????? + + + + + ?????????????????????????? ???????????? ?? ?????????????? ???????????????? ?? ??????????????????????????. + +??????????????????????, ???????? ???????????? ???? ?????????????? ?????????????????? ???? ?????????? ???????????? (14.0.0.0) + + + + + ???????????????????? ?? ???????????????? ????????. + ?????????????????????? ?????? ????????????????????, ???????? ?????? ?????????????????? = ???????????????? ?????? (?????????????????????? ?????? ?????????? ???????????? ???????????? ???? ????????????). + +??????????????????????, ???????? ???????????? ???? ?????????????? ?????????????????? ???? ?????????? ???????????? (14.0.0.0) + + + + + ???????????????????? ???? ???????????????????????????? ?????????????? ?????????????????? ??????????, ?????????????????? ?? ???????????? ?? ?????????????? ???????????????? ?? ??????????????????????????. + ????????????????????????, ???????? ???????????????? ?????? ?????????????????? ???? ???????????????????????????? ?? ?????? ?????? ???????????? ?????????????????? ??????????. + +??????????????????????, ???????? ???????????? ???? ?????????????? ?????????????????? ???? ?????????? ???????????? (14.0.0.0) + + + + + + + + + + ???????????????? ???? ?????????????? ?????????????????? ?????????? (??????) ?????? ?????????????? ???????????????? ????????????????/?????????????????????? (???????????? 14.0.0.0) + + + + + ?????????????????????????? ????????/??????????????????/?????????????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????. + + + + + ?????? ??????????????. + ?????????????????? ????????????????: + Apartment - ??????????????????/????????, + Room - ??????????????, + House - ?????????? ?????? + + + + + + + + ?????????????????????????? ???????????????? ???? ?????????????? ?????????????????? ?????????? (??????) ?? ?????????????? + + + + + ?????????????????????? ?????? ?????????????????????? ?????????????? ???? ???????????? 13.1.10.1 + + + + ?????????????????????????? ???????? (???????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????, ???????? ?? ?????????????????????? ????????) + + + + + ???????????????????????????? ???????????????????? ???? ?????? (?????????? ???????????????? / ??????????????????, ??????????????, ?????????? ???????????? ????????). + +???????????????????? ?????? ??????, ?????????????? ?????? ?????????????????????????????? ?????? ?????? ?????????? ?????? ?????????????????????????? ??????????????????. ???? ?????????????????????? ?????? ??????, ?????????????? ?????? ?????????? ?????? + + + + + + + + + + + ?????????????????????? ?????? ?????????????????????? ?????????????? ???? ???????????? 14.0.0.0. + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????????????? ???????????????? ???????????????? ?????? ??????. ???????????????????? ?????? ???????????????????? ?????? ???????? ??????????, ?????????? ?????????? ??????. ???????? ?????? = ?????????? ??????. ???? ?????????? ???????? ????????????????, ???????? HMObjectGUID, ???????? fiasHouseGUID + + + + + ?????? ??????????????. + ?????????????????? ????????????????: + Apartment - ??????????????????/????????, + Room - ??????????????, + House - ?????????? ?????? + + + + + + + ?????????????????????????? ????????. ?????????? ???????? ????????????????, ???????? ?????? ?????????????? = ?????????? ?????? + + + + + + + + ?????? ?????????????? ?????????????? ?? ?????? ??????. + + ???????????????????? ????????????????: + Draft - ????????????; + Processing - ?? ??????????????????; + Sent - ?????????????????? ?????????????????????? ??????; + Processed - ?????????????? ??????????; + Revoked - ?????????????? + + + + + + + + + + + + ???????? ???????????????? ?? ?????????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ???????????????????? ????????????????: + Send - ?????????????????? ???????????? ?????????????????????? ??????; + Revoke - ???????????????? ????????????, ?????????? ???????????????????????? ?????????????????????? ?????? + + + + + + + + + ???????? ???????????????? ?? ???????????????? ???? ???????????????????? ?? ?????????????? ?????????????????????????? ???? ??????. + + ???????????????????? ????????????????: + Send - ?????????????????? ??????????; + Revoke - ???????????????? ?????????? ???????????????????????? ?????????? + + + + + + + + + ?????????????????? ?????? ?????? ?????????? ?????? + + + + + + + + + ?????????????????? ?????? ?????? ???????????? ?????????????? + + + + + + + + ???????????? ??????????????, ?????????????????????????? ?? ?????? ??????. + + ???????????????????? ????????????????: + Sent - ??????????????????; + Processed - ?????????????? ?????????? + + + + + + + + + ???????????? ???????????? ???? ??????????????????, ???????????????????????????? ?????? ??????. + + ???????????????????? ????????????????: + NotSent - ???? ??????????????????; + Sent - ??????????????????; + AutoGenerated - ?????????????????????? ?????????????????????????? + + + + + + + + + + ???????????? ???????????????????????? ???????????? ???? ??????????????????. + + ???????????????????? ????????????????: + Provided - ???????????????????????? ????????????????????????; + AutoGenerated - ?????????????????????? ?????????????????????????? + + + + + + + + + ?????? ?????? ?????????? ?????????? + + + + + + + + ?????? ??????. ?????????????????? ????????????????: Apartment - ??????????????????, Room - ??????????????, House - ?????????? ??????, HouseBlock - ???????? ?? ?????????? ???????? + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-nsi-base.xsd b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-nsi-base.xsd new file mode 100644 index 0000000..cbd302d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/hcs-nsi-base.xsd @@ -0,0 +1,427 @@ + + + + + + + + + + + + Ссылка на справочник + + + + + Код записи справочника + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + Скалярный тип. Наименование справочника. Строка не более 200 символов. + + + + + + + + Скалярный тип. Реестровый номер справочника. Код не более 10 символов. + + + + + + + + Составной тип. Наименование, дата и время последнего изменения справочника. + + + + + Реестровый номер справочника. + + + + + Наименование справочника. + + + + + Дата и время последнего изменения справочника. + + + + + + + Перечень справочников с датой последнего изменения каждого из них. + + + + + Дата и время формирования перечня справочников. + + + + + Наименование, дата и время последнего изменения справочника. + + + + + + + + Данные справочника. + + + + + Реестровый номер справочника. + + + + + Дата и время формирования данных справочника. + + + + + Элемент справочника верхнего уровня. + + + + + + + Составной тип. Элемент справочника. + + + + + Код элемента справочника, уникальный в пределах справочника. + + + + + Глобально-уникальный идентификатор элемента справочника. + + + + + + Дата и время последнего изменения элемента справочника (в том числе создания). + + + + + + Дата начала действия значения + + + + + Дата окончания действия значения + + + + + + + Признак актуальности элемента справочника. + + + + + Наименование и значение поля для элемента справочника. + + + + + Дочерний элемент. + + + + + + + Составной тип. Наименование и значение поля для элемента справочника. Абстрактный тип. + + + + + Наименование поля элемента справочника. + + + + + + + Составной тип. Наименование и значение поля типа "Строка" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Строка". + + + + + + + + + Составной тип. Наименование и значение поля типа "Да/Нет" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Да/Нет". + + + + + + + + + Составной тип. Наименование и значение поля типа "Вещественное" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Вещественное". + + + + + + + + + Составной тип. Наименование и значение поля типа "Дата" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Дата". + + + + + + + + + Составной тип. Наименование и значение поля типа "Целое число" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Целое число". + + + + + + + + + Составной тип. Наименование и значение поля типа "Перечислимый" для элемента справочника. + + + + + + + Запись элемента справочника типа "Перечислимый". + + + + + + Код поля элемента справочника типа "Перечислимый". + + + + + Значение поля элемента справочника типа "Перечислимый". + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на справочник" для элемента справочника. + + + + + + + Ссылка на справочник. + + + + + + Реестровый номер справочника. + + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент внутреннего справочника" для элемента справочника. + + + + + + + Ссылка на элемент внутреннего справочника. + + + + + + Реестровый номер справочника. + + + + + Ссылка на элемент справочника. + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ОКЕИ" для элемента справочника. + + + + + + + Код единицы измерения по справочнику ОКЕИ. + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ФИАС" для элемента справочника. + + + + + + + Ссылка на элемент справочника ФИАС. + + + + + + Идентификационный код позиции в справочнике ФИАС. + + + + + Глобально-уникальный идентификатор адресного объекта в справочнике ФИАС. + + + + + + + + + + + + Составной тип. Наименование и значение поля "Вложение" + + + + + + + Документ + + + + + + + + + Скалярный тип. Наименование поля элемента справочника. Строка не более 200 символов. + + + + + + + + Группа справочника: +NSI - (по умолчанию) общесистемный +NSIRAO - ОЖФ + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/xmldsig-core-schema.xsd b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/xmldsig-core-schema.xsd new file mode 100644 index 0000000..e036087 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DebtRequests.v14_5_0_1/xmldsig-core-schema.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest.datasource new file mode 100644 index 0000000..d2ebe69 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader.datasource new file mode 100644 index 0000000..f4bbe97 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse.datasource new file mode 100644 index 0000000..b5d79c4 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse.datasource new file mode 100644 index 0000000..9702c2b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult.datasource new file mode 100644 index 0000000..3c89844 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse.datasource b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse.datasource new file mode 100644 index 0000000..81c15c5 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse, Connected Services.Service.Async.DeviceMetering.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.cs b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.cs new file mode 100644 index 0000000..3df919d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.cs @@ -0,0 +1,5309 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Hcs.Service.Async.DeviceMetering.v14_5_0_1 { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Fault : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorMessageField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + this.RaisePropertyChanged("ErrorMessage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VolumeMeteringValueExportBaseType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VolumeCurrentMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VolumeMeteringValueImportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class VolumeMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef municipalResourceField; + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/nsi-base/")] + public partial class nsiRef : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VolumeCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueExportBaseType : VolumeMeteringValueBaseType { + + private string readingsSourceField; + + private string orgPPAGUIDField; + + private System.DateTime enterIntoSystemField; + + private string unitField; + + private VolumeMeteringValueExportBaseTypeMeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public System.DateTime EnterIntoSystem { + get { + return this.enterIntoSystemField; + } + set { + this.enterIntoSystemField = value; + this.RaisePropertyChanged("EnterIntoSystem"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public VolumeMeteringValueExportBaseTypeMeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueExportBaseTypeMeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeCurrentMeteringValueExportType : VolumeMeteringValueExportBaseType { + + private System.DateTime dateValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueImportType : VolumeMeteringValueBaseType { + + private System.DateTime dateValueField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricCurrentMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueImportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueExportType : ElectricMeteringValueBaseType { + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueExportWithTSType : ElectricMeteringValueExportType { + + private System.DateTime enterIntoSystemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EnterIntoSystem { + get { + return this.enterIntoSystemField; + } + set { + this.enterIntoSystemField = value; + this.RaisePropertyChanged("EnterIntoSystem"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="ElectricMeteringValueExportType", Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class ElectricMeteringValueExportType1 : ElectricMeteringValueExportWithTSType { + + private string unitField; + + private ElectricMeteringValueExportTypeMeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ElectricMeteringValueExportTypeMeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class ElectricMeteringValueExportTypeMeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class ElectricCurrentMeteringValueExportType : ElectricMeteringValueExportType1 { + + private System.DateTime dateValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class ElectricMeteringValueImportType : ElectricMeteringValueBaseType { + + private System.DateTime dateValueField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class YearMonth : object, System.ComponentModel.INotifyPropertyChanged { + + private short yearField; + + private int monthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public short Year { + get { + return this.yearField; + } + set { + this.yearField = value; + this.RaisePropertyChanged("Year"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public int Month { + get { + return this.monthField; + } + set { + this.monthField = value; + this.RaisePropertyChanged("Month"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateCurrentMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueImportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef municipalResourceField; + + private string meteringValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValue { + get { + return this.meteringValueField; + } + set { + this.meteringValueField = value; + this.RaisePropertyChanged("MeteringValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueExportType : OneRateMeteringValueBaseType { + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportType1))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueExportWithTSType : OneRateMeteringValueExportType { + + private System.DateTime enterIntoSystemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EnterIntoSystem { + get { + return this.enterIntoSystemField; + } + set { + this.enterIntoSystemField = value; + this.RaisePropertyChanged("EnterIntoSystem"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateCurrentMeteringValueExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(TypeName="OneRateMeteringValueExportType", Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class OneRateMeteringValueExportType1 : OneRateMeteringValueExportWithTSType { + + private string unitField; + + private OneRateMeteringValueExportTypeMeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public OneRateMeteringValueExportTypeMeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class OneRateMeteringValueExportTypeMeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueField; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValue { + get { + return this.meteringValueField; + } + set { + this.meteringValueField = value; + this.RaisePropertyChanged("MeteringValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class OneRateCurrentMeteringValueExportType : OneRateMeteringValueExportType1 { + + private System.DateTime dateValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class OneRateMeteringValueImportType : OneRateMeteringValueBaseType { + + private System.DateTime dateValueField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateValue { + get { + return this.dateValueField; + } + set { + this.dateValueField = value; + this.RaisePropertyChanged("DateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string idField; + + private string mimeTypeField; + + private string encodingField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string MimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("MimeType"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Encoding { + get { + return this.encodingField; + } + set { + this.encodingField = value; + this.RaisePropertyChanged("Encoding"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SPKIDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKISexp", typeof(byte[]), DataType="base64Binary", Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class PGPDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType1[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyID", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyPacket", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType1[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType1 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + PGPKeyID, + + /// + PGPKeyPacket, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509IssuerSerialType : object, System.ComponentModel.INotifyPropertyChanged { + + private string x509IssuerNameField; + + private string x509SerialNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string X509IssuerName { + get { + return this.x509IssuerNameField; + } + set { + this.x509IssuerNameField = value; + this.RaisePropertyChanged("X509IssuerName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string X509SerialNumber { + get { + return this.x509SerialNumberField; + } + set { + this.x509SerialNumberField = value; + this.RaisePropertyChanged("X509SerialNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509DataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509CRL", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Certificate", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509IssuerSerial", typeof(X509IssuerSerialType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SKI", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SubjectName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + X509CRL, + + /// + X509Certificate, + + /// + X509IssuerSerial, + + /// + X509SKI, + + /// + X509SubjectName, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RetrievalMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class TransformType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string[] textField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("XPath", typeof(string), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] modulusField; + + private byte[] exponentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] Modulus { + get { + return this.modulusField; + } + set { + this.modulusField = value; + this.RaisePropertyChanged("Modulus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Exponent { + get { + return this.exponentField; + } + set { + this.exponentField = value; + this.RaisePropertyChanged("Exponent"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] pField; + + private byte[] qField; + + private byte[] gField; + + private byte[] yField; + + private byte[] jField; + + private byte[] seedField; + + private byte[] pgenCounterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] P { + get { + return this.pField; + } + set { + this.pField = value; + this.RaisePropertyChanged("P"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Q { + get { + return this.qField; + } + set { + this.qField = value; + this.RaisePropertyChanged("Q"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] G { + get { + return this.gField; + } + set { + this.gField = value; + this.RaisePropertyChanged("G"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=3)] + public byte[] Y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("Y"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] J { + get { + return this.jField; + } + set { + this.jField = value; + this.RaisePropertyChanged("J"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=5)] + public byte[] Seed { + get { + return this.seedField; + } + set { + this.seedField = value; + this.RaisePropertyChanged("Seed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=6)] + public byte[] PgenCounter { + get { + return this.pgenCounterField; + } + set { + this.pgenCounterField = value; + this.RaisePropertyChanged("PgenCounter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string[] textField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DSAKeyValue", typeof(DSAKeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RSAKeyValue", typeof(RSAKeyValueType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType2[] itemsElementNameField; + + private string[] textField; + + private string idField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyValue", typeof(KeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MgmtData", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPData", typeof(PGPDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RetrievalMethod", typeof(RetrievalMethodType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKIData", typeof(SPKIDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Data", typeof(X509DataType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType2[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType2 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + KeyName, + + /// + KeyValue, + + /// + MgmtData, + + /// + PGPData, + + /// + RetrievalMethod, + + /// + SPKIData, + + /// + X509Data, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private string idField; + + private byte[] valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute(DataType="base64Binary")] + public byte[] Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DigestMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ReferenceType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private DigestMethodType digestMethodField; + + private byte[] digestValueField; + + private string idField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DigestMethodType DigestMethod { + get { + return this.digestMethodField; + } + set { + this.digestMethodField = value; + this.RaisePropertyChanged("DigestMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] DigestValue { + get { + return this.digestValueField; + } + set { + this.digestValueField = value; + this.RaisePropertyChanged("DigestValue"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hMACOutputLengthField; + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string HMACOutputLength { + get { + return this.hMACOutputLengthField; + } + set { + this.hMACOutputLengthField = value; + this.RaisePropertyChanged("HMACOutputLength"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class CanonicalizationMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignedInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private CanonicalizationMethodType canonicalizationMethodField; + + private SignatureMethodType signatureMethodField; + + private ReferenceType[] referenceField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CanonicalizationMethodType CanonicalizationMethod { + get { + return this.canonicalizationMethodField; + } + set { + this.canonicalizationMethodField = value; + this.RaisePropertyChanged("CanonicalizationMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureMethodType SignatureMethod { + get { + return this.signatureMethodField; + } + set { + this.signatureMethodField = value; + this.RaisePropertyChanged("SignatureMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Reference", Order=2)] + public ReferenceType[] Reference { + get { + return this.referenceField; + } + set { + this.referenceField = value; + this.RaisePropertyChanged("Reference"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignedInfoType signedInfoField; + + private SignatureValueType signatureValueField; + + private KeyInfoType keyInfoField; + + private ObjectType[] objectField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SignedInfoType SignedInfo { + get { + return this.signedInfoField; + } + set { + this.signedInfoField = value; + this.RaisePropertyChanged("SignedInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureValueType SignatureValue { + get { + return this.signatureValueField; + } + set { + this.signatureValueField = value; + this.RaisePropertyChanged("SignatureValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public KeyInfoType KeyInfo { + get { + return this.keyInfoField; + } + set { + this.keyInfoField = value; + this.RaisePropertyChanged("KeyInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Object", Order=3)] + public ObjectType[] Object { + get { + return this.objectField; + } + set { + this.objectField = value; + this.RaisePropertyChanged("Object"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BaseAsyncResponseType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignatureType signatureField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", Order=0)] + public SignatureType Signature { + get { + return this.signatureField; + } + set { + this.signatureField = value; + this.RaisePropertyChanged("Signature"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseAsyncResponseType : BaseType { + + private sbyte requestStateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte RequestState { + get { + return this.requestStateField; + } + set { + this.requestStateField = value; + this.RaisePropertyChanged("RequestState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering-service-async/", ConfigurationName="Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync")] + public interface DeviceMeteringPortTypesAsync { + + // CODEGEN: Generating message contract since the operation importMeteringDeviceValues is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importMeteringDeviceValues", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DeviceMetering.v14_5_0_1.Fault), Action="urn:importMeteringDeviceValues", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse importMeteringDeviceValues(Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importMeteringDeviceValues", ReplyAction="*")] + System.Threading.Tasks.Task importMeteringDeviceValuesAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 request); + + // CODEGEN: Generating message contract since the operation exportMeteringDeviceHistory is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportMeteringDeviceHistory", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DeviceMetering.v14_5_0_1.Fault), Action="urn:exportMeteringDeviceHistory", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse exportMeteringDeviceHistory(Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportMeteringDeviceHistory", ReplyAction="*")] + System.Threading.Tasks.Task exportMeteringDeviceHistoryAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 request); + + // CODEGEN: Generating message contract since the operation getState is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.DeviceMetering.v14_5_0_1.Fault), Action="urn:getState", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse getState(Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeader : HeaderType { + + private object itemField; + + private ItemChoiceType1 itemElementNameField; + + private bool isOperatorSignatureField; + + private bool isOperatorSignatureFieldSpecified; + + private ISCreator[] iSCreatorField; + + public RequestHeader() { + this.isOperatorSignatureField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Citizen", typeof(RequestHeaderCitizen), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SenderID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType1 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsOperatorSignature { + get { + return this.isOperatorSignatureField; + } + set { + this.isOperatorSignatureField = value; + this.RaisePropertyChanged("IsOperatorSignature"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsOperatorSignatureSpecified { + get { + return this.isOperatorSignatureFieldSpecified; + } + set { + this.isOperatorSignatureFieldSpecified = value; + this.RaisePropertyChanged("IsOperatorSignatureSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ISCreator", Order=3)] + public ISCreator[] ISCreator { + get { + return this.iSCreatorField; + } + set { + this.iSCreatorField = value; + this.RaisePropertyChanged("ISCreator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizen : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType3[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CitizenPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Document", typeof(RequestHeaderCitizenDocument), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType3[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private RequestHeaderCitizenDocumentDocumentType documentTypeField; + + private string seriesField; + + private string numberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RequestHeaderCitizenDocumentDocumentType DocumentType { + get { + return this.documentTypeField; + } + set { + this.documentTypeField = value; + this.RaisePropertyChanged("DocumentType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocumentDocumentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemsChoiceType3 { + + /// + CitizenPPAGUID, + + /// + Document, + + /// + SNILS, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemChoiceType1 { + + /// + Citizen, + + /// + SenderID, + + /// + orgPPAGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISCreator : object, System.ComponentModel.INotifyPropertyChanged { + + private string iSNameField; + + private string iSOperatorNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ISName { + get { + return this.iSNameField; + } + set { + this.iSNameField = value; + this.RaisePropertyChanged("ISName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ISOperatorName { + get { + return this.iSOperatorNameField; + } + set { + this.iSOperatorNameField = value; + this.RaisePropertyChanged("ISOperatorName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class HeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequest : BaseType { + + private string fIASHouseGuidField; + + private importMeteringDeviceValuesRequestMeteringDevicesValues[] meteringDevicesValuesField; + + private string versionField; + + public importMeteringDeviceValuesRequest() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MeteringDevicesValues", Order=1)] + public importMeteringDeviceValuesRequestMeteringDevicesValues[] MeteringDevicesValues { + get { + return this.meteringDevicesValuesField; + } + set { + this.meteringDevicesValuesField = value; + this.RaisePropertyChanged("MeteringDevicesValues"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValues : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType itemElementNameField; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ElectricDeviceValue", typeof(importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValue), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("OneRateDeviceValue", typeof(importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValue), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("VolumeDeviceValue", typeof(importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValue), Order=2)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + MeteringDeviceRootGUID, + + /// + MeteringDeviceVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValue : object, System.ComponentModel.INotifyPropertyChanged { + + private importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueCurrentValue currentValueField; + + private ElectricMeteringValueImportType controlValueField; + + private importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueVerificationValue verificationValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueCurrentValue CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ElectricMeteringValueImportType ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueVerificationValue VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueCurrentValue : ElectricMeteringValueImportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesElectricDeviceValueVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private ElectricMeteringValueBaseType startValueField; + + private ElectricMeteringValueBaseType endValueField; + + private object itemField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ElectricMeteringValueBaseType StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ElectricMeteringValueBaseType EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=6)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValue : object, System.ComponentModel.INotifyPropertyChanged { + + private importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueCurrentValue[] currentValueField; + + private OneRateMeteringValueImportType[] controlValueField; + + private importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueVerificationValue verificationValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentValue", Order=0)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueCurrentValue[] CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ControlValue", Order=1)] + public OneRateMeteringValueImportType[] ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueVerificationValue VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueCurrentValue : OneRateMeteringValueImportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesOneRateDeviceValueVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private OneRateMeteringValueBaseType[] startValueField; + + private OneRateMeteringValueBaseType[] endValueField; + + private object itemField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("StartValue", Order=3)] + public OneRateMeteringValueBaseType[] StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EndValue", Order=4)] + public OneRateMeteringValueBaseType[] EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=6)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValue : object, System.ComponentModel.INotifyPropertyChanged { + + private importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueCurrentValue[] currentValueField; + + private VolumeMeteringValueImportType[] controlValueField; + + private importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueVerificationValue verificationValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentValue", Order=0)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueCurrentValue[] CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ControlValue", Order=1)] + public VolumeMeteringValueImportType[] ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueVerificationValue VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueCurrentValue : VolumeMeteringValueImportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class importMeteringDeviceValuesRequestMeteringDevicesValuesVolumeDeviceValueVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private VolumeMeteringValueBaseType[] startValueField; + + private VolumeMeteringValueBaseType[] endValueField; + + private object itemField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("StartValue", Order=3)] + public VolumeMeteringValueBaseType[] StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EndValue", Order=4)] + public VolumeMeteringValueBaseType[] EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=6)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ResultHeader : HeaderType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private AckRequestAck ackField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AckRequestAck Ack { + get { + return this.ackField; + } + set { + this.ackField = value; + this.RaisePropertyChanged("Ack"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequestAck : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private string requesterMessageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RequesterMessageGUID { + get { + return this.requesterMessageGUIDField; + } + set { + this.requesterMessageGUIDField = value; + this.RaisePropertyChanged("RequesterMessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importMeteringDeviceValuesRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest importMeteringDeviceValuesRequest; + + public importMeteringDeviceValuesRequest1() { + } + + public importMeteringDeviceValuesRequest1(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest importMeteringDeviceValuesRequest) { + this.RequestHeader = RequestHeader; + this.importMeteringDeviceValuesRequest = importMeteringDeviceValuesRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importMeteringDeviceValuesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest; + + public importMeteringDeviceValuesResponse() { + } + + public importMeteringDeviceValuesResponse(Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryRequest : BaseType { + + private string[] fIASHouseGuidField; + + private string exportMeteringDeviceRootGUIDField; + + private object[] itemsField; + + private ItemsChoiceType4[] itemsElementNameField; + + private System.DateTime commissioningDateFromField; + + private bool commissioningDateFromFieldSpecified; + + private System.DateTime commissioningDateToField; + + private bool commissioningDateToFieldSpecified; + + private bool serchArchivedField; + + private bool serchArchivedFieldSpecified; + + private System.DateTime archiveDateFromField; + + private bool archiveDateFromFieldSpecified; + + private System.DateTime archiveDateToField; + + private bool archiveDateToFieldSpecified; + + private System.DateTime inputDateFromField; + + private bool inputDateFromFieldSpecified; + + private System.DateTime inputDateToField; + + private bool inputDateToFieldSpecified; + + private bool excludePersonAsDataSourceField; + + private bool excludePersonAsDataSourceFieldSpecified; + + private bool excludeCurrentOrgAsDataSourceField; + + private bool excludeCurrentOrgAsDataSourceFieldSpecified; + + private bool excludeOtherOrgAsDataSourceField; + + private bool excludeOtherOrgAsDataSourceFieldSpecified; + + private bool excludeISValuesField; + + private bool excludeISValuesFieldSpecified; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ExportMeteringDeviceRootGUID { + get { + return this.exportMeteringDeviceRootGUIDField; + } + set { + this.exportMeteringDeviceRootGUIDField = value; + this.RaisePropertyChanged("ExportMeteringDeviceRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceRootGUID", typeof(string), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceType", typeof(nsiRef), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResource", typeof(nsiRef), Order=2)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=3)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType4[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime CommissioningDateFrom { + get { + return this.commissioningDateFromField; + } + set { + this.commissioningDateFromField = value; + this.RaisePropertyChanged("CommissioningDateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CommissioningDateFromSpecified { + get { + return this.commissioningDateFromFieldSpecified; + } + set { + this.commissioningDateFromFieldSpecified = value; + this.RaisePropertyChanged("CommissioningDateFromSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime CommissioningDateTo { + get { + return this.commissioningDateToField; + } + set { + this.commissioningDateToField = value; + this.RaisePropertyChanged("CommissioningDateTo"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CommissioningDateToSpecified { + get { + return this.commissioningDateToFieldSpecified; + } + set { + this.commissioningDateToFieldSpecified = value; + this.RaisePropertyChanged("CommissioningDateToSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool SerchArchived { + get { + return this.serchArchivedField; + } + set { + this.serchArchivedField = value; + this.RaisePropertyChanged("SerchArchived"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SerchArchivedSpecified { + get { + return this.serchArchivedFieldSpecified; + } + set { + this.serchArchivedFieldSpecified = value; + this.RaisePropertyChanged("SerchArchivedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=7)] + public System.DateTime ArchiveDateFrom { + get { + return this.archiveDateFromField; + } + set { + this.archiveDateFromField = value; + this.RaisePropertyChanged("ArchiveDateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ArchiveDateFromSpecified { + get { + return this.archiveDateFromFieldSpecified; + } + set { + this.archiveDateFromFieldSpecified = value; + this.RaisePropertyChanged("ArchiveDateFromSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=8)] + public System.DateTime ArchiveDateTo { + get { + return this.archiveDateToField; + } + set { + this.archiveDateToField = value; + this.RaisePropertyChanged("ArchiveDateTo"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ArchiveDateToSpecified { + get { + return this.archiveDateToFieldSpecified; + } + set { + this.archiveDateToFieldSpecified = value; + this.RaisePropertyChanged("ArchiveDateToSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=9)] + public System.DateTime inputDateFrom { + get { + return this.inputDateFromField; + } + set { + this.inputDateFromField = value; + this.RaisePropertyChanged("inputDateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool inputDateFromSpecified { + get { + return this.inputDateFromFieldSpecified; + } + set { + this.inputDateFromFieldSpecified = value; + this.RaisePropertyChanged("inputDateFromSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=10)] + public System.DateTime inputDateTo { + get { + return this.inputDateToField; + } + set { + this.inputDateToField = value; + this.RaisePropertyChanged("inputDateTo"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool inputDateToSpecified { + get { + return this.inputDateToFieldSpecified; + } + set { + this.inputDateToFieldSpecified = value; + this.RaisePropertyChanged("inputDateToSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool ExcludePersonAsDataSource { + get { + return this.excludePersonAsDataSourceField; + } + set { + this.excludePersonAsDataSourceField = value; + this.RaisePropertyChanged("ExcludePersonAsDataSource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ExcludePersonAsDataSourceSpecified { + get { + return this.excludePersonAsDataSourceFieldSpecified; + } + set { + this.excludePersonAsDataSourceFieldSpecified = value; + this.RaisePropertyChanged("ExcludePersonAsDataSourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool ExcludeCurrentOrgAsDataSource { + get { + return this.excludeCurrentOrgAsDataSourceField; + } + set { + this.excludeCurrentOrgAsDataSourceField = value; + this.RaisePropertyChanged("ExcludeCurrentOrgAsDataSource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ExcludeCurrentOrgAsDataSourceSpecified { + get { + return this.excludeCurrentOrgAsDataSourceFieldSpecified; + } + set { + this.excludeCurrentOrgAsDataSourceFieldSpecified = value; + this.RaisePropertyChanged("ExcludeCurrentOrgAsDataSourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool ExcludeOtherOrgAsDataSource { + get { + return this.excludeOtherOrgAsDataSourceField; + } + set { + this.excludeOtherOrgAsDataSourceField = value; + this.RaisePropertyChanged("ExcludeOtherOrgAsDataSource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ExcludeOtherOrgAsDataSourceSpecified { + get { + return this.excludeOtherOrgAsDataSourceFieldSpecified; + } + set { + this.excludeOtherOrgAsDataSourceFieldSpecified = value; + this.RaisePropertyChanged("ExcludeOtherOrgAsDataSourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool excludeISValues { + get { + return this.excludeISValuesField; + } + set { + this.excludeISValuesField = value; + this.RaisePropertyChanged("excludeISValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool excludeISValuesSpecified { + get { + return this.excludeISValuesFieldSpecified; + } + set { + this.excludeISValuesFieldSpecified = value; + this.RaisePropertyChanged("excludeISValuesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/", IncludeInSchema=false)] + public enum ItemsChoiceType4 { + + /// + MeteringDeviceRootGUID, + + /// + MeteringDeviceType, + + /// + MunicipalResource, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportMeteringDeviceHistoryRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest exportMeteringDeviceHistoryRequest; + + public exportMeteringDeviceHistoryRequest1() { + } + + public exportMeteringDeviceHistoryRequest1(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest exportMeteringDeviceHistoryRequest) { + this.RequestHeader = RequestHeader; + this.exportMeteringDeviceHistoryRequest = exportMeteringDeviceHistoryRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportMeteringDeviceHistoryResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest; + + public exportMeteringDeviceHistoryResponse() { + } + + public exportMeteringDeviceHistoryResponse(Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class getStateRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class getStateResult : BaseAsyncResponseType { + + private object[] itemsField; + + private string versionField; + + public getStateResult() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportResult", typeof(CommonResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PagedOutput", typeof(getStateResultPagedOutput), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportMeteringDeviceHistoryResult", typeof(exportMeteringDeviceHistoryResultType), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ErrorMessageType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string descriptionField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string gUIDField; + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(CommonResultTypeError), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UniqueNumber", typeof(string), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UpdateDate", typeof(System.DateTime), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultTypeError : ErrorMessageType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class getStateResultPagedOutput : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ExportMeteringDeviceRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LastPage", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringDeviceRootGUIDField; + + private string hCSHouseGUIDField; + + private string fIASHouseGuidField; + + private object itemField; + + private exportMeteringDeviceHistoryResultTypeArchivedValues archivedValuesField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceRootGUID { + get { + return this.meteringDeviceRootGUIDField; + } + set { + this.meteringDeviceRootGUIDField = value; + this.RaisePropertyChanged("MeteringDeviceRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string HCSHouseGUID { + get { + return this.hCSHouseGUIDField; + } + set { + this.hCSHouseGUIDField = value; + this.RaisePropertyChanged("HCSHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ElectricDeviceValue", typeof(exportMeteringDeviceHistoryResultTypeElectricDeviceValue), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("OneRateDeviceValue", typeof(exportMeteringDeviceHistoryResultTypeOneRateDeviceValue), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("VolumeDeviceValue", typeof(exportMeteringDeviceHistoryResultTypeVolumeDeviceValue), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportMeteringDeviceHistoryResultTypeArchivedValues ArchivedValues { + get { + return this.archivedValuesField; + } + set { + this.archivedValuesField = value; + this.RaisePropertyChanged("ArchivedValues"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeElectricDeviceValue : object, System.ComponentModel.INotifyPropertyChanged { + + private ElectricMeteringValueExportType1 baseValueField; + + private exportMeteringDeviceHistoryResultTypeElectricDeviceValueValues valuesField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ElectricMeteringValueExportType1 BaseValue { + get { + return this.baseValueField; + } + set { + this.baseValueField = value; + this.RaisePropertyChanged("BaseValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportMeteringDeviceHistoryResultTypeElectricDeviceValueValues Values { + get { + return this.valuesField; + } + set { + this.valuesField = value; + this.RaisePropertyChanged("Values"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeElectricDeviceValueValues : object, System.ComponentModel.INotifyPropertyChanged { + + private exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesCurrentValue[] currentValueField; + + private ElectricCurrentMeteringValueExportType[] controlValueField; + + private exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesVerificationValue[] verificationValueField; + + private bool excludeISValuesField; + + private bool excludeISValuesFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentValue", Order=0)] + public exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesCurrentValue[] CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ControlValue", Order=1)] + public ElectricCurrentMeteringValueExportType[] ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VerificationValue", Order=2)] + public exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesVerificationValue[] VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool excludeISValues { + get { + return this.excludeISValuesField; + } + set { + this.excludeISValuesField = value; + this.RaisePropertyChanged("excludeISValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool excludeISValuesSpecified { + get { + return this.excludeISValuesFieldSpecified; + } + set { + this.excludeISValuesFieldSpecified = value; + this.RaisePropertyChanged("excludeISValuesSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesCurrentValue : ElectricCurrentMeteringValueExportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeElectricDeviceValueValuesVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private ElectricMeteringValueExportType1 startValueField; + + private ElectricMeteringValueExportType1 endValueField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ElectricMeteringValueExportType1 StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ElectricMeteringValueExportType1 EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeOneRateDeviceValue : object, System.ComponentModel.INotifyPropertyChanged { + + private OneRateMeteringValueExportType1[] baseValueField; + + private exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValues valuesField; + + /// + [System.Xml.Serialization.XmlElementAttribute("BaseValue", Order=0)] + public OneRateMeteringValueExportType1[] BaseValue { + get { + return this.baseValueField; + } + set { + this.baseValueField = value; + this.RaisePropertyChanged("BaseValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValues Values { + get { + return this.valuesField; + } + set { + this.valuesField = value; + this.RaisePropertyChanged("Values"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValues : object, System.ComponentModel.INotifyPropertyChanged { + + private exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesCurrentValue[] currentValueField; + + private OneRateCurrentMeteringValueExportType[] controlValueField; + + private exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesVerificationValue[] verificationValueField; + + private bool excludeISValuesField; + + private bool excludeISValuesFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentValue", Order=0)] + public exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesCurrentValue[] CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ControlValue", Order=1)] + public OneRateCurrentMeteringValueExportType[] ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VerificationValue", Order=2)] + public exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesVerificationValue[] VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool excludeISValues { + get { + return this.excludeISValuesField; + } + set { + this.excludeISValuesField = value; + this.RaisePropertyChanged("excludeISValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool excludeISValuesSpecified { + get { + return this.excludeISValuesFieldSpecified; + } + set { + this.excludeISValuesFieldSpecified = value; + this.RaisePropertyChanged("excludeISValuesSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesCurrentValue : OneRateCurrentMeteringValueExportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeOneRateDeviceValueValuesVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private OneRateMeteringValueExportType1[] startValueField; + + private OneRateMeteringValueExportType1[] endValueField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("StartValue", Order=3)] + public OneRateMeteringValueExportType1[] StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EndValue", Order=4)] + public OneRateMeteringValueExportType1[] EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeVolumeDeviceValue : VolumeMeteringValueExportType { + + private bool excludeISValuesField; + + private bool excludeISValuesFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool excludeISValues { + get { + return this.excludeISValuesField; + } + set { + this.excludeISValuesField = value; + this.RaisePropertyChanged("excludeISValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool excludeISValuesSpecified { + get { + return this.excludeISValuesFieldSpecified; + } + set { + this.excludeISValuesFieldSpecified = value; + this.RaisePropertyChanged("excludeISValuesSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private VolumeMeteringValueExportTypeCurrentValue[] currentValueField; + + private VolumeCurrentMeteringValueExportType[] controlValueField; + + private VolumeMeteringValueExportTypeVerificationValue[] verificationValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentValue", Order=0)] + public VolumeMeteringValueExportTypeCurrentValue[] CurrentValue { + get { + return this.currentValueField; + } + set { + this.currentValueField = value; + this.RaisePropertyChanged("CurrentValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ControlValue", Order=1)] + public VolumeCurrentMeteringValueExportType[] ControlValue { + get { + return this.controlValueField; + } + set { + this.controlValueField = value; + this.RaisePropertyChanged("ControlValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VerificationValue", Order=2)] + public VolumeMeteringValueExportTypeVerificationValue[] VerificationValue { + get { + return this.verificationValueField; + } + set { + this.verificationValueField = value; + this.RaisePropertyChanged("VerificationValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueExportTypeCurrentValue : VolumeCurrentMeteringValueExportType { + + private YearMonth periodField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public YearMonth Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class VolumeMeteringValueExportTypeVerificationValue : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime startDateValueField; + + private System.DateTime endDateValueField; + + private System.DateTime sealDateField; + + private VolumeMeteringValueExportBaseType[] startValueField; + + private VolumeMeteringValueExportBaseType[] endValueField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime StartDateValue { + get { + return this.startDateValueField; + } + set { + this.startDateValueField = value; + this.RaisePropertyChanged("StartDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDateValue { + get { + return this.endDateValueField; + } + set { + this.endDateValueField = value; + this.RaisePropertyChanged("EndDateValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime SealDate { + get { + return this.sealDateField; + } + set { + this.sealDateField = value; + this.RaisePropertyChanged("SealDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("StartValue", Order=3)] + public VolumeMeteringValueExportBaseType[] StartValue { + get { + return this.startValueField; + } + set { + this.startValueField = value; + this.RaisePropertyChanged("StartValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EndValue", Order=4)] + public VolumeMeteringValueExportBaseType[] EndValue { + get { + return this.endValueField; + } + set { + this.endValueField = value; + this.RaisePropertyChanged("EndValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("VerificationReason", typeof(nsiRef), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/")] + public partial class exportMeteringDeviceHistoryResultTypeArchivedValues : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef archivingReasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ArchivingReason { + get { + return this.archivingReasonField; + } + set { + this.archivingReasonField = value; + this.RaisePropertyChanged("ArchivingReason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest getStateRequest; + + public getStateRequest1() { + } + + public getStateRequest1(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest getStateRequest) { + this.RequestHeader = RequestHeader; + this.getStateRequest = getStateRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/device-metering/", Order=0)] + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult getStateResult; + + public getStateResponse() { + } + + public getStateResponse(Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult getStateResult) { + this.ResultHeader = ResultHeader; + this.getStateResult = getStateResult; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface DeviceMeteringPortTypesAsyncChannel : Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class DeviceMeteringPortTypesAsyncClient : System.ServiceModel.ClientBase, Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync { + + public DeviceMeteringPortTypesAsyncClient() { + } + + public DeviceMeteringPortTypesAsyncClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public DeviceMeteringPortTypesAsyncClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DeviceMeteringPortTypesAsyncClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DeviceMeteringPortTypesAsyncClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.importMeteringDeviceValues(Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 request) { + return base.Channel.importMeteringDeviceValues(request); + } + + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader importMeteringDeviceValues(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest importMeteringDeviceValuesRequest, out Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importMeteringDeviceValuesRequest = importMeteringDeviceValuesRequest; + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesResponse retVal = ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).importMeteringDeviceValues(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.importMeteringDeviceValuesAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 request) { + return base.Channel.importMeteringDeviceValuesAsync(request); + } + + public System.Threading.Tasks.Task importMeteringDeviceValuesAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest importMeteringDeviceValuesRequest) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.importMeteringDeviceValuesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importMeteringDeviceValuesRequest = importMeteringDeviceValuesRequest; + return ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).importMeteringDeviceValuesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.exportMeteringDeviceHistory(Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 request) { + return base.Channel.exportMeteringDeviceHistory(request); + } + + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader exportMeteringDeviceHistory(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest exportMeteringDeviceHistoryRequest, out Hcs.Service.Async.DeviceMetering.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportMeteringDeviceHistoryRequest = exportMeteringDeviceHistoryRequest; + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryResponse retVal = ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).exportMeteringDeviceHistory(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.exportMeteringDeviceHistoryAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 request) { + return base.Channel.exportMeteringDeviceHistoryAsync(request); + } + + public System.Threading.Tasks.Task exportMeteringDeviceHistoryAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest exportMeteringDeviceHistoryRequest) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.exportMeteringDeviceHistoryRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportMeteringDeviceHistoryRequest = exportMeteringDeviceHistoryRequest; + return ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).exportMeteringDeviceHistoryAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.getState(Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getState(request); + } + + public Hcs.Service.Async.DeviceMetering.v14_5_0_1.ResultHeader getState(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest getStateRequest, out Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResult getStateResult) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateResponse retVal = ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).getState(inValue); + getStateResult = retVal.getStateResult; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync.getStateAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getStateAsync(request); + } + + public System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.DeviceMetering.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest getStateRequest) { + Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.DeviceMetering.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + return ((Hcs.Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync)(this)).getStateAsync(inValue); + } + } +} diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.svcmap b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.svcmap new file mode 100644 index 0000000..6312156 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/Reference.svcmap @@ -0,0 +1,36 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration.svcinfo b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration.svcinfo new file mode 100644 index 0000000..f56eadb --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration91.svcinfo b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration91.svcinfo new file mode 100644 index 0000000..6cbd01d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + DeviceMeteringBindingAsync + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + DeviceMeteringBindingAsync1 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://api.dom.gosuslugi.ru/ext-bus-device-metering-service/services/DeviceMeteringAsync + + + + + + basicHttpBinding + + + DeviceMeteringBindingAsync + + + Service.Async.DeviceMetering.v14_5_0_1.DeviceMeteringPortTypesAsync + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + DeviceMeteringPortAsync + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-base.xsd b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-base.xsd new file mode 100644 index 0000000..bbf262e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-base.xsd @@ -0,0 +1,861 @@ + + + + + + Строка не более 2000 символов. + + + + + + + + Строка не более 1500 символов. + + + + + + + + Строка не более 300 символов. + + + + + + + + Скалярный тип. Строка не более 255 символов. + + + + + + + + + Скалярный тип. Строка не более 100 символов. + + + + + + + + Скалярный тип. Строка не более 250 символов. + + + + + + + + Скалярный тип. Строка не более 500 символов. + + + + + + + + Строка не более 60 символов. + + + + + + + + Текстовое поле 2000 + + + + + + + + Непустая строка + + + + + + + + + Базовый тип бизнес-сообщения с подписью + + + + + + + + + Заголовок запроса + + + + + + + + + Идентификатор поставщика данных + + + + + Идентификатор зарегистрированной организации + + + + + Информация о физическом лице + + + + + + Идентификатор физического лица, зарегистрированного в ГИС ЖКХ + + + + + + СНИЛС + + + + + + + + + + Документ, удостоверяющий личность + + + + + + Вид документа, удостоверяющего личность (НСИ №95) + + + + + + Код записи справочника + + + + + + + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + + + + + + Используется подпись Оператора ИС + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164). Только для запросов размещения информации. + + + + + + + + + + Заголовок запроса + + + + + + + + + + + + + + Заголовок ответа + + + + + + + + + + Базовый тип ответа на запрос создания, редактирования, удаления + + + + + + Транспортный идентификатор, определенный постащиком информации + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + Дата модификации + + + + + Уникальный номер + + + + + + + + + + Базовый тип заголовка + + + + + Дата отправки пакета + + + + + Идентификатор сообщения + + + + + + + Вложение + + + + + + Идентификатор сохраненного вложения + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex. + +Элемент обязателен в запросах импорта + + + + + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex + + + + + + + + + + + + Базовый тип, описывающий вложение с открепленными (detached) подписями. В сервисах ГИС ЖКХ, использущих тип SignedAttachmentType, может быть наложено ограничение на максимальное количесво элементов в блоке Signature (см. контроль INT002039). + + + + + Вложение + + + + + Открепленная (detached) подпись + + + + + + + Элемент Fault (для параметра Fault в операции) + + + + Базовый тип для fault-ошибки + + + + + + + + + + + Описание ошибок контролей или бизнес-процесса + + + + + Базовый тип ошибки контроля или бизнес-процесса + + + + + Код ошибки + + + + + Описание ошибки + + + + + StackTrace в случае возникновения исключения + + + + + + + Версия элемента, начиная с которой поддерживается совместимость + + + + + Возврат квитанции приема сообщения + + + + + + Квитанция + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + Идентификатор сообщения, присвоенный поставщиком + + + + + + + + + + + Запрос статуса отправленного сообщения + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + Запрос списка обработанных сообщений + + + + + + Массив идентификаторов сообщений, присвоенных ГИС ЖКХ + + + + + + + + Ответ на запрос списка обработанных сообщений + + + + + + + + Список идентификаторов сообщений, присвоенный ГИС ЖКХ + + + + + + + + + + Базовый тип ответа на запрос статуса + + + + + + + Статус обработки + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + + Результат выполнения C_UD + + + + + Идентификатор создаваемой/изменяемой сущности + + + + + Транспортный идентификатор + + + + + + Операция выполнена успешно + + + + Уникальный реестровый номер + + + + + Дата модификации + + + + + + Описание ошибки + + + + + + + + + + + + + Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано) + + + + + + + + + + Транспортный идентификатор + + + + + GUID-тип. + + + + + + + + Дата модификации объекта + + + + + Тип, описывающий год + + + + + + + + Тип, описывающий месяц + + + + + + + + + Месяц + + + + + Год + + + + + + + + + + + Определенный месяц определенного года + + + + + + + + + Временной период (обе даты обязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Открытый временной период (даты необязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Тип объема + + + + + + + + + + Ссылка на субъект РФ (ФИАС) + + + + + Код региона (ФИАС) + + + + + + + + + + Полное наименование + + + + + + + + + + + + Ссылка на ОКТМО + + + + + Код по ОКТМО + + + + + + + + + + + Полное наименование + + + + + + + + + + + + + + + + + Код ОКЕИ + + + + + Идентификатор зарегистрированной организации + + + + + Базовый тип документа ОЧ + + + + + Наименование документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата принятия документа органом власти + + + + + Вложение + + + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164) + + + + + + Наименование ИС + + + + + Наименование Оператора ИС + + + + + + + + Код по ОКТМО + + + + + + + + + Код по ОКТМО + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-service-async.wsdl b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-service-async.wsdl new file mode 100644 index 0000000..1cd3509 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-service-async.wsdl @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Передать показания ПУ + + + + + + Получить историю показаний ПУ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Асинхронный сервис управления приборами учета и передачей показаний + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-types.xsd b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-types.xsd new file mode 100644 index 0000000..4ef102c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-device-metering-types.xsd @@ -0,0 +1,997 @@ + + + + + + + + ?????????????????? ?????????????????????????? ????. ???????????????????????? ?????? ?????????????? ?????????????? ?? ?????????????????????? ?????????????????? ???? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????? ?????????????????????????? ????. ???????????????????????? ?????? ?????????????? ?????????????? ?? ?????????????????????? ?????????????????? ???? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + + ???????????? ????, ?????????????????????? ?????????? ?????????????????????? ????. ???????????????????????? ?????? ?????????????? ?????????????? ?? ?????????????????????? ?????????????? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + + ?????????????? ?????????????????? ?????????????????????????? ????: ???????????????????????? ????????????, ???????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????, ????????-?????????? ???????????????? ?? ??????????????. ???????????????????????? ?????? ???????????????? ?????????????? ?????????????????? ???? ?? ?????????????????? ???? ???????????? / ?????????????????? ?????????????? + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + + + + + ?????????????????? ???????????????????????????? ????: ???????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????, ????????-?????????? ???????????????? ?? ??????????????. ???????????????????????? ?????? ???????????????? ?????????????? ?????????????????? ???? ?? ?????????????????? ???? ???????????? / ?????????????????? ?????????????? + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? ???? ???????????? T1 + + + + + ???????????????? ???? ???????????? T2 + + + + + ???????????????? ???? ???????????? T3 + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + + + + + ?????????????? ?????????????????? ?????????????????????????? ????: ?????????????????? ?????? ?????????????? ?????????????????? ?????????????????????????? ???? ?????????? ???????????? ??????????????????. ???????????????????????? ?????? ???????????????? ?????????????? ?? ?????????????????????? ?????????????????? ???? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + ?????????????? ?????????????????? ???????????????????????????? ????: ?????????????????? ?????? ?????????????? ?????????????????? ???????????????????????????? ???? ?????????? ???????????? ??????????????????. ???????????????????????? ?????? ???????????????? ?????????????? ?? ?????????????????????? ?????????????????? ???? ???????????????????????????? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + ???????????? ?????????????? ?????????????????? ????, ?????????????????????? ?????????? ?????????????????????????? ?????????????????????????? ??????????????: ???????????????????????? ????????????, ???????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????. ???????????????????????? ?????? ???????????????? ?????????????????? ???? ???????????? / ?????????????????? ?????????????? + + + + + + + ?????? ?????????????? + + + + + ?????????????????????????? ??????????????????????, ?????????????? ?????????? ???????????? ?? ??????????????. ???? ??????????????????????, ???????? ???????????? ???????? ?????????????? ?????????????????????? + + + + + ???????? ?? ?????????? ???????????????? ?? ?????????????? + + + + + ?????? ?????????????? ?????????????????? ?????????????? ?????????????????????? (???? ???????????????????????? ???????????????????????????? ????????). ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + ???????????????? ?????????????? ?????????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? ???? ???????????? T1 + + + + + ???????????????? ???? ???????????? T2 + + + + + ???????????????? ???? ???????????? T3 + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + + + + + ???????????? ?????????????? ?????????????????? ????, ?????????????????????? ?????????? ?????????????????????????? ?????????????????????????? ??????????????: ?????????????????? ?????????????? ?????? ?????????? ???????????? ??????????????????. ???????????????????????? ?????? ???????????????? ?????????????? ?? ?????????????????????? ?????????????????? + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + ???????????????????????????? ???????? ?????????????????? ???? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????) (???????????????????????? ?????? ???????????????? ??????????????????) + + + + + ?????????? ?????????????????????? ???? ???????????? + + + + + + + + ????????????, ?? ???????????????? ?????????????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????? + + + + + ???????????? ??????????????, ???? ???????????????? ?????????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????? ???? ???????????? ?????????????? + + + + + ?????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + + + ???????????? ?????????????????? ???????????????? ??????????. ?????????????????? ?????????????????????????? ?? ???????????????? ??????????????????, ?????????????? ?????????????????? ?????????????? ?????????? ?????? ?????? ????????????????. (?????????????????? ?????????????????? ????: ?????? ???????????????????????? ???????????????? "???????????????? ????????", "?????????????? ????????", "?????????????? ?????????????? ????????" - 112 (????????) ?? 113 (???????????????????? ????????); ?????? ???? "?????????????????????????? ??????????????" - 245 (????????????????-??????); ?????? ???? "??????" - 113 (???????????????????? ????????); ?????? ???? "???????????????? ??????????????" - 233 (??????????????????????), 245 (????????????????-??????), 246 (????????????????-??????), 271 (????????????), A056 (????????????????????) ?? A058 (????????????????????)) + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????? ?? ???????????? ???????????????????????? ???????????????? ???? + + + + + + + ?????????????????????????? ???? + + + + + ?????????????????????????? ???????????? ???? + + + + + + + ?????????????????? ???? ???? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + + ?????????????????? ???? ???????????? + + + + + + + + ????????????, ???? ?????????????? ???????????????????? ??????????????????. + +???????? ???? ????????????, ???? ?????????????????? ?????????????????? ?? ???????????? ???????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????????????? + + + + + ?????????????????? ??????????????, ???? ???????????????? ?????????????? ???????? ???????????????????????? ?? ???????????? ???????????? ???? ?????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????????????? ???? ???????????? ?????????????? + + + + + ?????????????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + + + + + ?????????????????? ???? ???? (?????????????????????????? ??????????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + + ?????????????????? ???? ???????????? + + + + + + + + ????????????, ???? ?????????????? ???????????????????? ??????????????????. + +???????? ???? ????????????, ???? ?????????????????? ?????????????????? ?? ???????????? ???????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????????????? + + + + + ?????????????????? ??????????????, ???? ???????????????? ?????????????? ???????? ???????????????????????? ?? ???????????? ???????????? ???? ?????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????????????? ???? ???????????? ?????????????? + + + + + ?????????????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + + + + + ???????????? ???????????????????????? ???????????????? ???? ???? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????? ?????????????????????????? ???? + + + + + + ?????????? ?????????????????????? ???? ???????????? + + + + + + + + ????????????, ???? ?????????????? ???????????????????? ??????????????????. + +???????? ???? ????????????, ???? ?????????????????? ?????????????????? ?? ???????????? ???????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????? + + + + + ???????????????? ?? ??????????????, ???? ???????????????? ?????????????? ???????? ???????????????????????? ?? ???????????? ???????????? ???? ?????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????? ???? ???????????? ?????????????? + + + + + ?????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + + + + + + + + + + + + + + + + + + + ?????????????? ?????????????? ?????????????????? ?? ?????????????? ???????????????? ?????????? (????) ????????????????????????, ?????????????????????????? ?? ?????????????????? ????????. ?????????????????????? ???????????????? ???????????????????? ??????????. ?????????? ?????????????????????? ???? ?????????????????? ???? ???????????? ???????? (?? ???????? ???????????? ???????????????????????????? ???????????? ???? ???????? ???? ????????????????????????). ???????? ???????????????? ?????????????? ???? 2-?? ?? ?????????? (?????? ????????) ??????????, ???? ???????????? ???????????????????????????? ??????????????, ?????????????????????? ???? ?????????? 1000 ???? ?? ???????????? ??????????. ?????? ???????????????? 2-???? ?? ?????????????????????? ???????????? ???????????????????? ?????????????????? ???????????? ?? ???????? ???? ???????????????????? ???????????????????? ?? ?????????????? ?? ?????? ?????????????? ExportMeteringDeviceRootGUID + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ????????, ?? ?????????????? ???????????????????? ???? ????????????????????????. ?????????????????????? ???????????????? ???????????????????? ??????????????????. ???????? ???? ????????????, ???? ?????????? ???????????????????????????????? ???????????? ???? ???????? ???? ???????????????????????? + + + + + ?????????????????????????? ???? ?? ?????? ??????, ???????????????????????? ?????? ???????????????? 2-???? ?? ?????????????????????? ???????????? ???????????? (????. ?????????????????? ?????????????????? ????????????????). ???????????? ?????????????????????? ????????????????, ???????????????????? ?? ???????????????? exportMeteringDeviceHistoryResult/PagedOutput/ExportMeteringDeviceRootGUID ?????? ???????????????? ?????????????????????? ?????????? ????????????. ?????? ???????????????? ?????????????? ?????????? ???????????? ?????????????? ???? ?????????????????????? + + + + + + ?????? ?????????????? ?????????? (?????? 27) + + + + + ?????? ?????????????????????????? ?????????????? (?????? 2) + + + + + ?????????????????????????? ???? + + + + + + ???????? ?????????? ?? ???????????????????????? ?????? + + + + + ???????? ?????????? ?? ???????????????????????? ???????? + + + + + ?????????????????? ???????????????????????????? + + + + + ???????? ?????????????????? ?????? + + + + + ???????? ?????????????????? ???????? + + + + + ???????? ???????????? ??????????????, ???? ?????????????? ?????????????????????? ?????????????????? ?? ?????????????? ???? (???? ???????? ???????????? ??????????????????). ???????????????? ???? ??????????????????: 1-?? ?????????? ?????????????????????? ???????????????????????? ????????????. ???????????? ???????????????? ?????????????????? ???? (???????????????????????? ???????????????????? inputDateFrom ?? inputDateTo) ???? ???????????? ???????????????? ???? ?????????????? ???????? ???????????????????????????????? ?????????????????????? ?????????????? + + + + + ???????? ?????????????????? ??????????????, ???? ?????????????? ?????????????????????? ?????????????????? ?? ?????????????? ???? (???? ???????? ???????????? ??????????????????). ???????????????? ???? ??????????????????: ?????????????? ????????. ???????????? ???????????????? ?????????????????? ???? (???????????????????????? ???????????????????? inputDateFrom ?? inputDateTo) ???? ???????????? ???????????????? ???? ?????????????? ???????? ???????????????????????????????? ?????????????????????? ?????????????? + + + + + ???????? ???????? ?????????????? ?????? ??????????????????????, ???? ??????????????????, ?????????????????? ?? ?????????????? ??????????????????????, ???????????????????? ?? ????????????????. ???????? ???????? ????????????????????, ???? ?????????? ?????????????????? ?? ???????????????? ???? ???????????????????? + + + + + ???????? ???????? ?????????????? ?????? ??????????????????????, ???? ??????????????????, ?????????????????? ?? ?????????????? ?????????????? ????????????????????????, ???????????????????? ?? ???????????????? (?????? ??????????????, ?????? ???? ???????????????????? ???????? excludeISValues). ???????? ???????? ????????????????????, ???? ?????????? ?????????????????? ?? ???????????????? ???? ???????????????????? + + + + + ???????? ???????? ?????????????? ?????? ??????????????????????, ???? ??????????????????, ?????????????????? ?? ?????????????? ?????????????????????????? ???????????????? ???? ??????????????, ???????????????????? ?? ????????????????. ???????? ???????? ????????????????????, ???? ?????????? ?????????????????? ?? ???????????????? ???? ???????????????????? + + + + + ???????? ???????? ????????????????????, ???? ?? ???????????????? ???????????????????? ???????????? ??????????????????, ?????????????????? ?? ???????????? ???????????????? ?????? ?????????????????????? ?????????????????????????? ???????????????? ???? ??????????????. ?? ?????????????????? ?????????????? ?????????????????????? ?????? ??????????????????. (???????????????????? ????????????????????????????????, ?????????????? ?????????????????????????? ?????????????? ExcludePersonAsDataSource, ExcludeCurrentOrgAsDataSource, ExcludeOtherOrgAsDataSource) + + + + + + + + + + + ?????????????? ?????????????????? ?? ?????????????? ???????????????? ??????????. ???????????????? ?????????????????? ?? ?????????????? ?????????????????????? ?? ???????????????? ?????????????????? (????), ?????????????? ?????????????????? ?????????????? ?????????? ?????? ?????? ????????????????. ???????? ???? ?????????????? ?????????? ???????????????????? ???? ???? ?????????????????????????? ?????????????? (????) ???? ??????????????????, ???? ?????????????????????????? ?????????????????????? ???????????????? ?????????????????? ?? ?????????????? ?? ???? ???? ???? ?????????????????? + + + + + ?????????????????????????? ???? + + + + + ???????????????????? ?????????????????????????? ????????-?????????? ?????????????????? ???? (?? ?????? ??????). ?????????????????????? ????????????, ?????????? ????????????, ?????????? ?? ?????????????? exportMeteringDeviceHistoryRequest ???????????? ?????????? ???????? ?????????????? tns:FIASHouseGuid + + + + + ???????????????????? ?????????????????????????? ????????-?????????? ?????????????????? ???? (???? ????????). ?????????????????????? ????????????, ?????????? ????????????, ?????????? ?? ?????????????? exportMeteringDeviceHistoryRequest ???????????? ?????????? ???????? ?????????????? tns:FIASHouseGuid + + + + + + ?????????????????? ???? ?????????????? ????????????????/?????????????? ????????; ????????; ???????????????? ??????????????. ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + + ?????????????? ?????????????????? + + + + + ?????????????????? + + + + + + ?????????????????? ???? ???????????? + + + + + + + + ????????????, ?? ???????????????? ?????????????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????????????? + + + + + ?????????????????? ??????????????, ???? ???????????????? ?????????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????????????? ???? ???????????? ?????????????? + + + + + ?????????????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + ?????????????????? ??????????????????, ?????????????????? ?????????????? ???? ?????????????? ????. +(?????????? ?????????????????? ?????????? ???????? ?????????????? ???? ???????????? ?????????? ??????, ?? ?? ?????????????? ???????????? ????) ???????? ???????? = "????????????", ???? ?????????????????????? ??????????????????, ?????????????????? ?????????? ?????? ?? ?? ?????????????? ???????????? ????, ?? ?????????????????? ?????????????? ?????????????????????? ?????? ?????????????????? + + + + + + + + + + + ?????????????????? ???? ?????????????? ????????????????????????????. ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + + ?????????????? ?????????????????? + + + + + ?????????????????? + + + + + + ?????????????????? ???? ???????????? + + + + + + + + ????????????, ?? ???????????????? ?????????????????? ?????????????????? + + + + + + + + + + ?????????????????????? ?????????????????? + + + + + ?????????????????? ??????????????, ???? ???????????????? ?????????????? + + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????? ?????????????????????????????? ???? ?????????? ?????????????? + + + + + ?????????????????? ???? ???????????? ?????????????? + + + + + ?????????????????? ???? ?????????????????? ?????????????? + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????????? ???????????? ???? ???? ?????????? (?????? 224). ???????????????? ?????? ???????????????????? ??????????????. + + + + + + + + + ?????????????????? ??????????????????, ?????????????????? ?????????????? ???? ?????????????? ????. +(?????????? ?????????????????? ?????????? ???????? ?????????????? ???? ???????????? ?????????? ??????, ?? ?? ?????????????? ???????????? ????) ???????? ???????? = "????????????", ???? ?????????????????????? ??????????????????, ?????????????????? ?????????? ?????? ?? ?? ?????????????? ???????????? ????, ?? ?????????????????? ?????????????? ?????????????????????? ?????? ?????????????????? + + + + + + + + + + + ???????????? ?????????????????????? ???????????????? ???? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????? ?????????????????????????? ???? + + + + + + + + ?????????????????? ????????????, ?????????????????? ?????????????? ???? ?????????????? ????. +(?????????? ???????????? ?????????? ???????? ?????????????? ???? ???????????? ?????????? ??????, ?? ?? ?????????????? ???????????? ????) ???????? ???????? = "????????????", ???? ?????????????????????? ????????????, ?????????????????? ?????????? ?????? ?? ?? ?????????????? ???????????? ????, ?? ?????????????????? ?????????????? ?????????????????????? ?????? ???????????? + + + + + + + + + + + ???????????? ???? ?????????????????? ???? + + + + + + ?????????????? ??????????????????. ???????????? ???? ?????? "?????????????? ?????????????????? ?????????????? ??????????" (???????????????????? ?????????? 21). + + + + + + + + + + ?????????????? ?????????????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + ??????????????????, ???????????????????????? ?????? ???????????????? ?????????????????? ?? ?????????????? ???? ??????????????, ?????????????????????? ???? ?????????? 1000 ???? ?? ???????????? ??????????. ?????????????????????? ????????????, ?????????? ????????????, ?????????? ?? ?????????????? exportMeteringDeviceHistoryRequest ???????????? ?????????? ???????? ?????????????? tns:FIASHouseGuid + + + + + + ???????????????? ?????????????????????????? ???? ?? ?????? ?????? ?????? ?????????????????? ???????????????????? ?????????? ?????????????? + + + + + ?????????????? ???????????????????? ?????????? ?????????????? + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-metering-device-base.xsd b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-metering-device-base.xsd new file mode 100644 index 0000000..c009401 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-metering-device-base.xsd @@ -0,0 +1,159 @@ + + + + + + + Идентификатор ПУ + + + + + + Показание ПУ. Значение (15 до запятой, 7 после) + + + + + + + + Коммунальный ресурс и показание ПУ для однотарифного ПУ. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Коммунальный ресурс (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Значение + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Показания ПУ электрической энергии. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последние полученные показания в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Объемы потребленных ресурсов по ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) + + + + + Коммунальный ресурс (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Объем по тарифу T1 + + + + + Объем по тарифу T2 + + + + + Объем по тарифу T3 + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-nsi-base.xsd b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-nsi-base.xsd new file mode 100644 index 0000000..cbd302d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/hcs-nsi-base.xsd @@ -0,0 +1,427 @@ + + + + + + + + + + + + Ссылка на справочник + + + + + Код записи справочника + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + Скалярный тип. Наименование справочника. Строка не более 200 символов. + + + + + + + + Скалярный тип. Реестровый номер справочника. Код не более 10 символов. + + + + + + + + Составной тип. Наименование, дата и время последнего изменения справочника. + + + + + Реестровый номер справочника. + + + + + Наименование справочника. + + + + + Дата и время последнего изменения справочника. + + + + + + + Перечень справочников с датой последнего изменения каждого из них. + + + + + Дата и время формирования перечня справочников. + + + + + Наименование, дата и время последнего изменения справочника. + + + + + + + + Данные справочника. + + + + + Реестровый номер справочника. + + + + + Дата и время формирования данных справочника. + + + + + Элемент справочника верхнего уровня. + + + + + + + Составной тип. Элемент справочника. + + + + + Код элемента справочника, уникальный в пределах справочника. + + + + + Глобально-уникальный идентификатор элемента справочника. + + + + + + Дата и время последнего изменения элемента справочника (в том числе создания). + + + + + + Дата начала действия значения + + + + + Дата окончания действия значения + + + + + + + Признак актуальности элемента справочника. + + + + + Наименование и значение поля для элемента справочника. + + + + + Дочерний элемент. + + + + + + + Составной тип. Наименование и значение поля для элемента справочника. Абстрактный тип. + + + + + Наименование поля элемента справочника. + + + + + + + Составной тип. Наименование и значение поля типа "Строка" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Строка". + + + + + + + + + Составной тип. Наименование и значение поля типа "Да/Нет" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Да/Нет". + + + + + + + + + Составной тип. Наименование и значение поля типа "Вещественное" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Вещественное". + + + + + + + + + Составной тип. Наименование и значение поля типа "Дата" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Дата". + + + + + + + + + Составной тип. Наименование и значение поля типа "Целое число" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Целое число". + + + + + + + + + Составной тип. Наименование и значение поля типа "Перечислимый" для элемента справочника. + + + + + + + Запись элемента справочника типа "Перечислимый". + + + + + + Код поля элемента справочника типа "Перечислимый". + + + + + Значение поля элемента справочника типа "Перечислимый". + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на справочник" для элемента справочника. + + + + + + + Ссылка на справочник. + + + + + + Реестровый номер справочника. + + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент внутреннего справочника" для элемента справочника. + + + + + + + Ссылка на элемент внутреннего справочника. + + + + + + Реестровый номер справочника. + + + + + Ссылка на элемент справочника. + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ОКЕИ" для элемента справочника. + + + + + + + Код единицы измерения по справочнику ОКЕИ. + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ФИАС" для элемента справочника. + + + + + + + Ссылка на элемент справочника ФИАС. + + + + + + Идентификационный код позиции в справочнике ФИАС. + + + + + Глобально-уникальный идентификатор адресного объекта в справочнике ФИАС. + + + + + + + + + + + + Составной тип. Наименование и значение поля "Вложение" + + + + + + + Документ + + + + + + + + + Скалярный тип. Наименование поля элемента справочника. Строка не более 200 символов. + + + + + + + + Группа справочника: +NSI - (по умолчанию) общесистемный +NSIRAO - ОЖФ + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/xmldsig-core-schema.xsd b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/xmldsig-core-schema.xsd new file mode 100644 index 0000000..e036087 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.DeviceMetering.v14_5_0_1/xmldsig-core-schema.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest.datasource new file mode 100644 index 0000000..740fe18 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader.datasource new file mode 100644 index 0000000..fd579d1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse.datasource new file mode 100644 index 0000000..c6f6c9e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse.datasource new file mode 100644 index 0000000..e3f0b3c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse.datasource new file mode 100644 index 0000000..8350391 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse.datasource new file mode 100644 index 0000000..91ef645 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse.datasource new file mode 100644 index 0000000..c1130ec --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse.datasource new file mode 100644 index 0000000..f22b06d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse.datasource new file mode 100644 index 0000000..245eb8e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse.datasource new file mode 100644 index 0000000..2d5cb32 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse.datasource new file mode 100644 index 0000000..cc2d548 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse.datasource new file mode 100644 index 0000000..e1e1206 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse.datasource new file mode 100644 index 0000000..ba92e7d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse.datasource new file mode 100644 index 0000000..776d2fe --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse.datasource new file mode 100644 index 0000000..dea0860 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse.datasource new file mode 100644 index 0000000..6d088bb --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse.datasource new file mode 100644 index 0000000..41fe871 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse.datasource new file mode 100644 index 0000000..db6e25c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse.datasource new file mode 100644 index 0000000..9661681 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse.datasource new file mode 100644 index 0000000..af5cce1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse.datasource new file mode 100644 index 0000000..1978099 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse.datasource new file mode 100644 index 0000000..143fb65 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse.datasource new file mode 100644 index 0000000..00a411a --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult.datasource new file mode 100644 index 0000000..a71eb53 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse.datasource new file mode 100644 index 0000000..e712d52 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse.datasource new file mode 100644 index 0000000..26f4729 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse.datasource new file mode 100644 index 0000000..39fa88a --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse.datasource new file mode 100644 index 0000000..fdb0d2c --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse.datasource new file mode 100644 index 0000000..fa6fd93 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse.datasource new file mode 100644 index 0000000..a37c76f --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse.datasource new file mode 100644 index 0000000..0ef645b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse.datasource new file mode 100644 index 0000000..4119fd1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse.datasource new file mode 100644 index 0000000..c449aad --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse.datasource new file mode 100644 index 0000000..fffffd7 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse.datasource new file mode 100644 index 0000000..94b51ab --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse.datasource new file mode 100644 index 0000000..ebfc35b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse.datasource new file mode 100644 index 0000000..6da6cce --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse.datasource new file mode 100644 index 0000000..27c8404 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse.datasource new file mode 100644 index 0000000..84ef87f --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse.datasource new file mode 100644 index 0000000..66687bd --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse.datasource new file mode 100644 index 0000000..11cacb1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse.datasource b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse.datasource new file mode 100644 index 0000000..f865472 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse, Connected Services.Service.Async.HouseManagement.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.cs b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.cs new file mode 100644 index 0000000..b37a5d0 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.cs @@ -0,0 +1,53183 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Hcs.Service.Async.HouseManagement.v14_5_0_1 { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Fault : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorMessageField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + this.RaisePropertyChanged("ErrorMessage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class VolumeMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef municipalResourceField; + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/nsi-base/")] + public partial class nsiRef : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesType : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringDeviceNumberField; + + private string meteringDeviceStampField; + + private string meteringDeviceModelField; + + private System.DateTime installationDateField; + + private bool installationDateFieldSpecified; + + private System.DateTime commissioningDateField; + + private bool commissioningDateFieldSpecified; + + private bool remoteMeteringModeField; + + private bool remoteMeteringModeFieldSpecified; + + private string remoteMeteringInfoField; + + private bool temperatureSensorField; + + private bool temperatureSensorFieldSpecified; + + private bool pressureSensorField; + + private bool pressureSensorFieldSpecified; + + private MeteringDeviceToUpdateAfterDevicesValuesTypeCollectiveDevice collectiveDeviceField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + private object[] itemsField; + + private System.DateTime firstVerificationDateField; + + private bool firstVerificationDateFieldSpecified; + + private System.DateTime factorySealDateField; + + private bool factorySealDateFieldSpecified; + + private bool consumedVolumeField; + + private bool consumedVolumeFieldSpecified; + + private object itemField; + + private MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristicts addressChatacteristictsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceNumber { + get { + return this.meteringDeviceNumberField; + } + set { + this.meteringDeviceNumberField = value; + this.RaisePropertyChanged("MeteringDeviceNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringDeviceStamp { + get { + return this.meteringDeviceStampField; + } + set { + this.meteringDeviceStampField = value; + this.RaisePropertyChanged("MeteringDeviceStamp"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringDeviceModel { + get { + return this.meteringDeviceModelField; + } + set { + this.meteringDeviceModelField = value; + this.RaisePropertyChanged("MeteringDeviceModel"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime InstallationDate { + get { + return this.installationDateField; + } + set { + this.installationDateField = value; + this.RaisePropertyChanged("InstallationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InstallationDateSpecified { + get { + return this.installationDateFieldSpecified; + } + set { + this.installationDateFieldSpecified = value; + this.RaisePropertyChanged("InstallationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime CommissioningDate { + get { + return this.commissioningDateField; + } + set { + this.commissioningDateField = value; + this.RaisePropertyChanged("CommissioningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CommissioningDateSpecified { + get { + return this.commissioningDateFieldSpecified; + } + set { + this.commissioningDateFieldSpecified = value; + this.RaisePropertyChanged("CommissioningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool RemoteMeteringMode { + get { + return this.remoteMeteringModeField; + } + set { + this.remoteMeteringModeField = value; + this.RaisePropertyChanged("RemoteMeteringMode"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RemoteMeteringModeSpecified { + get { + return this.remoteMeteringModeFieldSpecified; + } + set { + this.remoteMeteringModeFieldSpecified = value; + this.RaisePropertyChanged("RemoteMeteringModeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string RemoteMeteringInfo { + get { + return this.remoteMeteringInfoField; + } + set { + this.remoteMeteringInfoField = value; + this.RaisePropertyChanged("RemoteMeteringInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool TemperatureSensor { + get { + return this.temperatureSensorField; + } + set { + this.temperatureSensorField = value; + this.RaisePropertyChanged("TemperatureSensor"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TemperatureSensorSpecified { + get { + return this.temperatureSensorFieldSpecified; + } + set { + this.temperatureSensorFieldSpecified = value; + this.RaisePropertyChanged("TemperatureSensorSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool PressureSensor { + get { + return this.pressureSensorField; + } + set { + this.pressureSensorField = value; + this.RaisePropertyChanged("PressureSensor"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PressureSensorSpecified { + get { + return this.pressureSensorFieldSpecified; + } + set { + this.pressureSensorFieldSpecified = value; + this.RaisePropertyChanged("PressureSensorSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public MeteringDeviceToUpdateAfterDevicesValuesTypeCollectiveDevice CollectiveDevice { + get { + return this.collectiveDeviceField; + } + set { + this.collectiveDeviceField = value; + this.RaisePropertyChanged("CollectiveDevice"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=10)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=11)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceEnergy", typeof(MunicipalResourceElectricUpdateType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceNotEnergy", typeof(OneRateMeteringValueBaseType), Order=12)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=13)] + public System.DateTime FirstVerificationDate { + get { + return this.firstVerificationDateField; + } + set { + this.firstVerificationDateField = value; + this.RaisePropertyChanged("FirstVerificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FirstVerificationDateSpecified { + get { + return this.firstVerificationDateFieldSpecified; + } + set { + this.firstVerificationDateFieldSpecified = value; + this.RaisePropertyChanged("FirstVerificationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=14)] + public System.DateTime FactorySealDate { + get { + return this.factorySealDateField; + } + set { + this.factorySealDateField = value; + this.RaisePropertyChanged("FactorySealDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FactorySealDateSpecified { + get { + return this.factorySealDateFieldSpecified; + } + set { + this.factorySealDateFieldSpecified = value; + this.RaisePropertyChanged("FactorySealDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool ConsumedVolume { + get { + return this.consumedVolumeField; + } + set { + this.consumedVolumeField = value; + this.RaisePropertyChanged("ConsumedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ConsumedVolumeSpecified { + get { + return this.consumedVolumeFieldSpecified; + } + set { + this.consumedVolumeFieldSpecified = value; + this.RaisePropertyChanged("ConsumedVolumeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedWithMetering", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeLinkedWithMetering), Order=16)] + [System.Xml.Serialization.XmlElementAttribute("NotLinkedWithMetering", typeof(bool), Order=16)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristicts AddressChatacteristicts { + get { + return this.addressChatacteristictsField; + } + set { + this.addressChatacteristictsField = value; + this.RaisePropertyChanged("AddressChatacteristicts"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeCollectiveDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string temperatureSensorInformationField; + + private string pressureSensorInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string TemperatureSensorInformation { + get { + return this.temperatureSensorInformationField; + } + set { + this.temperatureSensorInformationField = value; + this.RaisePropertyChanged("TemperatureSensorInformation"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PressureSensorInformation { + get { + return this.pressureSensorInformationField; + } + set { + this.pressureSensorInformationField = value; + this.RaisePropertyChanged("PressureSensorInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AttachmentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string descriptionField; + + private Attachment attachmentField; + + private string attachmentHASHField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public Attachment Attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("Attachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AttachmentHASH { + get { + return this.attachmentHASHField; + } + set { + this.attachmentHASHField = value; + this.RaisePropertyChanged("AttachmentHASH"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Attachment : object, System.ComponentModel.INotifyPropertyChanged { + + private string attachmentGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AttachmentGUID { + get { + return this.attachmentGUIDField; + } + set { + this.attachmentGUIDField = value; + this.RaisePropertyChanged("AttachmentGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricUpdateType : ElectricMeteringValueBaseType { + + private decimal transformationRatioField; + + private bool transformationRatioFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal TransformationRatio { + get { + return this.transformationRatioField; + } + set { + this.transformationRatioField = value; + this.RaisePropertyChanged("TransformationRatio"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TransformationRatioSpecified { + get { + return this.transformationRatioFieldSpecified; + } + set { + this.transformationRatioFieldSpecified = value; + this.RaisePropertyChanged("TransformationRatioSpecified"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricUpdateType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricBaseType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricExportType2))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ElectricMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueExportType : ElectricMeteringValueBaseType { + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class ElectricMeteringValueExportWithTSType : ElectricMeteringValueExportType { + + private System.DateTime enterIntoSystemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EnterIntoSystem { + get { + return this.enterIntoSystemField; + } + set { + this.enterIntoSystemField = value; + this.RaisePropertyChanged("EnterIntoSystem"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricExportType : ElectricMeteringValueExportType { + + private decimal transformationRatioField; + + private bool transformationRatioFieldSpecified; + + private MunicipalResourceElectricExportTypeUnit unitField; + + private bool unitFieldSpecified; + + private MunicipalResourceElectricExportTypeMeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal TransformationRatio { + get { + return this.transformationRatioField; + } + set { + this.transformationRatioField = value; + this.RaisePropertyChanged("TransformationRatio"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TransformationRatioSpecified { + get { + return this.transformationRatioFieldSpecified; + } + set { + this.transformationRatioFieldSpecified = value; + this.RaisePropertyChanged("TransformationRatioSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public MunicipalResourceElectricExportTypeUnit Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitSpecified { + get { + return this.unitFieldSpecified; + } + set { + this.unitFieldSpecified = value; + this.RaisePropertyChanged("UnitSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public MunicipalResourceElectricExportTypeMeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MunicipalResourceElectricExportTypeUnit { + + /// + [System.Xml.Serialization.XmlEnumAttribute("245")] + Item245, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricExportTypeMeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceElectricExportType2))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricBaseType : ElectricMeteringValueBaseType { + + private decimal transformationRatioField; + + private bool transformationRatioFieldSpecified; + + private MunicipalResourceElectricBaseTypeUnit unitField; + + private bool unitFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal TransformationRatio { + get { + return this.transformationRatioField; + } + set { + this.transformationRatioField = value; + this.RaisePropertyChanged("TransformationRatio"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TransformationRatioSpecified { + get { + return this.transformationRatioFieldSpecified; + } + set { + this.transformationRatioFieldSpecified = value; + this.RaisePropertyChanged("TransformationRatioSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public MunicipalResourceElectricBaseTypeUnit Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitSpecified { + get { + return this.unitFieldSpecified; + } + set { + this.unitFieldSpecified = value; + this.RaisePropertyChanged("UnitSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MunicipalResourceElectricBaseTypeUnit { + + /// + [System.Xml.Serialization.XmlEnumAttribute("245")] + Item245, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricExportType2 : MunicipalResourceElectricBaseType { + + private MunicipalResourceElectricExportType2MeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MunicipalResourceElectricExportType2MeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceElectricExportType2MeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueT1Field; + + private string meteringValueT2Field; + + private string meteringValueT3Field; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValueT1 { + get { + return this.meteringValueT1Field; + } + set { + this.meteringValueT1Field = value; + this.RaisePropertyChanged("MeteringValueT1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValueT2 { + get { + return this.meteringValueT2Field; + } + set { + this.meteringValueT2Field = value; + this.RaisePropertyChanged("MeteringValueT2"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringValueT3 { + get { + return this.meteringValueT3Field; + } + set { + this.meteringValueT3Field = value; + this.RaisePropertyChanged("MeteringValueT3"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceNotElectricExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceNotElectricBaseType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceNotElectricExportType2))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueBaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef municipalResourceField; + + private string meteringValueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringValue { + get { + return this.meteringValueField; + } + set { + this.meteringValueField = value; + this.RaisePropertyChanged("MeteringValue"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OneRateMeteringValueExportWithTSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceNotElectricExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueExportType : OneRateMeteringValueBaseType { + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/metering-device-base/")] + public partial class OneRateMeteringValueExportWithTSType : OneRateMeteringValueExportType { + + private System.DateTime enterIntoSystemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EnterIntoSystem { + get { + return this.enterIntoSystemField; + } + set { + this.enterIntoSystemField = value; + this.RaisePropertyChanged("EnterIntoSystem"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceNotElectricExportType : OneRateMeteringValueExportType { + + private MunicipalResourceNotElectricExportTypeUnit unitField; + + private bool unitFieldSpecified; + + private MunicipalResourceNotElectricExportTypeMeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MunicipalResourceNotElectricExportTypeUnit Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitSpecified { + get { + return this.unitFieldSpecified; + } + set { + this.unitFieldSpecified = value; + this.RaisePropertyChanged("UnitSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public MunicipalResourceNotElectricExportTypeMeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MunicipalResourceNotElectricExportTypeUnit { + + /// + [System.Xml.Serialization.XmlEnumAttribute("112")] + Item112, + + /// + [System.Xml.Serialization.XmlEnumAttribute("113")] + Item113, + + /// + [System.Xml.Serialization.XmlEnumAttribute("233")] + Item233, + + /// + [System.Xml.Serialization.XmlEnumAttribute("245")] + Item245, + + /// + [System.Xml.Serialization.XmlEnumAttribute("246")] + Item246, + + /// + [System.Xml.Serialization.XmlEnumAttribute("271")] + Item271, + + /// + A056, + + /// + A058, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceNotElectricExportTypeMeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueField; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValue { + get { + return this.meteringValueField; + } + set { + this.meteringValueField = value; + this.RaisePropertyChanged("MeteringValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(MunicipalResourceNotElectricExportType2))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceNotElectricBaseType : OneRateMeteringValueBaseType { + + private MunicipalResourceNotElectricBaseTypeUnit unitField; + + private bool unitFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MunicipalResourceNotElectricBaseTypeUnit Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitSpecified { + get { + return this.unitFieldSpecified; + } + set { + this.unitFieldSpecified = value; + this.RaisePropertyChanged("UnitSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MunicipalResourceNotElectricBaseTypeUnit { + + /// + [System.Xml.Serialization.XmlEnumAttribute("112")] + Item112, + + /// + [System.Xml.Serialization.XmlEnumAttribute("113")] + Item113, + + /// + [System.Xml.Serialization.XmlEnumAttribute("233")] + Item233, + + /// + [System.Xml.Serialization.XmlEnumAttribute("245")] + Item245, + + /// + [System.Xml.Serialization.XmlEnumAttribute("246")] + Item246, + + /// + [System.Xml.Serialization.XmlEnumAttribute("271")] + Item271, + + /// + A056, + + /// + A058, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceNotElectricExportType2 : MunicipalResourceNotElectricBaseType { + + private MunicipalResourceNotElectricExportType2MeteringValueInDefaultUnit meteringValueInDefaultUnitField; + + private string readingsSourceField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MunicipalResourceNotElectricExportType2MeteringValueInDefaultUnit MeteringValueInDefaultUnit { + get { + return this.meteringValueInDefaultUnitField; + } + set { + this.meteringValueInDefaultUnitField = value; + this.RaisePropertyChanged("MeteringValueInDefaultUnit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ReadingsSource { + get { + return this.readingsSourceField; + } + set { + this.readingsSourceField = value; + this.RaisePropertyChanged("ReadingsSource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MunicipalResourceNotElectricExportType2MeteringValueInDefaultUnit : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringValueField; + + private string defaultUnitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringValue { + get { + return this.meteringValueField; + } + set { + this.meteringValueField = value; + this.RaisePropertyChanged("MeteringValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string DefaultUnit { + get { + return this.defaultUnitField; + } + set { + this.defaultUnitField = value; + this.RaisePropertyChanged("DefaultUnit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeLinkedWithMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private MeteringDeviceToUpdateAfterDevicesValuesTypeLinkedWithMeteringInstallationPlace installationPlaceField; + + private string[] linkedMeteringDeviceVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MeteringDeviceToUpdateAfterDevicesValuesTypeLinkedWithMeteringInstallationPlace InstallationPlace { + get { + return this.installationPlaceField; + } + set { + this.installationPlaceField = value; + this.RaisePropertyChanged("InstallationPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedMeteringDeviceVersionGUID", Order=1)] + public string[] LinkedMeteringDeviceVersionGUID { + get { + return this.linkedMeteringDeviceVersionGUIDField; + } + set { + this.linkedMeteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("LinkedMeteringDeviceVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MeteringDeviceToUpdateAfterDevicesValuesTypeLinkedWithMeteringInstallationPlace { + + /// + @in, + + /// + @out, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristicts : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsApartmentHouseDevice), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CollectiveApartmentDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsCollectiveApartmentDevice), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CollectiveDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsCollectiveDevice), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsLivingRoomDevice), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsNonResidentialPremiseDevice), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremiseDevice", typeof(MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsResidentialPremiseDevice), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsApartmentHouseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isChangeToFIASHouseGuid", typeof(bool), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsCollectiveApartmentDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsCollectiveDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isChangeToFIASHouseGuid", typeof(bool), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsLivingRoomDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomGUID", Order=0)] + public string[] LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsNonResidentialPremiseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceToUpdateAfterDevicesValuesTypeAddressChatacteristictsResidentialPremiseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + ApartmentHouseDevice, + + /// + CollectiveApartmentDevice, + + /// + CollectiveDevice, + + /// + LivingRoomDevice, + + /// + NonResidentialPremiseDevice, + + /// + ResidentialPremiseDevice, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DeviceMunicipalResourceType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef municipalResourceField; + + private DeviceMunicipalResourceTypeUnit unitField; + + private bool unitFieldSpecified; + + private string tariffCountField; + + private decimal transformationRatioField; + + private bool transformationRatioFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DeviceMunicipalResourceTypeUnit Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitSpecified { + get { + return this.unitFieldSpecified; + } + set { + this.unitFieldSpecified = value; + this.RaisePropertyChanged("UnitSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=2)] + public string TariffCount { + get { + return this.tariffCountField; + } + set { + this.tariffCountField = value; + this.RaisePropertyChanged("TariffCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TransformationRatio { + get { + return this.transformationRatioField; + } + set { + this.transformationRatioField = value; + this.RaisePropertyChanged("TransformationRatio"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TransformationRatioSpecified { + get { + return this.transformationRatioFieldSpecified; + } + set { + this.transformationRatioFieldSpecified = value; + this.RaisePropertyChanged("TransformationRatioSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum DeviceMunicipalResourceTypeUnit { + + /// + [System.Xml.Serialization.XmlEnumAttribute("112")] + Item112, + + /// + [System.Xml.Serialization.XmlEnumAttribute("113")] + Item113, + + /// + [System.Xml.Serialization.XmlEnumAttribute("233")] + Item233, + + /// + [System.Xml.Serialization.XmlEnumAttribute("245")] + Item245, + + /// + [System.Xml.Serialization.XmlEnumAttribute("246")] + Item246, + + /// + [System.Xml.Serialization.XmlEnumAttribute("271")] + Item271, + + /// + A056, + + /// + A058, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringDeviceNumberField; + + private string meteringDeviceStampField; + + private string meteringDeviceModelField; + + private System.DateTime installationDateField; + + private bool installationDateFieldSpecified; + + private System.DateTime commissioningDateField; + + private bool commissioningDateFieldSpecified; + + private bool remoteMeteringModeField; + + private string remoteMeteringInfoField; + + private System.DateTime firstVerificationDateField; + + private bool firstVerificationDateFieldSpecified; + + private nsiRef verificationIntervalField; + + private System.DateTime factorySealDateField; + + private bool factorySealDateFieldSpecified; + + private bool temperatureSensorField; + + private bool pressureSensorField; + + private bool consumedVolumeField; + + private bool consumedVolumeFieldSpecified; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceNumber { + get { + return this.meteringDeviceNumberField; + } + set { + this.meteringDeviceNumberField = value; + this.RaisePropertyChanged("MeteringDeviceNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MeteringDeviceStamp { + get { + return this.meteringDeviceStampField; + } + set { + this.meteringDeviceStampField = value; + this.RaisePropertyChanged("MeteringDeviceStamp"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringDeviceModel { + get { + return this.meteringDeviceModelField; + } + set { + this.meteringDeviceModelField = value; + this.RaisePropertyChanged("MeteringDeviceModel"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime InstallationDate { + get { + return this.installationDateField; + } + set { + this.installationDateField = value; + this.RaisePropertyChanged("InstallationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InstallationDateSpecified { + get { + return this.installationDateFieldSpecified; + } + set { + this.installationDateFieldSpecified = value; + this.RaisePropertyChanged("InstallationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime CommissioningDate { + get { + return this.commissioningDateField; + } + set { + this.commissioningDateField = value; + this.RaisePropertyChanged("CommissioningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CommissioningDateSpecified { + get { + return this.commissioningDateFieldSpecified; + } + set { + this.commissioningDateFieldSpecified = value; + this.RaisePropertyChanged("CommissioningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool RemoteMeteringMode { + get { + return this.remoteMeteringModeField; + } + set { + this.remoteMeteringModeField = value; + this.RaisePropertyChanged("RemoteMeteringMode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string RemoteMeteringInfo { + get { + return this.remoteMeteringInfoField; + } + set { + this.remoteMeteringInfoField = value; + this.RaisePropertyChanged("RemoteMeteringInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=7)] + public System.DateTime FirstVerificationDate { + get { + return this.firstVerificationDateField; + } + set { + this.firstVerificationDateField = value; + this.RaisePropertyChanged("FirstVerificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FirstVerificationDateSpecified { + get { + return this.firstVerificationDateFieldSpecified; + } + set { + this.firstVerificationDateFieldSpecified = value; + this.RaisePropertyChanged("FirstVerificationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public nsiRef VerificationInterval { + get { + return this.verificationIntervalField; + } + set { + this.verificationIntervalField = value; + this.RaisePropertyChanged("VerificationInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=9)] + public System.DateTime FactorySealDate { + get { + return this.factorySealDateField; + } + set { + this.factorySealDateField = value; + this.RaisePropertyChanged("FactorySealDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FactorySealDateSpecified { + get { + return this.factorySealDateFieldSpecified; + } + set { + this.factorySealDateFieldSpecified = value; + this.RaisePropertyChanged("FactorySealDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool TemperatureSensor { + get { + return this.temperatureSensorField; + } + set { + this.temperatureSensorField = value; + this.RaisePropertyChanged("TemperatureSensor"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool PressureSensor { + get { + return this.pressureSensorField; + } + set { + this.pressureSensorField = value; + this.RaisePropertyChanged("PressureSensor"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool ConsumedVolume { + get { + return this.consumedVolumeField; + } + set { + this.consumedVolumeField = value; + this.RaisePropertyChanged("ConsumedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ConsumedVolumeSpecified { + get { + return this.consumedVolumeFieldSpecified; + } + set { + this.consumedVolumeFieldSpecified = value; + this.RaisePropertyChanged("ConsumedVolumeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseDevice", typeof(MeteringDeviceBasicCharacteristicsTypeApartmentHouseDevice), Order=13)] + [System.Xml.Serialization.XmlElementAttribute("CollectiveApartmentDevice", typeof(MeteringDeviceBasicCharacteristicsTypeCollectiveApartmentDevice), Order=13)] + [System.Xml.Serialization.XmlElementAttribute("CollectiveDevice", typeof(MeteringDeviceBasicCharacteristicsTypeCollectiveDevice), Order=13)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomDevice", typeof(MeteringDeviceBasicCharacteristicsTypeLivingRoomDevice), Order=13)] + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseDevice", typeof(MeteringDeviceBasicCharacteristicsTypeNonResidentialPremiseDevice), Order=13)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremiseDevice", typeof(MeteringDeviceBasicCharacteristicsTypeResidentialPremiseDevice), Order=13)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeApartmentHouseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGuidField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=1)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=2)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeCollectiveApartmentDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=1)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=2)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeCollectiveDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGuidField; + + private string temperatureSensingElementInfoField; + + private string pressureSensingElementInfoField; + + private AttachmentType[] projectRegistrationNodeField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string TemperatureSensingElementInfo { + get { + return this.temperatureSensingElementInfoField; + } + set { + this.temperatureSensingElementInfoField = value; + this.RaisePropertyChanged("TemperatureSensingElementInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PressureSensingElementInfo { + get { + return this.pressureSensingElementInfoField; + } + set { + this.pressureSensingElementInfoField = value; + this.RaisePropertyChanged("PressureSensingElementInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ProjectRegistrationNode", Order=3)] + public AttachmentType[] ProjectRegistrationNode { + get { + return this.projectRegistrationNodeField; + } + set { + this.projectRegistrationNodeField = value; + this.RaisePropertyChanged("ProjectRegistrationNode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=4)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeLivingRoomDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] livingRoomGUIDField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomGUID", Order=0)] + public string[] LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=1)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=2)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeNonResidentialPremiseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=1)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=2)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceBasicCharacteristicsTypeResidentialPremiseDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] premiseGUIDField; + + private string[] accountGUIDField; + + private AttachmentType[] certificateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PremiseGUID", Order=0)] + public string[] PremiseGUID { + get { + return this.premiseGUIDField; + } + set { + this.premiseGUIDField = value; + this.RaisePropertyChanged("PremiseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", Order=1)] + public string[] AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Certificate", Order=2)] + public AttachmentType[] Certificate { + get { + return this.certificateField; + } + set { + this.certificateField = value; + this.RaisePropertyChanged("Certificate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceFullInformationType : object, System.ComponentModel.INotifyPropertyChanged { + + private MeteringDeviceBasicCharacteristicsType basicChatacteristictsField; + + private object itemField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MeteringDeviceBasicCharacteristicsType BasicChatacteristicts { + get { + return this.basicChatacteristictsField; + } + set { + this.basicChatacteristictsField = value; + this.RaisePropertyChanged("BasicChatacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedWithMetering", typeof(MeteringDeviceFullInformationTypeLinkedWithMetering), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NotLinkedWithMetering", typeof(bool), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceEnergy", typeof(MunicipalResourceElectricBaseType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceNotEnergy", typeof(MunicipalResourceNotElectricBaseType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResources", typeof(DeviceMunicipalResourceType), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceFullInformationTypeLinkedWithMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private MeteringDeviceFullInformationTypeLinkedWithMeteringInstallationPlace installationPlaceField; + + private string[] linkedMeteringDeviceVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MeteringDeviceFullInformationTypeLinkedWithMeteringInstallationPlace InstallationPlace { + get { + return this.installationPlaceField; + } + set { + this.installationPlaceField = value; + this.RaisePropertyChanged("InstallationPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedMeteringDeviceVersionGUID", Order=1)] + public string[] LinkedMeteringDeviceVersionGUID { + get { + return this.linkedMeteringDeviceVersionGUIDField; + } + set { + this.linkedMeteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("LinkedMeteringDeviceVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MeteringDeviceFullInformationTypeLinkedWithMeteringInstallationPlace { + + /// + @in, + + /// + @out, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DemolishionReasonType : object, System.ComponentModel.INotifyPropertyChanged { + + private AttachmentType[] documentField; + + private string descriptionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Document", Order=0)] + public AttachmentType[] Document { + get { + return this.documentField; + } + set { + this.documentField = value; + this.RaisePropertyChanged("Document"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseToDemolishType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private System.DateTime demolishionDateField; + + private DemolishionReasonType demolishionReasonField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DemolishionDate { + get { + return this.demolishionDateField; + } + set { + this.demolishionDateField = value; + this.RaisePropertyChanged("DemolishionDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public DemolishionReasonType DemolishionReason { + get { + return this.demolishionReasonField; + } + set { + this.demolishionReasonField = value; + this.RaisePropertyChanged("DemolishionReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=3)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string idField; + + private string mimeTypeField; + + private string encodingField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string MimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("MimeType"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Encoding { + get { + return this.encodingField; + } + set { + this.encodingField = value; + this.RaisePropertyChanged("Encoding"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SPKIDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKISexp", typeof(byte[]), DataType="base64Binary", Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class PGPDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType1[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyID", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyPacket", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType1[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType1 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + PGPKeyID, + + /// + PGPKeyPacket, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509IssuerSerialType : object, System.ComponentModel.INotifyPropertyChanged { + + private string x509IssuerNameField; + + private string x509SerialNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string X509IssuerName { + get { + return this.x509IssuerNameField; + } + set { + this.x509IssuerNameField = value; + this.RaisePropertyChanged("X509IssuerName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string X509SerialNumber { + get { + return this.x509SerialNumberField; + } + set { + this.x509SerialNumberField = value; + this.RaisePropertyChanged("X509SerialNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509DataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509CRL", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Certificate", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509IssuerSerial", typeof(X509IssuerSerialType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SKI", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SubjectName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + X509CRL, + + /// + X509Certificate, + + /// + X509IssuerSerial, + + /// + X509SKI, + + /// + X509SubjectName, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RetrievalMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class TransformType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string[] textField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("XPath", typeof(string), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] modulusField; + + private byte[] exponentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] Modulus { + get { + return this.modulusField; + } + set { + this.modulusField = value; + this.RaisePropertyChanged("Modulus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Exponent { + get { + return this.exponentField; + } + set { + this.exponentField = value; + this.RaisePropertyChanged("Exponent"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] pField; + + private byte[] qField; + + private byte[] gField; + + private byte[] yField; + + private byte[] jField; + + private byte[] seedField; + + private byte[] pgenCounterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] P { + get { + return this.pField; + } + set { + this.pField = value; + this.RaisePropertyChanged("P"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Q { + get { + return this.qField; + } + set { + this.qField = value; + this.RaisePropertyChanged("Q"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] G { + get { + return this.gField; + } + set { + this.gField = value; + this.RaisePropertyChanged("G"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=3)] + public byte[] Y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("Y"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] J { + get { + return this.jField; + } + set { + this.jField = value; + this.RaisePropertyChanged("J"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=5)] + public byte[] Seed { + get { + return this.seedField; + } + set { + this.seedField = value; + this.RaisePropertyChanged("Seed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=6)] + public byte[] PgenCounter { + get { + return this.pgenCounterField; + } + set { + this.pgenCounterField = value; + this.RaisePropertyChanged("PgenCounter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string[] textField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DSAKeyValue", typeof(DSAKeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RSAKeyValue", typeof(RSAKeyValueType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType2[] itemsElementNameField; + + private string[] textField; + + private string idField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyValue", typeof(KeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MgmtData", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPData", typeof(PGPDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RetrievalMethod", typeof(RetrievalMethodType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKIData", typeof(SPKIDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Data", typeof(X509DataType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType2[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType2 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + KeyName, + + /// + KeyValue, + + /// + MgmtData, + + /// + PGPData, + + /// + RetrievalMethod, + + /// + SPKIData, + + /// + X509Data, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private string idField; + + private byte[] valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute(DataType="base64Binary")] + public byte[] Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DigestMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ReferenceType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private DigestMethodType digestMethodField; + + private byte[] digestValueField; + + private string idField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DigestMethodType DigestMethod { + get { + return this.digestMethodField; + } + set { + this.digestMethodField = value; + this.RaisePropertyChanged("DigestMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] DigestValue { + get { + return this.digestValueField; + } + set { + this.digestValueField = value; + this.RaisePropertyChanged("DigestValue"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hMACOutputLengthField; + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string HMACOutputLength { + get { + return this.hMACOutputLengthField; + } + set { + this.hMACOutputLengthField = value; + this.RaisePropertyChanged("HMACOutputLength"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class CanonicalizationMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignedInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private CanonicalizationMethodType canonicalizationMethodField; + + private SignatureMethodType signatureMethodField; + + private ReferenceType[] referenceField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CanonicalizationMethodType CanonicalizationMethod { + get { + return this.canonicalizationMethodField; + } + set { + this.canonicalizationMethodField = value; + this.RaisePropertyChanged("CanonicalizationMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureMethodType SignatureMethod { + get { + return this.signatureMethodField; + } + set { + this.signatureMethodField = value; + this.RaisePropertyChanged("SignatureMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Reference", Order=2)] + public ReferenceType[] Reference { + get { + return this.referenceField; + } + set { + this.referenceField = value; + this.RaisePropertyChanged("Reference"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignedInfoType signedInfoField; + + private SignatureValueType signatureValueField; + + private KeyInfoType keyInfoField; + + private ObjectType[] objectField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SignedInfoType SignedInfo { + get { + return this.signedInfoField; + } + set { + this.signedInfoField = value; + this.RaisePropertyChanged("SignedInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureValueType SignatureValue { + get { + return this.signatureValueField; + } + set { + this.signatureValueField = value; + this.RaisePropertyChanged("SignatureValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public KeyInfoType KeyInfo { + get { + return this.keyInfoField; + } + set { + this.keyInfoField = value; + this.RaisePropertyChanged("KeyInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Object", Order=3)] + public ObjectType[] Object { + get { + return this.objectField; + } + set { + this.objectField = value; + this.RaisePropertyChanged("Object"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BaseAsyncResponseType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DemolishHouseRequestType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignatureType signatureField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", Order=0)] + public SignatureType Signature { + get { + return this.signatureField; + } + set { + this.signatureField = value; + this.RaisePropertyChanged("Signature"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseAsyncResponseType : BaseType { + + private sbyte requestStateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte RequestState { + get { + return this.requestStateField; + } + set { + this.requestStateField = value; + this.RaisePropertyChanged("RequestState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DemolishHouseRequestType : BaseType { + + private HouseToDemolishType[] houseToDemolishField; + + private string versionField; + + public DemolishHouseRequestType() { + this.versionField = "11.1.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseToDemolish", Order=0)] + public HouseToDemolishType[] HouseToDemolish { + get { + return this.houseToDemolishField; + } + set { + this.houseToDemolishField = value; + this.RaisePropertyChanged("HouseToDemolish"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management-service-async/", ConfigurationName="Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync")] + public interface HouseManagementPortsTypeAsync { + + // CODEGEN: Generating message contract since the operation importMeteringDeviceData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importMeteringDeviceData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importMeteringDeviceData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse importMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importMeteringDeviceData", ReplyAction="*")] + System.Threading.Tasks.Task importMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 request); + + // CODEGEN: Generating message contract since the operation exportMeteringDeviceData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportMeteringDeviceData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportMeteringDeviceData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse exportMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportMeteringDeviceData", ReplyAction="*")] + System.Threading.Tasks.Task exportMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 request); + + // CODEGEN: Generating message contract since the operation getState is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:getState", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse getState(Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 request); + + // CODEGEN: Generating message contract since the operation importContractData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importContractData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importContractData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse importContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importContractData", ReplyAction="*")] + System.Threading.Tasks.Task importContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest request); + + // CODEGEN: Generating message contract since the operation importCharterData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importCharterData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importCharterData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse importCharterData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importCharterData", ReplyAction="*")] + System.Threading.Tasks.Task importCharterDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest request); + + // CODEGEN: Generating message contract since the operation exportStatusCAChData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportStatusCAChData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportStatusCAChData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse exportStatusCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportStatusCAChData", ReplyAction="*")] + System.Threading.Tasks.Task exportStatusCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest request); + + // CODEGEN: Generating message contract since the operation exportHouseData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportHouseData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportHouseData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse exportHouseData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportHouseData", ReplyAction="*")] + System.Threading.Tasks.Task exportHouseDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest request); + + // CODEGEN: Generating message contract since the operation importAccountData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importAccountData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importAccountData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse importAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importAccountData", ReplyAction="*")] + System.Threading.Tasks.Task importAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest request); + + // CODEGEN: Generating message contract since the operation exportAccountData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportAccountData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportAccountData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse exportAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportAccountData", ReplyAction="*")] + System.Threading.Tasks.Task exportAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest request); + + // CODEGEN: Generating message contract since the operation importPublicPropertyContract is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importPublicPropertyContract", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importPublicPropertyContract", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse importPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importPublicPropertyContract", ReplyAction="*")] + System.Threading.Tasks.Task importPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 request); + + // CODEGEN: Generating message contract since the operation exportStatusPublicPropertyContract is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportStatusPublicPropertyContract", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportStatusPublicPropertyContract", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse exportStatusPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportStatusPublicPropertyContract", ReplyAction="*")] + System.Threading.Tasks.Task exportStatusPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 request); + + // CODEGEN: Generating message contract since the operation importNotificationData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importNotificationData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importNotificationData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse importNotificationData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importNotificationData", ReplyAction="*")] + System.Threading.Tasks.Task importNotificationDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest request); + + // CODEGEN: Generating message contract since the operation importVotingProtocol is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importVotingProtocol", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importVotingProtocol", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse importVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importVotingProtocol", ReplyAction="*")] + System.Threading.Tasks.Task importVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 request); + + // CODEGEN: Generating message contract since the operation exportVotingProtocol is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportVotingProtocol", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportVotingProtocol", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse exportVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportVotingProtocol", ReplyAction="*")] + System.Threading.Tasks.Task exportVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 request); + + // CODEGEN: Generating message contract since the operation importOwnerDecision is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importOwnerDecision", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importOwnerDecision", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse importOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importOwnerDecision", ReplyAction="*")] + System.Threading.Tasks.Task importOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 request); + + // CODEGEN: Generating message contract since the operation exportOwnerDecision is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOwnerDecision", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportOwnerDecision", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse exportOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOwnerDecision", ReplyAction="*")] + System.Threading.Tasks.Task exportOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 request); + + // CODEGEN: Generating message contract since the operation exportCAChData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportCAChData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportCAChData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse exportCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportCAChData", ReplyAction="*")] + System.Threading.Tasks.Task exportCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest request); + + // CODEGEN: Generating message contract since the operation importHouseUOData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseUOData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importHouseUOData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse importHouseUOData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseUOData", ReplyAction="*")] + System.Threading.Tasks.Task importHouseUODataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest request); + + // CODEGEN: Generating message contract since the operation importHouseOMSData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseOMSData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importHouseOMSData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse importHouseOMSData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseOMSData", ReplyAction="*")] + System.Threading.Tasks.Task importHouseOMSDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest request); + + // CODEGEN: Generating message contract since the operation importHouseESPData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseESPData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importHouseESPData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse importHouseESPData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importHouseESPData", ReplyAction="*")] + System.Threading.Tasks.Task importHouseESPDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest request); + + // CODEGEN: Generating message contract since the operation importSupplyResourceContractData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importSupplyResourceContractData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse importSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractData", ReplyAction="*")] + System.Threading.Tasks.Task importSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest request); + + // CODEGEN: Generating message contract since the operation exportSupplyResourceContractData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportSupplyResourceContractData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportSupplyResourceContractData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse exportSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportSupplyResourceContractData", ReplyAction="*")] + System.Threading.Tasks.Task exportSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest request); + + // CODEGEN: Generating message contract since the operation importAccountIndividualServices is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importAccountIndividualServices", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importAccountIndividualServices", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse importAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importAccountIndividualServices", ReplyAction="*")] + System.Threading.Tasks.Task importAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 request); + + // CODEGEN: Generating message contract since the operation exportAccountIndividualServices is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportAccountIndividualServices", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportAccountIndividualServices", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse exportAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportAccountIndividualServices", ReplyAction="*")] + System.Threading.Tasks.Task exportAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 request); + + // CODEGEN: Generating message contract since the operation exportSupplyResourceContractObjectAddressData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportSupplyResourceContractObjectAddressData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportSupplyResourceContractObjectAddressData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse exportSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportSupplyResourceContractObjectAddressData", ReplyAction="*")] + System.Threading.Tasks.Task exportSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest request); + + // CODEGEN: Generating message contract since the operation importSupplyResourceContractObjectAddressData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractObjectAddressData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importSupplyResourceContractObjectAddressData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse importSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractObjectAddressData", ReplyAction="*")] + System.Threading.Tasks.Task importSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest request); + + // CODEGEN: Generating message contract since the operation importSupplyResourceContractProjectData is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractProjectData", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importSupplyResourceContractProjectData", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse importSupplyResourceContractProjectData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importSupplyResourceContractProjectData", ReplyAction="*")] + System.Threading.Tasks.Task importSupplyResourceContractProjectDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest request); + + // CODEGEN: Generating message contract since the operation exportRolloverStatusCACh is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportRolloverStatusCACh", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportRolloverStatusCACh", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse exportRolloverStatusCACh(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportRolloverStatusCACh", ReplyAction="*")] + System.Threading.Tasks.Task exportRolloverStatusCAChAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 request); + + // CODEGEN: Generating message contract since the operation exportBriefSupplyResourceContract is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefSupplyResourceContract", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportBriefSupplyResourceContract", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse exportBriefSupplyResourceContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefSupplyResourceContract", ReplyAction="*")] + System.Threading.Tasks.Task exportBriefSupplyResourceContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 request); + + // CODEGEN: Generating message contract since the operation exportBriefSocialHireContract is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefSocialHireContract", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportBriefSocialHireContract", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse exportBriefSocialHireContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefSocialHireContract", ReplyAction="*")] + System.Threading.Tasks.Task exportBriefSocialHireContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 request); + + // CODEGEN: Generating message contract since the operation demolishHouse is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:demolishHouse", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:demolishHouse", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse demolishHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:demolishHouse", ReplyAction="*")] + System.Threading.Tasks.Task demolishHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest request); + + // CODEGEN: Generating message contract since the operation exportBriefBasicHouse is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefBasicHouse", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportBriefBasicHouse", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse exportBriefBasicHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefBasicHouse", ReplyAction="*")] + System.Threading.Tasks.Task exportBriefBasicHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 request); + + // CODEGEN: Generating message contract since the operation exportBriefLivingHouse is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefLivingHouse", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportBriefLivingHouse", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse exportBriefLivingHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefLivingHouse", ReplyAction="*")] + System.Threading.Tasks.Task exportBriefLivingHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 request); + + // CODEGEN: Generating message contract since the operation exportBriefApartmentHouse is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefApartmentHouse", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportBriefApartmentHouse", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse exportBriefApartmentHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportBriefApartmentHouse", ReplyAction="*")] + System.Threading.Tasks.Task exportBriefApartmentHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 request); + + // CODEGEN: Generating message contract since the operation importExternalVotingProtocol is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importExternalVotingProtocol", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importExternalVotingProtocol", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse importExternalVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importExternalVotingProtocol", ReplyAction="*")] + System.Threading.Tasks.Task importExternalVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 request); + + // CODEGEN: Generating message contract since the operation importVotingMessage is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importVotingMessage", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importVotingMessage", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse importVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importVotingMessage", ReplyAction="*")] + System.Threading.Tasks.Task importVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 request); + + // CODEGEN: Generating message contract since the operation exportVotingMessage is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportVotingMessage", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportVotingMessage", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse exportVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportVotingMessage", ReplyAction="*")] + System.Threading.Tasks.Task exportVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 request); + + // CODEGEN: Generating message contract since the operation importOwnerRefusal is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:importOwnerRefusal", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:importOwnerRefusal", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse importOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:importOwnerRefusal", ReplyAction="*")] + System.Threading.Tasks.Task importOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 request); + + // CODEGEN: Generating message contract since the operation exportOwnerRefusal is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOwnerRefusal", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.HouseManagement.v14_5_0_1.Fault), Action="urn:exportOwnerRefusal", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse exportOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOwnerRefusal", ReplyAction="*")] + System.Threading.Tasks.Task exportOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeader : HeaderType { + + private object itemField; + + private ItemChoiceType1 itemElementNameField; + + private bool isOperatorSignatureField; + + private bool isOperatorSignatureFieldSpecified; + + private ISCreator[] iSCreatorField; + + public RequestHeader() { + this.isOperatorSignatureField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Citizen", typeof(RequestHeaderCitizen), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SenderID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType1 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsOperatorSignature { + get { + return this.isOperatorSignatureField; + } + set { + this.isOperatorSignatureField = value; + this.RaisePropertyChanged("IsOperatorSignature"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsOperatorSignatureSpecified { + get { + return this.isOperatorSignatureFieldSpecified; + } + set { + this.isOperatorSignatureFieldSpecified = value; + this.RaisePropertyChanged("IsOperatorSignatureSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ISCreator", Order=3)] + public ISCreator[] ISCreator { + get { + return this.iSCreatorField; + } + set { + this.iSCreatorField = value; + this.RaisePropertyChanged("ISCreator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizen : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType3[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CitizenPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Document", typeof(RequestHeaderCitizenDocument), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType3[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private RequestHeaderCitizenDocumentDocumentType documentTypeField; + + private string seriesField; + + private string numberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RequestHeaderCitizenDocumentDocumentType DocumentType { + get { + return this.documentTypeField; + } + set { + this.documentTypeField = value; + this.RaisePropertyChanged("DocumentType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RequestHeaderCitizenDocumentDocumentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemsChoiceType3 { + + /// + CitizenPPAGUID, + + /// + Document, + + /// + SNILS, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", IncludeInSchema=false)] + public enum ItemChoiceType1 { + + /// + Citizen, + + /// + SenderID, + + /// + orgPPAGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISCreator : object, System.ComponentModel.INotifyPropertyChanged { + + private string iSNameField; + + private string iSOperatorNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ISName { + get { + return this.iSNameField; + } + set { + this.iSNameField = value; + this.RaisePropertyChanged("ISName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ISOperatorName { + get { + return this.iSOperatorNameField; + } + set { + this.iSOperatorNameField = value; + this.RaisePropertyChanged("ISOperatorName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class HeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequest : BaseType { + + private string fIASHouseGuidField; + + private importMeteringDeviceDataRequestMeteringDevice[] meteringDeviceField; + + private string versionField; + + public importMeteringDeviceDataRequest() { + this.versionField = "11.1.0.8"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MeteringDevice", Order=1)] + public importMeteringDeviceDataRequestMeteringDevice[] MeteringDevice { + get { + return this.meteringDeviceField; + } + set { + this.meteringDeviceField = value; + this.RaisePropertyChanged("MeteringDevice"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequestMeteringDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DeviceDataToCreate", typeof(MeteringDeviceFullInformationType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("DeviceDataToUpdate", typeof(importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdate : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringDeviceVersionGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceVersionGUID { + get { + return this.meteringDeviceVersionGUIDField; + } + set { + this.meteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("MeteringDeviceVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ArchiveDevice", typeof(importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateArchiveDevice), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LinkedWithMetering", typeof(importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateLinkedWithMetering), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ReplaceDevice", typeof(importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateReplaceDevice), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("UpdateAfterDevicesValues", typeof(MeteringDeviceToUpdateAfterDevicesValuesType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("UpdateBeforeDevicesValues", typeof(MeteringDeviceFullInformationType), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateArchiveDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef archivingReasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ArchivingReason { + get { + return this.archivingReasonField; + } + set { + this.archivingReasonField = value; + this.RaisePropertyChanged("ArchivingReason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateLinkedWithMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] linkedMeteringDeviceVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedMeteringDeviceVersionGUID", Order=0)] + public string[] LinkedMeteringDeviceVersionGUID { + get { + return this.linkedMeteringDeviceVersionGUIDField; + } + set { + this.linkedMeteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("LinkedMeteringDeviceVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importMeteringDeviceDataRequestMeteringDeviceDeviceDataToUpdateReplaceDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime verificationDateField; + + private object itemField; + + private object[] itemsField; + + private string replacingMeteringDeviceVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime VerificationDate { + get { + return this.verificationDateField; + } + set { + this.verificationDateField = value; + this.RaisePropertyChanged("VerificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVerification", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ReasonVerification", typeof(nsiRef), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DeviceValueMunicipalResourceElectric", typeof(ElectricMeteringValueBaseType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("DeviceValueMunicipalResourceNotElectric", typeof(OneRateMeteringValueBaseType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("VolumeDeviceValues", typeof(VolumeMeteringValueBaseType), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string ReplacingMeteringDeviceVersionGUID { + get { + return this.replacingMeteringDeviceVersionGUIDField; + } + set { + this.replacingMeteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("ReplacingMeteringDeviceVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ResultHeader : HeaderType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private AckRequestAck ackField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AckRequestAck Ack { + get { + return this.ackField; + } + set { + this.ackField = value; + this.RaisePropertyChanged("Ack"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequestAck : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private string requesterMessageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RequesterMessageGUID { + get { + return this.requesterMessageGUIDField; + } + set { + this.requesterMessageGUIDField = value; + this.RaisePropertyChanged("RequesterMessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importMeteringDeviceDataRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest importMeteringDeviceDataRequest; + + public importMeteringDeviceDataRequest1() { + } + + public importMeteringDeviceDataRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest importMeteringDeviceDataRequest) { + this.RequestHeader = RequestHeader; + this.importMeteringDeviceDataRequest = importMeteringDeviceDataRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importMeteringDeviceDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importMeteringDeviceDataResponse() { + } + + public importMeteringDeviceDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportMeteringDeviceDataRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType4[] itemsElementNameField; + + private bool includeFIASHouseGuidField; + + private bool includeFIASHouseGuidFieldSpecified; + + private string versionField; + + public exportMeteringDeviceDataRequest() { + this.versionField = "11.1.0.2"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ArchiveDateFrom", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ArchiveDateTo", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CommissioningDateFrom", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CommissioningDateTo", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IsCurrentOrganization", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceType", typeof(nsiRef), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MeteringDeviceVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResource", typeof(nsiRef), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SearchArchived", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UpdateDateTime", typeof(System.DateTime), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType4[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IncludeFIASHouseGuid { + get { + return this.includeFIASHouseGuidField; + } + set { + this.includeFIASHouseGuidField = value; + this.RaisePropertyChanged("IncludeFIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IncludeFIASHouseGuidSpecified { + get { + return this.includeFIASHouseGuidFieldSpecified; + } + set { + this.includeFIASHouseGuidFieldSpecified = value; + this.RaisePropertyChanged("IncludeFIASHouseGuidSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType4 { + + /// + ArchiveDateFrom, + + /// + ArchiveDateTo, + + /// + CommissioningDateFrom, + + /// + CommissioningDateTo, + + /// + FIASHouseGuid, + + /// + IsCurrentOrganization, + + /// + MeteringDeviceRootGUID, + + /// + MeteringDeviceType, + + /// + MeteringDeviceVersionGUID, + + /// + MunicipalResource, + + /// + SearchArchived, + + /// + UpdateDateTime, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportMeteringDeviceDataRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest exportMeteringDeviceDataRequest; + + public exportMeteringDeviceDataRequest1() { + } + + public exportMeteringDeviceDataRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest exportMeteringDeviceDataRequest) { + this.RequestHeader = RequestHeader; + this.exportMeteringDeviceDataRequest = exportMeteringDeviceDataRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportMeteringDeviceDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportMeteringDeviceDataResponse() { + } + + public exportMeteringDeviceDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class getStateRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResult : BaseAsyncResponseType { + + private object[] itemsField; + + private string versionField; + + public getStateResult() { + this.versionField = "11.0.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportResult", typeof(getStateResultImportResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("VotingMessage", typeof(exportVotingMessageResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("VotingProtocol", typeof(exportVotingProtocolResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportAccountIndividualServicesResult", typeof(exportAccountIndividualServicesResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportAccountResult", typeof(exportAccountResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportBriefApartmentHouseResult", typeof(getStateResultExportBriefApartmentHouseResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportBriefBasicHouseResult", typeof(getStateResultExportBriefBasicHouseResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportBriefLivingHouseResult", typeof(getStateResultExportBriefLivingHouseResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportBriefSocialHireContract", typeof(exportBriefSocialHireContractResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportBriefSupplyResourceContractResult", typeof(getStateResultExportBriefSupplyResourceContractResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportCAChResult", typeof(exportCAChResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportHouseResult", typeof(exportHouseResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportMeteringDeviceDataResult", typeof(exportMeteringDeviceDataResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportOwnerDecision", typeof(exportOwnerDecisionResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportOwnerRefusal", typeof(OwnerRefusalExportType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportStatusCAChResult", typeof(exportStatusCAChResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportStatusPublicPropertyContractResult", typeof(exportStatusPublicPropertyContractResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportSupplyResourceContractObjectAddress", typeof(getStateResultExportSupplyResourceContractObjectAddress), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportSupplyResourceContractResult", typeof(getStateResultExportSupplyResourceContractResult), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("rolloverCAChStatus", typeof(exportRolloverStatusCAChResultType), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ErrorMessageType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string descriptionField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResult : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string versionField; + + public getStateResultImportResult() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CommonResult", typeof(getStateResultImportResultCommonResult), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResult : CommonResultType { + + private object itemField; + + private ItemChoiceType2 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ImportAccount", typeof(getStateResultImportResultCommonResultImportAccount), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportHouseESP", typeof(OGFImportStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportHouseOMS", typeof(OGFImportStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportHouseUO", typeof(OGFImportStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportSupplyResourceContract", typeof(getStateResultImportResultCommonResultImportSupplyResourceContract), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportSupplyResourceContractObjectAddress", typeof(getStateResultImportResultCommonResultImportSupplyResourceContractObjectAddress), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportSupplyResourceContractProject", typeof(getStateResultImportResultCommonResultImportSupplyResourceContractProject), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("importCharter", typeof(importCharterResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("importContract", typeof(importContractResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("importMeteringDevice", typeof(getStateResultImportResultCommonResultImportMeteringDevice), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType2 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResultImportAccount : object, System.ComponentModel.INotifyPropertyChanged { + + private string unifiedAccountNumberField; + + private string serviceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=0)] + public string UnifiedAccountNumber { + get { + return this.unifiedAccountNumberField; + } + set { + this.unifiedAccountNumberField = value; + this.RaisePropertyChanged("UnifiedAccountNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=1)] + public string ServiceID { + get { + return this.serviceIDField; + } + set { + this.serviceIDField = value; + this.RaisePropertyChanged("ServiceID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OGFImportStatusType : object, System.ComponentModel.INotifyPropertyChanged { + + private OGFImportStatusTypeGKNRelationshipStatus gKNRelationshipStatusField; + + private EGRPRelationshipStatusType eGRPRelationshipStatusField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public OGFImportStatusTypeGKNRelationshipStatus GKNRelationshipStatus { + get { + return this.gKNRelationshipStatusField; + } + set { + this.gKNRelationshipStatusField = value; + this.RaisePropertyChanged("GKNRelationshipStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public EGRPRelationshipStatusType EGRPRelationshipStatus { + get { + return this.eGRPRelationshipStatusField; + } + set { + this.eGRPRelationshipStatusField = value; + this.RaisePropertyChanged("EGRPRelationshipStatus"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OGFImportStatusTypeGKNRelationshipStatus : GKNRelationshipStatusType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class GKNRelationshipStatusType : object, System.ComponentModel.INotifyPropertyChanged { + + private GKNRelationshipStatusTypeStatus statusField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public GKNRelationshipStatusTypeStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AppartmentHouseAcceptedParameter", typeof(ApartmentHouseAcceptedParameterType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseAcceptedParameter", typeof(LivingHouseAcceptedParameterType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseAcceptedParameter", typeof(NonResidentialPremiseAcceptedParameterType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremiseAcceptedParameter", typeof(ResidentialPremiseAcceptedParameterType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("RoomAcceptedParameter", typeof(RoomAcceptedParameterType), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum GKNRelationshipStatusTypeStatus { + + /// + C, + + /// + D, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ApartmentHouseAcceptedParameterType { + + /// + FiasHouseGuid, + + /// + TotalSquare, + + /// + State, + + /// + InnerWallMaterial, + + /// + ProjectSeries, + + /// + ProjectType, + + /// + BuildingYear, + + /// + UsedYear, + + /// + TotalWear, + + /// + FloorCount, + + /// + Energy, + + /// + OKTMO, + + /// + OlsonTZ, + + /// + ResidentialSquare, + + /// + CulturalHeritage, + + /// + BuiltUpArea, + + /// + UndergroundFloorCount, + + /// + MinFloorCount, + + /// + OverhaulYear, + + /// + OverhaulFormingKind, + + /// + NonResidentialSquare, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum LivingHouseAcceptedParameterType { + + /// + FiasHouseGuid, + + /// + TotalSquare, + + /// + State, + + /// + InnerWallMaterial, + + /// + ProjectSeries, + + /// + ProjectType, + + /// + BuildingYear, + + /// + UsedYear, + + /// + TotalWear, + + /// + FloorCount, + + /// + Energy, + + /// + OKTMO, + + /// + OlsonTZ, + + /// + ResidentialSquare, + + /// + CulturalHeritage, + + /// + ResidentialHouseType, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum NonResidentialPremiseAcceptedParameterType { + + /// + PremisesNum, + + /// + Purpose, + + /// + Position, + + /// + TotalArea, + + /// + IsCommonProperty, + + /// + TerminationDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ResidentialPremiseAcceptedParameterType { + + /// + PremisesNum, + + /// + EntranceNum, + + /// + PremisesCharacteristic, + + /// + RoomsNum, + + /// + TotalArea, + + /// + GrossArea, + + /// + ResidentialHouseType, + + /// + TerminationDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum RoomAcceptedParameterType { + + /// + RoomNumber, + + /// + Square, + + /// + ResidentialHouseType, + + /// + TerminationDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EGRPRelationshipStatusType : object, System.ComponentModel.INotifyPropertyChanged { + + private EGRPRelationshipStatusTypeStatus statusField; + + private bool statusFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public EGRPRelationshipStatusTypeStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StatusSpecified { + get { + return this.statusFieldSpecified; + } + set { + this.statusFieldSpecified = value; + this.RaisePropertyChanged("StatusSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum EGRPRelationshipStatusTypeStatus { + + /// + C, + + /// + D, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResultImportSupplyResourceContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractGUIDField; + + private string contractRootGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractRootGUID { + get { + return this.contractRootGUIDField; + } + set { + this.contractRootGUIDField = value; + this.RaisePropertyChanged("ContractRootGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResultImportSupplyResourceContractObjectAddress : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResultImportSupplyResourceContractProject : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterResultType : exportStatusCAChResultType { + + private ErrorMessageType errorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ErrorMessageType Error { + get { + return this.errorField; + } + set { + this.errorField = value; + this.RaisePropertyChanged("Error"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(importCharterResultType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(importContractResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusCAChResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType5[] itemsElementNameField; + + private exportStatusCAChResultTypeState stateField; + + private bool stateFieldSpecified; + + private exportStatusCAChResultTypeContractObject[] contractObjectField; + + private string versionNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterStatus", typeof(CharterStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractStatus", typeof(ContractStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType5[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportStatusCAChResultTypeState State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StateSpecified { + get { + return this.stateFieldSpecified; + } + set { + this.stateFieldSpecified = value; + this.RaisePropertyChanged("StateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=3)] + public exportStatusCAChResultTypeContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=4)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum CharterStatusType { + + /// + Project, + + /// + Approved, + + /// + Terminated, + + /// + Annul, + + /// + Reviewed, + + /// + ApprovalProcess, + + /// + Rejected, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ContractStatusType { + + /// + Project, + + /// + ApprovalProcess, + + /// + Rejected, + + /// + Approved, + + /// + Terminated, + + /// + Reviewed, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType5 { + + /// + CharterGUID, + + /// + CharterStatus, + + /// + CharterVersionGUID, + + /// + ContractGUID, + + /// + ContractStatus, + + /// + ContractVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportStatusCAChResultTypeState { + + /// + Running, + + /// + NotRunning, + + /// + Expired, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusCAChResultTypeContractObject : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private StatusMKDType managedObjectStatusField; + + private string contractObjectVersionGUIDField; + + private bool isConflictedField; + + private bool isConflictedFieldSpecified; + + private bool isBlockedField; + + private bool isBlockedFieldSpecified; + + public exportStatusCAChResultTypeContractObject() { + this.isConflictedField = true; + this.isBlockedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public StatusMKDType ManagedObjectStatus { + get { + return this.managedObjectStatusField; + } + set { + this.managedObjectStatusField = value; + this.RaisePropertyChanged("ManagedObjectStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IsConflicted { + get { + return this.isConflictedField; + } + set { + this.isConflictedField = value; + this.RaisePropertyChanged("IsConflicted"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsConflictedSpecified { + get { + return this.isConflictedFieldSpecified; + } + set { + this.isConflictedFieldSpecified = value; + this.RaisePropertyChanged("IsConflictedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IsBlocked { + get { + return this.isBlockedField; + } + set { + this.isBlockedField = value; + this.RaisePropertyChanged("IsBlocked"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsBlockedSpecified { + get { + return this.isBlockedFieldSpecified; + } + set { + this.isBlockedFieldSpecified = value; + this.RaisePropertyChanged("IsBlockedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum StatusMKDType { + + /// + Project, + + /// + Rejected, + + /// + ApprovalProcess, + + /// + Approved, + + /// + Locked, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractResultType : exportStatusCAChResultType { + + private ErrorMessageType errorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ErrorMessageType Error { + get { + return this.errorField; + } + set { + this.errorField = value; + this.RaisePropertyChanged("Error"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultImportResultCommonResultImportMeteringDevice : object, System.ComponentModel.INotifyPropertyChanged { + + private string meteringDeviceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceGUID { + get { + return this.meteringDeviceGUIDField; + } + set { + this.meteringDeviceGUIDField = value; + this.RaisePropertyChanged("MeteringDeviceGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType2 { + + /// + ImportAccount, + + /// + ImportHouseESP, + + /// + ImportHouseOMS, + + /// + ImportHouseUO, + + /// + ImportSupplyResourceContract, + + /// + ImportSupplyResourceContractObjectAddress, + + /// + ImportSupplyResourceContractProject, + + /// + importCharter, + + /// + importContract, + + /// + importMeteringDevice, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string gUIDField; + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(CommonResultTypeError), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UniqueNumber", typeof(string), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UpdateDate", typeof(System.DateTime), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultTypeError : ErrorMessageType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportVotingMessageResultType : MessageExportType { + + private string messageGUIDField; + + private MessageStatusType messageStatusField; + + private System.DateTime publishDateField; + + private System.DateTime modificationDateField; + + private bool modificationDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public MessageStatusType MessageStatus { + get { + return this.messageStatusField; + } + set { + this.messageStatusField = value; + this.RaisePropertyChanged("MessageStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime PublishDate { + get { + return this.publishDateField; + } + set { + this.publishDateField = value; + this.RaisePropertyChanged("PublishDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ModificationDateSpecified { + get { + return this.modificationDateFieldSpecified; + } + set { + this.modificationDateFieldSpecified = value; + this.RaisePropertyChanged("ModificationDateSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MessageStatusType { + + /// + Posted, + + /// + Goes, + + /// + Finished, + + /// + MeetingCancelled, + + /// + Cancelled, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportVotingMessageResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGUIDField; + + private RegOrgType organizationGuidField; + + private string messageNumField; + + private System.DateTime messageDateField; + + private bool itemField; + + private ItemChoiceType11 itemElementNameField; + + private object item1Field; + + private MeetingTypeType meetingTypeField; + + private VoteInitiators[] voteInitiatorsField; + + private MessageExportTypeDecisionList[] decisionListField; + + private string modificationReasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGUID", Order=0)] + public string[] FIASHouseGUID { + get { + return this.fIASHouseGUIDField; + } + set { + this.fIASHouseGUIDField = value; + this.RaisePropertyChanged("FIASHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public RegOrgType OrganizationGuid { + get { + return this.organizationGuidField; + } + set { + this.organizationGuidField = value; + this.RaisePropertyChanged("OrganizationGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MessageNum { + get { + return this.messageNumField; + } + set { + this.messageNumField = value; + this.RaisePropertyChanged("MessageNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime MessageDate { + get { + return this.messageDateField; + } + set { + this.messageDateField = value; + this.RaisePropertyChanged("MessageDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnualVoting", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("ExtraVoting", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType11 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AVoting", typeof(MessageExportTypeAVoting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("EVoting", typeof(MessageExportTypeEVoting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Meeting", typeof(MessageExportTypeMeeting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("MeetingAVoting", typeof(MessageExportTypeMeetingAVoting), Order=6)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public MeetingTypeType MeetingType { + get { + return this.meetingTypeField; + } + set { + this.meetingTypeField = value; + this.RaisePropertyChanged("MeetingType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VoteInitiators", Order=8)] + public VoteInitiators[] VoteInitiators { + get { + return this.voteInitiatorsField; + } + set { + this.voteInitiatorsField = value; + this.RaisePropertyChanged("VoteInitiators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionList", Order=9)] + public MessageExportTypeDecisionList[] DecisionList { + get { + return this.decisionListField; + } + set { + this.decisionListField = value; + this.RaisePropertyChanged("DecisionList"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public string ModificationReason { + get { + return this.modificationReasonField; + } + set { + this.modificationReasonField = value; + this.RaisePropertyChanged("ModificationReason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class RegOrgType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgRootEntityGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgRootEntityGUID { + get { + return this.orgRootEntityGUIDField; + } + set { + this.orgRootEntityGUIDField = value; + this.RaisePropertyChanged("orgRootEntityGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType11 { + + /// + AnnualVoting, + + /// + ExtraVoting, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private System.DateTime aVotingEndDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingEndDate { + get { + return this.aVotingEndDateField; + } + set { + this.aVotingEndDateField = value; + this.RaisePropertyChanged("AVotingEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=3)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class Attachments : AttachmentType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeEVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime eVotingDateBeginField; + + private System.DateTime eVotingDateEndField; + + private string disciplineField; + + private string infoReviewField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private bool firstVotingField; + + private bool firstVotingFieldSpecified; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + private string adminAddressField; + + private Attachments[] attachmentsField; + + public MessageExportTypeEVoting() { + this.firstVotingField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EVotingDateBegin { + get { + return this.eVotingDateBeginField; + } + set { + this.eVotingDateBeginField = value; + this.RaisePropertyChanged("EVotingDateBegin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime EVotingDateEnd { + get { + return this.eVotingDateEndField; + } + set { + this.eVotingDateEndField = value; + this.RaisePropertyChanged("EVotingDateEnd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Discipline { + get { + return this.disciplineField; + } + set { + this.disciplineField = value; + this.RaisePropertyChanged("Discipline"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string InfoReview { + get { + return this.infoReviewField; + } + set { + this.infoReviewField = value; + this.RaisePropertyChanged("InfoReview"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool FirstVoting { + get { + return this.firstVotingField; + } + set { + this.firstVotingField = value; + this.RaisePropertyChanged("FirstVoting"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FirstVotingSpecified { + get { + return this.firstVotingFieldSpecified; + } + set { + this.firstVotingFieldSpecified = value; + this.RaisePropertyChanged("FirstVotingSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string AdminAddress { + get { + return this.adminAddressField; + } + set { + this.adminAddressField = value; + this.RaisePropertyChanged("AdminAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=8)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class VotingSystemDetailsType : object, System.ComponentModel.INotifyPropertyChanged { + + private VotingSystemType votingSystemField; + + private string itemField; + + private ItemChoiceType8 itemElementNameField; + + private string votingSystemUrlField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VotingSystemType VotingSystem { + get { + return this.votingSystemField; + } + set { + this.votingSystemField = value; + this.RaisePropertyChanged("VotingSystem"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VotingSystemGuid", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("VotingSystemName", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType8 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string VotingSystemUrl { + get { + return this.votingSystemUrlField; + } + set { + this.votingSystemUrlField = value; + this.RaisePropertyChanged("VotingSystemUrl"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum VotingSystemType { + + /// + HCS, + + /// + PublicServicesPortal, + + /// + Regional, + + /// + Other, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType8 { + + /// + VotingSystemGuid, + + /// + VotingSystemName, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AdminOfGeneralMeetingType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CitizenAdministator", typeof(AdminOfGeneralMeetingTypeCitizenAdministator), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LegalEntityAdministrator", typeof(RegOrgRootAndVersionType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AdminOfGeneralMeetingTypeCitizenAdministator : object, System.ComponentModel.INotifyPropertyChanged { + + private VotingInitiatorIndType indField; + + private string fIASHouseGuidField; + + private string placeAddressField; + + private string[] phoneField; + + private string[] emailField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VotingInitiatorIndType Ind { + get { + return this.indField; + } + set { + this.indField = value; + this.RaisePropertyChanged("Ind"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PlaceAddress { + get { + return this.placeAddressField; + } + set { + this.placeAddressField = value; + this.RaisePropertyChanged("PlaceAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Phone", Order=3)] + public string[] Phone { + get { + return this.phoneField; + } + set { + this.phoneField = value; + this.RaisePropertyChanged("Phone"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Email", Order=4)] + public string[] Email { + get { + return this.emailField; + } + set { + this.emailField = value; + this.RaisePropertyChanged("Email"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class VotingInitiatorIndType : FIOType { + + private VotingInitiatorIndTypeSex sexField; + + private bool sexFieldSpecified; + + private System.DateTime dateOfBirthField; + + private bool dateOfBirthFieldSpecified; + + private string sNILSField; + + private VotingInitiatorIndID votingInitiatorIndIDField; + + private string placeBirthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public VotingInitiatorIndTypeSex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateOfBirth { + get { + return this.dateOfBirthField; + } + set { + this.dateOfBirthField = value; + this.RaisePropertyChanged("DateOfBirth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateOfBirthSpecified { + get { + return this.dateOfBirthFieldSpecified; + } + set { + this.dateOfBirthFieldSpecified = value; + this.RaisePropertyChanged("DateOfBirthSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=2)] + public string SNILS { + get { + return this.sNILSField; + } + set { + this.sNILSField = value; + this.RaisePropertyChanged("SNILS"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public VotingInitiatorIndID VotingInitiatorIndID { + get { + return this.votingInitiatorIndIDField; + } + set { + this.votingInitiatorIndIDField = value; + this.RaisePropertyChanged("VotingInitiatorIndID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string PlaceBirth { + get { + return this.placeBirthField; + } + set { + this.placeBirthField = value; + this.RaisePropertyChanged("PlaceBirth"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum VotingInitiatorIndTypeSex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class VotingInitiatorIndID : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private string seriesField; + + private string numberField; + + private System.DateTime issueDateField; + + private bool issueDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime IssueDate { + get { + return this.issueDateField; + } + set { + this.issueDateField = value; + this.RaisePropertyChanged("IssueDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IssueDateSpecified { + get { + return this.issueDateFieldSpecified; + } + set { + this.issueDateFieldSpecified = value; + this.RaisePropertyChanged("IssueDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(IndType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DecisionIndType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(VotingInitiatorIndType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AccountIndType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/")] + public partial class FIOType : object, System.ComponentModel.INotifyPropertyChanged { + + private string surnameField; + + private string firstNameField; + + private string patronymicField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Surname { + get { + return this.surnameField; + } + set { + this.surnameField = value; + this.RaisePropertyChanged("Surname"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("FirstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Patronymic { + get { + return this.patronymicField; + } + set { + this.patronymicField = value; + this.RaisePropertyChanged("Patronymic"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/")] + public partial class IndType : FIOType { + + private Sex sexField; + + private bool sexFieldSpecified; + + private System.DateTime dateOfBirthField; + + private bool dateOfBirthFieldSpecified; + + private object itemField; + + private string placeBirthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public Sex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateOfBirth { + get { + return this.dateOfBirthField; + } + set { + this.dateOfBirthField = value; + this.RaisePropertyChanged("DateOfBirth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateOfBirthSpecified { + get { + return this.dateOfBirthFieldSpecified; + } + set { + this.dateOfBirthFieldSpecified = value; + this.RaisePropertyChanged("DateOfBirthSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ID", typeof(ID), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string PlaceBirth { + get { + return this.placeBirthField; + } + set { + this.placeBirthField = value; + this.RaisePropertyChanged("PlaceBirth"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/")] + public enum Sex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/")] + public partial class ID : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private string seriesField; + + private string numberField; + + private System.DateTime issueDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime IssueDate { + get { + return this.issueDateField; + } + set { + this.issueDateField = value; + this.RaisePropertyChanged("IssueDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DecisionIndType : FIOType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountIndType : FIOType { + + private AccountIndTypeSex sexField; + + private bool sexFieldSpecified; + + private System.DateTime dateOfBirthField; + + private bool dateOfBirthFieldSpecified; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AccountIndTypeSex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateOfBirth { + get { + return this.dateOfBirthField; + } + set { + this.dateOfBirthField = value; + this.RaisePropertyChanged("DateOfBirth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateOfBirthSpecified { + get { + return this.dateOfBirthFieldSpecified; + } + set { + this.dateOfBirthFieldSpecified = value; + this.RaisePropertyChanged("DateOfBirthSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ID", typeof(ID), Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=2)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum AccountIndTypeSex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class RegOrgRootAndVersionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType10 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("orgRootEntityGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType10 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", IncludeInSchema=false)] + public enum ItemChoiceType10 { + + /// + orgRootEntityGUID, + + /// + orgVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeMeeting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=2)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeMeetingAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private System.DateTime aVotingEndDateField; + + private string resolutionPlaceField; + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingEndDate { + get { + return this.aVotingEndDateField; + } + set { + this.aVotingEndDateField = value; + this.RaisePropertyChanged("AVotingEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MeetingTypeType { + + /// + Owners, + + /// + Homeowners, + + /// + Cooperative, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class VoteInitiators : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(VotingInitiatorIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Org", typeof(RegOrgRootAndVersionType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeDecisionList : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private string questionNameField; + + private nsiRef decisionsTypeField; + + private MessageExportTypeDecisionListHomeownersDecisionsType homeownersDecisionsTypeField; + + private bool itemField; + + private ItemChoiceType12 itemElementNameField; + + private nsiRef formingFundField; + + private nsiRef managementTypeField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string QuestionName { + get { + return this.questionNameField; + } + set { + this.questionNameField = value; + this.RaisePropertyChanged("QuestionName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef DecisionsType { + get { + return this.decisionsTypeField; + } + set { + this.decisionsTypeField = value; + this.RaisePropertyChanged("DecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public MessageExportTypeDecisionListHomeownersDecisionsType HomeownersDecisionsType { + get { + return this.homeownersDecisionsTypeField; + } + set { + this.homeownersDecisionsTypeField = value; + this.RaisePropertyChanged("HomeownersDecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("CharterNotContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType12 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public nsiRef FormingFund { + get { + return this.formingFundField; + } + set { + this.formingFundField = value; + this.RaisePropertyChanged("FormingFund"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef ManagementType { + get { + return this.managementTypeField; + } + set { + this.managementTypeField = value; + this.RaisePropertyChanged("ManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageExportTypeDecisionListHomeownersDecisionsType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType12 { + + /// + CharterContained, + + /// + CharterNotContained, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportVotingProtocolResultType : ProtocolExportType { + + private exportVotingProtocolResultTypeStatusProtocol statusProtocolField; + + private string votingProtocolGUIDField; + + private string rootProtocolGUIDField; + + private exportVotingProtocolResultTypeStatusVersionProtocol statusVersionProtocolField; + + private int versionNumberField; + + private System.DateTime versionDateModificationField; + + private bool versionDateModificationFieldSpecified; + + private System.DateTime versionDatePlacementField; + + private bool versionDatePlacementFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportVotingProtocolResultTypeStatusProtocol StatusProtocol { + get { + return this.statusProtocolField; + } + set { + this.statusProtocolField = value; + this.RaisePropertyChanged("StatusProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string VotingProtocolGUID { + get { + return this.votingProtocolGUIDField; + } + set { + this.votingProtocolGUIDField = value; + this.RaisePropertyChanged("VotingProtocolGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string RootProtocolGUID { + get { + return this.rootProtocolGUIDField; + } + set { + this.rootProtocolGUIDField = value; + this.RaisePropertyChanged("RootProtocolGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public exportVotingProtocolResultTypeStatusVersionProtocol StatusVersionProtocol { + get { + return this.statusVersionProtocolField; + } + set { + this.statusVersionProtocolField = value; + this.RaisePropertyChanged("StatusVersionProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public int VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime VersionDateModification { + get { + return this.versionDateModificationField; + } + set { + this.versionDateModificationField = value; + this.RaisePropertyChanged("VersionDateModification"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VersionDateModificationSpecified { + get { + return this.versionDateModificationFieldSpecified; + } + set { + this.versionDateModificationFieldSpecified = value; + this.RaisePropertyChanged("VersionDateModificationSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=6)] + public System.DateTime VersionDatePlacement { + get { + return this.versionDatePlacementField; + } + set { + this.versionDatePlacementField = value; + this.RaisePropertyChanged("VersionDatePlacement"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VersionDatePlacementSpecified { + get { + return this.versionDatePlacementFieldSpecified; + } + set { + this.versionDatePlacementFieldSpecified = value; + this.RaisePropertyChanged("VersionDatePlacementSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportVotingProtocolResultTypeStatusProtocol { + + /// + Created, + + /// + Posted, + + /// + Edited, + + /// + Annuled, + + /// + PostedFromAnotherSystem, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportVotingProtocolResultTypeStatusVersionProtocol { + + /// + Created, + + /// + Posted, + + /// + Edited, + + /// + Annuled, + + /// + PostedFromAnotherSystem, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportVotingProtocolResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGuidField; + + private RegOrgType organizationGuidField; + + private string protocolNumField; + + private System.DateTime protocolDateField; + + private object itemField; + + private MeetingTypeType meetingTypeField; + + private bool meetingTypeFieldSpecified; + + private bool item1Field; + + private Item1ChoiceType4 item1ElementNameField; + + private ProtocolExportTypeVoteInitiators[] voteInitiatorsField; + + private ProtocolExportTypeMeetingEligibility meetingEligibilityField; + + private ProtocolExportTypeDecisionList[] decisionListField; + + private string modificationField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public RegOrgType OrganizationGuid { + get { + return this.organizationGuidField; + } + set { + this.organizationGuidField = value; + this.RaisePropertyChanged("OrganizationGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ProtocolNum { + get { + return this.protocolNumField; + } + set { + this.protocolNumField = value; + this.RaisePropertyChanged("ProtocolNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime ProtocolDate { + get { + return this.protocolDateField; + } + set { + this.protocolDateField = value; + this.RaisePropertyChanged("ProtocolDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AVoting", typeof(ProtocolExportTypeAVoting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("EVoting", typeof(ProtocolExportTypeEVoting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("Meeting", typeof(ProtocolExportTypeMeeting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("MeetingAVoting", typeof(ProtocolExportTypeMeetingAVoting), Order=4)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public MeetingTypeType MeetingType { + get { + return this.meetingTypeField; + } + set { + this.meetingTypeField = value; + this.RaisePropertyChanged("MeetingType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeetingTypeSpecified { + get { + return this.meetingTypeFieldSpecified; + } + set { + this.meetingTypeFieldSpecified = value; + this.RaisePropertyChanged("MeetingTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnualVoting", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ExtraVoting", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType4 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VoteInitiators", Order=8)] + public ProtocolExportTypeVoteInitiators[] VoteInitiators { + get { + return this.voteInitiatorsField; + } + set { + this.voteInitiatorsField = value; + this.RaisePropertyChanged("VoteInitiators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public ProtocolExportTypeMeetingEligibility MeetingEligibility { + get { + return this.meetingEligibilityField; + } + set { + this.meetingEligibilityField = value; + this.RaisePropertyChanged("MeetingEligibility"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionList", Order=10)] + public ProtocolExportTypeDecisionList[] DecisionList { + get { + return this.decisionListField; + } + set { + this.decisionListField = value; + this.RaisePropertyChanged("DecisionList"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public string Modification { + get { + return this.modificationField; + } + set { + this.modificationField = value; + this.RaisePropertyChanged("Modification"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private bool aVotingStartDateFieldSpecified; + + private System.DateTime aVotingDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AVotingStartDateSpecified { + get { + return this.aVotingStartDateFieldSpecified; + } + set { + this.aVotingStartDateFieldSpecified = value; + this.RaisePropertyChanged("AVotingStartDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingDate { + get { + return this.aVotingDateField; + } + set { + this.aVotingDateField = value; + this.RaisePropertyChanged("AVotingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=3)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeEVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime eVotingDateBeginField; + + private System.DateTime eVotingDateEndField; + + private string disciplineField; + + private string infoReviewField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private bool firstVotingField; + + private bool firstVotingFieldSpecified; + + private Attachments[] attachmentsField; + + public ProtocolExportTypeEVoting() { + this.firstVotingField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EVotingDateBegin { + get { + return this.eVotingDateBeginField; + } + set { + this.eVotingDateBeginField = value; + this.RaisePropertyChanged("EVotingDateBegin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime EVotingDateEnd { + get { + return this.eVotingDateEndField; + } + set { + this.eVotingDateEndField = value; + this.RaisePropertyChanged("EVotingDateEnd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Discipline { + get { + return this.disciplineField; + } + set { + this.disciplineField = value; + this.RaisePropertyChanged("Discipline"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string InfoReview { + get { + return this.infoReviewField; + } + set { + this.infoReviewField = value; + this.RaisePropertyChanged("InfoReview"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool FirstVoting { + get { + return this.firstVotingField; + } + set { + this.firstVotingField = value; + this.RaisePropertyChanged("FirstVoting"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FirstVotingSpecified { + get { + return this.firstVotingFieldSpecified; + } + set { + this.firstVotingFieldSpecified = value; + this.RaisePropertyChanged("FirstVotingSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=6)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeMeeting : VoitingType { + + private System.DateTime meetingDateField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=1)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class VoitingType : object, System.ComponentModel.INotifyPropertyChanged { + + private string votingPlaceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeMeetingAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private System.DateTime aVotingStartDateField; + + private bool aVotingStartDateFieldSpecified; + + private System.DateTime aVotingDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AVotingStartDateSpecified { + get { + return this.aVotingStartDateFieldSpecified; + } + set { + this.aVotingStartDateFieldSpecified = value; + this.RaisePropertyChanged("AVotingStartDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime AVotingDate { + get { + return this.aVotingDateField; + } + set { + this.aVotingDateField = value; + this.RaisePropertyChanged("AVotingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType4 { + + /// + AnnualVoting, + + /// + ExtraVoting, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeVoteInitiators : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(VotingInitiatorIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Org", typeof(RegOrgVersionType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class RegOrgVersionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgVersionGUID { + get { + return this.orgVersionGUIDField; + } + set { + this.orgVersionGUIDField = value; + this.RaisePropertyChanged("orgVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ProtocolExportTypeMeetingEligibility { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeDecisionList : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private string questionNameField; + + private nsiRef decisionsTypeField; + + private ProtocolExportTypeDecisionListHomeownersDecisionsType homeownersDecisionsTypeField; + + private bool itemField; + + private ItemChoiceType9 itemElementNameField; + + private decimal agreeField; + + private bool agreeFieldSpecified; + + private decimal againstField; + + private bool againstFieldSpecified; + + private decimal abstentField; + + private bool abstentFieldSpecified; + + private nsiRef formingFundField; + + private nsiRef managementTypeField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + private ProtocolExportTypeDecisionListVotingResume votingResumeField; + + private bool votingResumeFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string QuestionName { + get { + return this.questionNameField; + } + set { + this.questionNameField = value; + this.RaisePropertyChanged("QuestionName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef DecisionsType { + get { + return this.decisionsTypeField; + } + set { + this.decisionsTypeField = value; + this.RaisePropertyChanged("DecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ProtocolExportTypeDecisionListHomeownersDecisionsType HomeownersDecisionsType { + get { + return this.homeownersDecisionsTypeField; + } + set { + this.homeownersDecisionsTypeField = value; + this.RaisePropertyChanged("HomeownersDecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("CharterNotContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType9 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public decimal Agree { + get { + return this.agreeField; + } + set { + this.agreeField = value; + this.RaisePropertyChanged("Agree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgreeSpecified { + get { + return this.agreeFieldSpecified; + } + set { + this.agreeFieldSpecified = value; + this.RaisePropertyChanged("AgreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public decimal Against { + get { + return this.againstField; + } + set { + this.againstField = value; + this.RaisePropertyChanged("Against"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgainstSpecified { + get { + return this.againstFieldSpecified; + } + set { + this.againstFieldSpecified = value; + this.RaisePropertyChanged("AgainstSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public decimal Abstent { + get { + return this.abstentField; + } + set { + this.abstentField = value; + this.RaisePropertyChanged("Abstent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AbstentSpecified { + get { + return this.abstentFieldSpecified; + } + set { + this.abstentFieldSpecified = value; + this.RaisePropertyChanged("AbstentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public nsiRef FormingFund { + get { + return this.formingFundField; + } + set { + this.formingFundField = value; + this.RaisePropertyChanged("FormingFund"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public nsiRef ManagementType { + get { + return this.managementTypeField; + } + set { + this.managementTypeField = value; + this.RaisePropertyChanged("ManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public ProtocolExportTypeDecisionListVotingResume votingResume { + get { + return this.votingResumeField; + } + set { + this.votingResumeField = value; + this.RaisePropertyChanged("votingResume"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool votingResumeSpecified { + get { + return this.votingResumeFieldSpecified; + } + set { + this.votingResumeFieldSpecified = value; + this.RaisePropertyChanged("votingResumeSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolExportTypeDecisionListHomeownersDecisionsType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType9 { + + /// + CharterContained, + + /// + CharterNotContained, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ProtocolExportTypeDecisionListVotingResume { + + /// + M, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountIndividualServicesResultType : AccountIndividualServiceType { + + private string accountIndividualServiceGUIDField; + + private string accountGUIDField; + + private bool isActualField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AccountIndividualServiceGUID { + get { + return this.accountIndividualServiceGUIDField; + } + set { + this.accountIndividualServiceGUIDField = value; + this.RaisePropertyChanged("AccountIndividualServiceGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsActual { + get { + return this.isActualField; + } + set { + this.isActualField = value; + this.RaisePropertyChanged("IsActual"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportAccountIndividualServicesResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountIndividualServiceType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime beginDateField; + + private System.DateTime endDateField; + + private nsiRef additionalServiceField; + + private AttachmentType attachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime BeginDate { + get { + return this.beginDateField; + } + set { + this.beginDateField = value; + this.RaisePropertyChanged("BeginDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef AdditionalService { + get { + return this.additionalServiceField; + } + set { + this.additionalServiceField = value; + this.RaisePropertyChanged("AdditionalService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AttachmentType Attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("Attachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultType : AccountExportType { + + private exportAccountResultTypeAccountReasons accountReasonsField; + + private string accountNumberField; + + private string accountGUIDField; + + private string unifiedAccountNumberField; + + private string serviceIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportAccountResultTypeAccountReasons AccountReasons { + get { + return this.accountReasonsField; + } + set { + this.accountReasonsField = value; + this.RaisePropertyChanged("AccountReasons"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string AccountNumber { + get { + return this.accountNumberField; + } + set { + this.accountNumberField = value; + this.RaisePropertyChanged("AccountNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=3)] + public string UnifiedAccountNumber { + get { + return this.unifiedAccountNumberField; + } + set { + this.unifiedAccountNumberField = value; + this.RaisePropertyChanged("UnifiedAccountNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=4)] + public string ServiceID { + get { + return this.serviceIDField; + } + set { + this.serviceIDField = value; + this.RaisePropertyChanged("ServiceID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultTypeAccountReasons : AccountReasonsImportType { + + private exportAccountResultTypeAccountReasonsContract contractField; + + private exportAccountResultTypeAccountReasonsCharter charterField; + + private exportAccountResultTypeAccountReasonsOverhaulFormingKindProtocol overhaulFormingKindProtocolField; + + private exportAccountResultTypeAccountReasonsOverhaulFormingKindOMSDescision overhaulFormingKindOMSDescisionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportAccountResultTypeAccountReasonsContract Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportAccountResultTypeAccountReasonsCharter Charter { + get { + return this.charterField; + } + set { + this.charterField = value; + this.RaisePropertyChanged("Charter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportAccountResultTypeAccountReasonsOverhaulFormingKindProtocol OverhaulFormingKindProtocol { + get { + return this.overhaulFormingKindProtocolField; + } + set { + this.overhaulFormingKindProtocolField = value; + this.RaisePropertyChanged("OverhaulFormingKindProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public exportAccountResultTypeAccountReasonsOverhaulFormingKindOMSDescision OverhaulFormingKindOMSDescision { + get { + return this.overhaulFormingKindOMSDescisionField; + } + set { + this.overhaulFormingKindOMSDescisionField = value; + this.RaisePropertyChanged("OverhaulFormingKindOMSDescision"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultTypeAccountReasonsContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultTypeAccountReasonsCharter : object, System.ComponentModel.INotifyPropertyChanged { + + private string charterGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterGUID { + get { + return this.charterGUIDField; + } + set { + this.charterGUIDField = value; + this.RaisePropertyChanged("CharterGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultTypeAccountReasonsOverhaulFormingKindProtocol : object, System.ComponentModel.INotifyPropertyChanged { + + private string overhaulFormingKindProtocolGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string OverhaulFormingKindProtocolGUID { + get { + return this.overhaulFormingKindProtocolGUIDField; + } + set { + this.overhaulFormingKindProtocolGUIDField = value; + this.RaisePropertyChanged("OverhaulFormingKindProtocolGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountResultTypeAccountReasonsOverhaulFormingKindOMSDescision : object, System.ComponentModel.INotifyPropertyChanged { + + private string overhaulFormingKindOMSDescisionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string OverhaulFormingKindOMSDescisionGUID { + get { + return this.overhaulFormingKindOMSDescisionGUIDField; + } + set { + this.overhaulFormingKindOMSDescisionGUIDField = value; + this.RaisePropertyChanged("OverhaulFormingKindOMSDescisionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountReasonsImportType : object, System.ComponentModel.INotifyPropertyChanged { + + private AccountReasonsImportTypeSupplyResourceContract[] supplyResourceContractField; + + private AccountReasonsImportTypeSocialHireContract socialHireContractField; + + private AccountReasonsImportTypeTKOContract[] tKOContractField; + + /// + [System.Xml.Serialization.XmlElementAttribute("SupplyResourceContract", Order=0)] + public AccountReasonsImportTypeSupplyResourceContract[] SupplyResourceContract { + get { + return this.supplyResourceContractField; + } + set { + this.supplyResourceContractField = value; + this.RaisePropertyChanged("SupplyResourceContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public AccountReasonsImportTypeSocialHireContract SocialHireContract { + get { + return this.socialHireContractField; + } + set { + this.socialHireContractField = value; + this.RaisePropertyChanged("SocialHireContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TKOContract", Order=2)] + public AccountReasonsImportTypeTKOContract[] TKOContract { + get { + return this.tKOContractField; + } + set { + this.tKOContractField = value; + this.RaisePropertyChanged("TKOContract"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountReasonsImportTypeSupplyResourceContract : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType9[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IsContract", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType9[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType9 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + IsContract, + + /// + SigningDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountReasonsImportTypeSocialHireContract : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType10[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Type", typeof(AccountReasonsImportTypeSocialHireContractType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType10[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum AccountReasonsImportTypeSocialHireContractType { + + /// + D, + + /// + M, + + /// + S, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType10 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + SigningDate, + + /// + Type, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountReasonsImportTypeTKOContract : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType11[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DateEntry", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType11[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType11 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + DateEntry, + + /// + SigningDate, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportAccountResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType6 itemElementNameField; + + private System.DateTime creationDateField; + + private bool creationDateFieldSpecified; + + private string livingPersonsNumberField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private decimal residentialSquareField; + + private bool residentialSquareFieldSpecified; + + private decimal heatedAreaField; + + private bool heatedAreaFieldSpecified; + + private ClosedAccountAttributesType closedField; + + private AccountExportTypeAccommodation[] accommodationField; + + private AccountExportTypePayerInfo payerInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute("isCRAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isOGVorOMSAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isRCAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isRSOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isTKOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isUOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType6 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public System.DateTime CreationDate { + get { + return this.creationDateField; + } + set { + this.creationDateField = value; + this.RaisePropertyChanged("CreationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationDateSpecified { + get { + return this.creationDateFieldSpecified; + } + set { + this.creationDateFieldSpecified = value; + this.RaisePropertyChanged("CreationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=3)] + public string LivingPersonsNumber { + get { + return this.livingPersonsNumberField; + } + set { + this.livingPersonsNumberField = value; + this.RaisePropertyChanged("LivingPersonsNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public decimal ResidentialSquare { + get { + return this.residentialSquareField; + } + set { + this.residentialSquareField = value; + this.RaisePropertyChanged("ResidentialSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ResidentialSquareSpecified { + get { + return this.residentialSquareFieldSpecified; + } + set { + this.residentialSquareFieldSpecified = value; + this.RaisePropertyChanged("ResidentialSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public decimal HeatedArea { + get { + return this.heatedAreaField; + } + set { + this.heatedAreaField = value; + this.RaisePropertyChanged("HeatedArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HeatedAreaSpecified { + get { + return this.heatedAreaFieldSpecified; + } + set { + this.heatedAreaFieldSpecified = value; + this.RaisePropertyChanged("HeatedAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public ClosedAccountAttributesType Closed { + get { + return this.closedField; + } + set { + this.closedField = value; + this.RaisePropertyChanged("Closed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Accommodation", Order=8)] + public AccountExportTypeAccommodation[] Accommodation { + get { + return this.accommodationField; + } + set { + this.accommodationField = value; + this.RaisePropertyChanged("Accommodation"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public AccountExportTypePayerInfo PayerInfo { + get { + return this.payerInfoField; + } + set { + this.payerInfoField = value; + this.RaisePropertyChanged("PayerInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType6 { + + /// + isCRAccount, + + /// + isOGVorOMSAccount, + + /// + isRCAccount, + + /// + isRSOAccount, + + /// + isTKOAccount, + + /// + isUOAccount, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ClosedAccountAttributesType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef closeReasonField; + + private System.DateTime closeDateField; + + private string descriptionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef CloseReason { + get { + return this.closeReasonField; + } + set { + this.closeReasonField = value; + this.RaisePropertyChanged("CloseReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime CloseDate { + get { + return this.closeDateField; + } + set { + this.closeDateField = value; + this.RaisePropertyChanged("CloseDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountExportTypeAccommodation : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType7 itemElementNameField; + + private decimal sharePercentField; + + private bool sharePercentFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PremisesGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType7 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal SharePercent { + get { + return this.sharePercentField; + } + set { + this.sharePercentField = value; + this.RaisePropertyChanged("SharePercent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SharePercentSpecified { + get { + return this.sharePercentFieldSpecified; + } + set { + this.sharePercentFieldSpecified = value; + this.RaisePropertyChanged("SharePercentSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType7 { + + /// + FIASHouseGuid, + + /// + LivingRoomGUID, + + /// + PremisesGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountExportTypePayerInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isRenterField; + + private bool isRenterFieldSpecified; + + private bool isAccountsDividedField; + + private bool isAccountsDividedFieldSpecified; + + private object itemField; + + public AccountExportTypePayerInfo() { + this.isRenterField = true; + this.isAccountsDividedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsRenter { + get { + return this.isRenterField; + } + set { + this.isRenterField = value; + this.RaisePropertyChanged("IsRenter"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRenterSpecified { + get { + return this.isRenterFieldSpecified; + } + set { + this.isRenterFieldSpecified = value; + this.RaisePropertyChanged("IsRenterSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool isAccountsDivided { + get { + return this.isAccountsDividedField; + } + set { + this.isAccountsDividedField = value; + this.RaisePropertyChanged("isAccountsDivided"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool isAccountsDividedSpecified { + get { + return this.isAccountsDividedFieldSpecified; + } + set { + this.isAccountsDividedFieldSpecified = value; + this.RaisePropertyChanged("isAccountsDividedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(AccountIndExportType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Org", typeof(RegOrgVersionType), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountIndExportType : FIOExportType { + + private AccountIndExportTypeSex sexField; + + private bool sexFieldSpecified; + + private System.DateTime dateOfBirthField; + + private bool dateOfBirthFieldSpecified; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AccountIndExportTypeSex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateOfBirth { + get { + return this.dateOfBirthField; + } + set { + this.dateOfBirthField = value; + this.RaisePropertyChanged("DateOfBirth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateOfBirthSpecified { + get { + return this.dateOfBirthFieldSpecified; + } + set { + this.dateOfBirthFieldSpecified = value; + this.RaisePropertyChanged("DateOfBirthSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ID", typeof(AccountIndExportTypeID), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum AccountIndExportTypeSex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountIndExportTypeID : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private string seriesField; + + private string numberField; + + private System.DateTime issueDateField; + + private bool issueDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime IssueDate { + get { + return this.issueDateField; + } + set { + this.issueDateField = value; + this.RaisePropertyChanged("IssueDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IssueDateSpecified { + get { + return this.issueDateFieldSpecified; + } + set { + this.issueDateFieldSpecified = value; + this.RaisePropertyChanged("IssueDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(AccountIndExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/")] + public partial class FIOExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string surnameField; + + private string firstNameField; + + private string patronymicField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Surname { + get { + return this.surnameField; + } + set { + this.surnameField = value; + this.RaisePropertyChanged("Surname"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("FirstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Patronymic { + get { + return this.patronymicField; + } + set { + this.patronymicField = value; + this.RaisePropertyChanged("Patronymic"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportBriefApartmentHouseResult : object, System.ComponentModel.INotifyPropertyChanged { + + private BriefApartmentHouseType apartmentHouseInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BriefApartmentHouseType ApartmentHouseInfo { + get { + return this.apartmentHouseInfoField; + } + set { + this.apartmentHouseInfoField = value; + this.RaisePropertyChanged("ApartmentHouseInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefApartmentHouseType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hCSHouseGUIDField; + + private string fIASHouseGUIDField; + + private string houseUniqueNumberField; + + private System.DateTime modificationDateField; + + private BriefEntranceType[] entranceField; + + private BriefResidentialPremisesType[] residentialPremisesField; + + private BriefNonResidentialPremisesType[] nonResidentialPremisesField; + + private nsiRef houseManagementTypeField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private System.DateTime demolishionDateField; + + private bool demolishionDateFieldSpecified; + + private string demolishionReasonField; + + private bool isAsyncProcessedField; + + private bool isAsyncProcessedFieldSpecified; + + private ExportHostelDataType exportHostelDataField; + + public BriefApartmentHouseType() { + this.isAsyncProcessedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HCSHouseGUID { + get { + return this.hCSHouseGUIDField; + } + set { + this.hCSHouseGUIDField = value; + this.RaisePropertyChanged("HCSHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGUID { + get { + return this.fIASHouseGUIDField; + } + set { + this.fIASHouseGUIDField = value; + this.RaisePropertyChanged("FIASHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string HouseUniqueNumber { + get { + return this.houseUniqueNumberField; + } + set { + this.houseUniqueNumberField = value; + this.RaisePropertyChanged("HouseUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Entrance", Order=4)] + public BriefEntranceType[] Entrance { + get { + return this.entranceField; + } + set { + this.entranceField = value; + this.RaisePropertyChanged("Entrance"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremises", Order=5)] + public BriefResidentialPremisesType[] ResidentialPremises { + get { + return this.residentialPremisesField; + } + set { + this.residentialPremisesField = value; + this.RaisePropertyChanged("ResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremises", Order=6)] + public BriefNonResidentialPremisesType[] NonResidentialPremises { + get { + return this.nonResidentialPremisesField; + } + set { + this.nonResidentialPremisesField = value; + this.RaisePropertyChanged("NonResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=8)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=11)] + public System.DateTime DemolishionDate { + get { + return this.demolishionDateField; + } + set { + this.demolishionDateField = value; + this.RaisePropertyChanged("DemolishionDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DemolishionDateSpecified { + get { + return this.demolishionDateFieldSpecified; + } + set { + this.demolishionDateFieldSpecified = value; + this.RaisePropertyChanged("DemolishionDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public string DemolishionReason { + get { + return this.demolishionReasonField; + } + set { + this.demolishionReasonField = value; + this.RaisePropertyChanged("DemolishionReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool IsAsyncProcessed { + get { + return this.isAsyncProcessedField; + } + set { + this.isAsyncProcessedField = value; + this.RaisePropertyChanged("IsAsyncProcessed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsAsyncProcessedSpecified { + get { + return this.isAsyncProcessedFieldSpecified; + } + set { + this.isAsyncProcessedFieldSpecified = value; + this.RaisePropertyChanged("IsAsyncProcessedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public ExportHostelDataType ExportHostelData { + get { + return this.exportHostelDataField; + } + set { + this.exportHostelDataField = value; + this.RaisePropertyChanged("ExportHostelData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefEntranceType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceGUIDField; + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceGUID { + get { + return this.entranceGUIDField; + } + set { + this.entranceGUIDField = value; + this.RaisePropertyChanged("EntranceGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefResidentialPremisesType : object, System.ComponentModel.INotifyPropertyChanged { + + private string premisesGUIDField; + + private string premisesUniqueNumberField; + + private string premisesNumField; + + private string fIASChildHouseGuidField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private object itemField; + + private BriefLivingRoomType[] livingRoomField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesUniqueNumber { + get { + return this.premisesUniqueNumberField; + } + set { + this.premisesUniqueNumberField = value; + this.RaisePropertyChanged("PremisesUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=8)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=8)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", Order=9)] + public BriefLivingRoomType[] LivingRoom { + get { + return this.livingRoomField; + } + set { + this.livingRoomField = value; + this.RaisePropertyChanged("LivingRoom"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefLivingRoomType : object, System.ComponentModel.INotifyPropertyChanged { + + private string livingRoomGUIDField; + + private string livingRoomUniqueNumberField; + + private string roomNumberField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomUniqueNumber { + get { + return this.livingRoomUniqueNumberField; + } + set { + this.livingRoomUniqueNumberField = value; + this.RaisePropertyChanged("LivingRoomUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefNonResidentialPremisesType : object, System.ComponentModel.INotifyPropertyChanged { + + private string premisesGUIDField; + + private string premisesUniqueNumberField; + + private string premisesNumField; + + private string fIASChildHouseGuidField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesUniqueNumber { + get { + return this.premisesUniqueNumberField; + } + set { + this.premisesUniqueNumberField = value; + this.RaisePropertyChanged("PremisesUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportHostelDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + private nsiRef hostelTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef HostelType { + get { + return this.hostelTypeField; + } + set { + this.hostelTypeField = value; + this.RaisePropertyChanged("HostelType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportBriefBasicHouseResult : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportBriefBasicHouseResultType[] resultItemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ResultItem", Order=0)] + public ExportBriefBasicHouseResultType[] ResultItem { + get { + return this.resultItemField; + } + set { + this.resultItemField = value; + this.RaisePropertyChanged("ResultItem"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportBriefBasicHouseResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("BasicHouseInfo", typeof(BriefBasicHouseType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(ErrorMessageType), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefBasicHouseType : object, System.ComponentModel.INotifyPropertyChanged { + + private BriefLocationType locationInfoField; + + private BriefBasicCharactericticsType basicCharacteristictsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BriefLocationType LocationInfo { + get { + return this.locationInfoField; + } + set { + this.locationInfoField = value; + this.RaisePropertyChanged("LocationInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BriefBasicCharactericticsType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefLocationType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hCSHouseGUIDField; + + private string fIASHouseGUIDField; + + private string addressField; + + private string aOGUIDField; + + private string hOUSENUMField; + + private string bUILDNUMField; + + private string sTRUCNUMField; + + private sbyte eSTSTATUSField; + + private sbyte sTRSTATUSField; + + private bool sTRSTATUSFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HCSHouseGUID { + get { + return this.hCSHouseGUIDField; + } + set { + this.hCSHouseGUIDField = value; + this.RaisePropertyChanged("HCSHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGUID { + get { + return this.fIASHouseGUIDField; + } + set { + this.fIASHouseGUIDField = value; + this.RaisePropertyChanged("FIASHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Address { + get { + return this.addressField; + } + set { + this.addressField = value; + this.RaisePropertyChanged("Address"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AOGUID { + get { + return this.aOGUIDField; + } + set { + this.aOGUIDField = value; + this.RaisePropertyChanged("AOGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string HOUSENUM { + get { + return this.hOUSENUMField; + } + set { + this.hOUSENUMField = value; + this.RaisePropertyChanged("HOUSENUM"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string BUILDNUM { + get { + return this.bUILDNUMField; + } + set { + this.bUILDNUMField = value; + this.RaisePropertyChanged("BUILDNUM"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string STRUCNUM { + get { + return this.sTRUCNUMField; + } + set { + this.sTRUCNUMField = value; + this.RaisePropertyChanged("STRUCNUM"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public sbyte ESTSTATUS { + get { + return this.eSTSTATUSField; + } + set { + this.eSTSTATUSField = value; + this.RaisePropertyChanged("ESTSTATUS"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public sbyte STRSTATUS { + get { + return this.sTRSTATUSField; + } + set { + this.sTRSTATUSField = value; + this.RaisePropertyChanged("STRSTATUS"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool STRSTATUSSpecified { + get { + return this.sTRSTATUSFieldSpecified; + } + set { + this.sTRSTATUSFieldSpecified = value; + this.RaisePropertyChanged("STRSTATUSSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefBasicCharactericticsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string houseUniqueNumberField; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private OKTMORefType oKTMOField; + + private string orgPPAGUIDField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private System.DateTime demolishionDateField; + + private bool demolishionDateFieldSpecified; + + private string demolishionReasonField; + + private bool isAsyncProcessedField; + + private bool isAsyncProcessedFieldSpecified; + + private ExportHostelDataType exportHostelDataField; + + public BriefBasicCharactericticsType() { + this.isAsyncProcessedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HouseUniqueNumber { + get { + return this.houseUniqueNumberField; + } + set { + this.houseUniqueNumberField = value; + this.RaisePropertyChanged("HouseUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=8)] + public System.DateTime DemolishionDate { + get { + return this.demolishionDateField; + } + set { + this.demolishionDateField = value; + this.RaisePropertyChanged("DemolishionDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DemolishionDateSpecified { + get { + return this.demolishionDateFieldSpecified; + } + set { + this.demolishionDateFieldSpecified = value; + this.RaisePropertyChanged("DemolishionDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string DemolishionReason { + get { + return this.demolishionReasonField; + } + set { + this.demolishionReasonField = value; + this.RaisePropertyChanged("DemolishionReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool IsAsyncProcessed { + get { + return this.isAsyncProcessedField; + } + set { + this.isAsyncProcessedField = value; + this.RaisePropertyChanged("IsAsyncProcessed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsAsyncProcessedSpecified { + get { + return this.isAsyncProcessedFieldSpecified; + } + set { + this.isAsyncProcessedFieldSpecified = value; + this.RaisePropertyChanged("IsAsyncProcessedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public ExportHostelDataType ExportHostelData { + get { + return this.exportHostelDataField; + } + set { + this.exportHostelDataField = value; + this.RaisePropertyChanged("ExportHostelData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class OKTMORefType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportBriefLivingHouseResult : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportBriefLivingHouseResultType[] resultItemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ResultItem", Order=0)] + public ExportBriefLivingHouseResultType[] ResultItem { + get { + return this.resultItemField; + } + set { + this.resultItemField = value; + this.RaisePropertyChanged("ResultItem"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportBriefLivingHouseResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(ErrorMessageType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseInfo", typeof(BriefLivingHouseType), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefLivingHouseType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hCSHouseGUIDField; + + private string fIASHouseGUIDField; + + private string houseUniqueNumberField; + + private System.DateTime modificationDateField; + + private bool hasBlocksField; + + private bool isMultipleHousesAddressField; + + private object[] itemsField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private System.DateTime demolishionDateField; + + private bool demolishionDateFieldSpecified; + + private string demolishionReasonField; + + private bool isAsyncProcessedField; + + private bool isAsyncProcessedFieldSpecified; + + private ExportHostelDataType exportHostelDataField; + + public BriefLivingHouseType() { + this.isAsyncProcessedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HCSHouseGUID { + get { + return this.hCSHouseGUIDField; + } + set { + this.hCSHouseGUIDField = value; + this.RaisePropertyChanged("HCSHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGUID { + get { + return this.fIASHouseGUIDField; + } + set { + this.fIASHouseGUIDField = value; + this.RaisePropertyChanged("FIASHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string HouseUniqueNumber { + get { + return this.houseUniqueNumberField; + } + set { + this.houseUniqueNumberField = value; + this.RaisePropertyChanged("HouseUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool HasBlocks { + get { + return this.hasBlocksField; + } + set { + this.hasBlocksField = value; + this.RaisePropertyChanged("HasBlocks"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool IsMultipleHousesAddress { + get { + return this.isMultipleHousesAddressField; + } + set { + this.isMultipleHousesAddressField = value; + this.RaisePropertyChanged("IsMultipleHousesAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Block", typeof(BriefBlockType), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", typeof(BriefLivingRoomType), Order=6)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=7)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=10)] + public System.DateTime DemolishionDate { + get { + return this.demolishionDateField; + } + set { + this.demolishionDateField = value; + this.RaisePropertyChanged("DemolishionDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DemolishionDateSpecified { + get { + return this.demolishionDateFieldSpecified; + } + set { + this.demolishionDateFieldSpecified = value; + this.RaisePropertyChanged("DemolishionDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public string DemolishionReason { + get { + return this.demolishionReasonField; + } + set { + this.demolishionReasonField = value; + this.RaisePropertyChanged("DemolishionReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool IsAsyncProcessed { + get { + return this.isAsyncProcessedField; + } + set { + this.isAsyncProcessedField = value; + this.RaisePropertyChanged("IsAsyncProcessed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsAsyncProcessedSpecified { + get { + return this.isAsyncProcessedFieldSpecified; + } + set { + this.isAsyncProcessedFieldSpecified = value; + this.RaisePropertyChanged("IsAsyncProcessedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public ExportHostelDataType ExportHostelData { + get { + return this.exportHostelDataField; + } + set { + this.exportHostelDataField = value; + this.RaisePropertyChanged("ExportHostelData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BriefBlockType : object, System.ComponentModel.INotifyPropertyChanged { + + private string blockGUIDField; + + private string blockUniqueNumberField; + + private string blockNumField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + private BriefLivingRoomType[] livingRoomField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockGUID { + get { + return this.blockGUIDField; + } + set { + this.blockGUIDField = value; + this.RaisePropertyChanged("BlockGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string BlockUniqueNumber { + get { + return this.blockUniqueNumberField; + } + set { + this.blockUniqueNumberField = value; + this.RaisePropertyChanged("BlockUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", Order=8)] + public BriefLivingRoomType[] LivingRoom { + get { + return this.livingRoomField; + } + set { + this.livingRoomField = value; + this.RaisePropertyChanged("LivingRoom"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum BlockCategoryType { + + /// + Residential, + + /// + NonResidential, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSocialHireContractResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractRootGUIDField; + + private string contractGUIDField; + + private exportBriefSocialHireContractResultTypeContractState contractStateField; + + private bool contractStateFieldSpecified; + + private string contractNumberField; + + private System.DateTime signingDateField; + + private exportBriefSocialHireContractResultTypeTerminateContract terminateContractField; + + private AnnulmentType annulmentContractField; + + private exportBriefSocialHireContractResultTypeType typeField; + + private exportBriefSocialHireContractResultTypeObjectAddress[] objectAddressField; + + private string orgPPAGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractRootGUID { + get { + return this.contractRootGUIDField; + } + set { + this.contractRootGUIDField = value; + this.RaisePropertyChanged("ContractRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportBriefSocialHireContractResultTypeContractState ContractState { + get { + return this.contractStateField; + } + set { + this.contractStateField = value; + this.RaisePropertyChanged("ContractState"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ContractStateSpecified { + get { + return this.contractStateFieldSpecified; + } + set { + this.contractStateFieldSpecified = value; + this.RaisePropertyChanged("ContractStateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public exportBriefSocialHireContractResultTypeTerminateContract TerminateContract { + get { + return this.terminateContractField; + } + set { + this.terminateContractField = value; + this.RaisePropertyChanged("TerminateContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public AnnulmentType AnnulmentContract { + get { + return this.annulmentContractField; + } + set { + this.annulmentContractField = value; + this.RaisePropertyChanged("AnnulmentContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public exportBriefSocialHireContractResultTypeType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ObjectAddress", Order=8)] + public exportBriefSocialHireContractResultTypeObjectAddress[] ObjectAddress { + get { + return this.objectAddressField; + } + set { + this.objectAddressField = value; + this.RaisePropertyChanged("ObjectAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=9)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSocialHireContractResultTypeContractState { + + /// + NotTakeEffect, + + /// + Proceed, + + /// + Expired, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSocialHireContractResultTypeTerminateContract : TerminateType { + + private nsiRef reasonRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class TerminateType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime terminateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime Terminate { + get { + return this.terminateField; + } + set { + this.terminateField = value; + this.RaisePropertyChanged("Terminate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AnnulmentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string reasonOfAnnulmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReasonOfAnnulment { + get { + return this.reasonOfAnnulmentField; + } + set { + this.reasonOfAnnulmentField = value; + this.RaisePropertyChanged("ReasonOfAnnulment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSocialHireContractResultTypeType { + + /// + D, + + /// + M, + + /// + S, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSocialHireContractResultTypeObjectAddress : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private string apartmentNumberField; + + private string roomNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ApartmentNumber { + get { + return this.apartmentNumberField; + } + set { + this.apartmentNumberField = value; + this.RaisePropertyChanged("ApartmentNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportBriefSupplyResourceContractResult : object, System.ComponentModel.INotifyPropertyChanged { + + private exportBriefSupplyResourceContractResultType[] contractField; + + private object[] itemsField; + + private ItemsChoiceType15[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Contract", Order=0)] + public exportBriefSupplyResourceContractResultType[] Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IsLastPage", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextPageContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextPageObjectGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType15[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractRootGUIDField; + + private string contractGUIDField; + + private string versionNumberField; + + private exportBriefSupplyResourceContractResultTypeVersionStatus versionStatusField; + + private exportBriefSupplyResourceContractResultTypeContractState contractStateField; + + private object itemField; + + private exportBriefSupplyResourceContractResultTypeFirstPartyContract firstPartyContractField; + + private exportBriefSupplyResourceContractResultTypeSecondPartyContract secondPartyContractField; + + private exportBriefSupplyResourceContractResultTypeContractSubject[] contractSubjectField; + + private exportBriefSupplyResourceContractResultTypeCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private exportBriefSupplyResourceContractResultTypeBillingDate billingDateField; + + private exportBriefSupplyResourceContractResultTypePaymentDate paymentDateField; + + private exportBriefSupplyResourceContractResultTypeProvidingInformationDate providingInformationDateField; + + private exportBriefSupplyResourceContractResultTypePeriod periodField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private exportBriefSupplyResourceContractResultTypeTerminateContract terminateContractField; + + private AnnulmentType annulmentContractField; + + private ObjectAddressBriefType[] objectAddressField; + + public exportBriefSupplyResourceContractResultType() { + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractRootGUID { + get { + return this.contractRootGUIDField; + } + set { + this.contractRootGUIDField = value; + this.RaisePropertyChanged("ContractRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="positiveInteger", Order=2)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public exportBriefSupplyResourceContractResultTypeVersionStatus VersionStatus { + get { + return this.versionStatusField; + } + set { + this.versionStatusField = value; + this.RaisePropertyChanged("VersionStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportBriefSupplyResourceContractResultTypeContractState ContractState { + get { + return this.contractStateField; + } + set { + this.contractStateField = value; + this.RaisePropertyChanged("ContractState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IsContract", typeof(exportBriefSupplyResourceContractResultTypeIsContract), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("IsNotContract", typeof(exportBriefSupplyResourceContractResultTypeIsNotContract), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public exportBriefSupplyResourceContractResultTypeFirstPartyContract FirstPartyContract { + get { + return this.firstPartyContractField; + } + set { + this.firstPartyContractField = value; + this.RaisePropertyChanged("FirstPartyContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public exportBriefSupplyResourceContractResultTypeSecondPartyContract SecondPartyContract { + get { + return this.secondPartyContractField; + } + set { + this.secondPartyContractField = value; + this.RaisePropertyChanged("SecondPartyContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", Order=8)] + public exportBriefSupplyResourceContractResultTypeContractSubject[] ContractSubject { + get { + return this.contractSubjectField; + } + set { + this.contractSubjectField = value; + this.RaisePropertyChanged("ContractSubject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public exportBriefSupplyResourceContractResultTypeCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public exportBriefSupplyResourceContractResultTypeBillingDate BillingDate { + get { + return this.billingDateField; + } + set { + this.billingDateField = value; + this.RaisePropertyChanged("BillingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public exportBriefSupplyResourceContractResultTypePaymentDate PaymentDate { + get { + return this.paymentDateField; + } + set { + this.paymentDateField = value; + this.RaisePropertyChanged("PaymentDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public exportBriefSupplyResourceContractResultTypeProvidingInformationDate ProvidingInformationDate { + get { + return this.providingInformationDateField; + } + set { + this.providingInformationDateField = value; + this.RaisePropertyChanged("ProvidingInformationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public exportBriefSupplyResourceContractResultTypePeriod Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public exportBriefSupplyResourceContractResultTypeTerminateContract TerminateContract { + get { + return this.terminateContractField; + } + set { + this.terminateContractField = value; + this.RaisePropertyChanged("TerminateContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public AnnulmentType AnnulmentContract { + get { + return this.annulmentContractField; + } + set { + this.annulmentContractField = value; + this.RaisePropertyChanged("AnnulmentContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ObjectAddress", Order=17)] + public ObjectAddressBriefType[] ObjectAddress { + get { + return this.objectAddressField; + } + set { + this.objectAddressField = value; + this.RaisePropertyChanged("ObjectAddress"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypeVersionStatus { + + /// + Posted, + + /// + Terminated, + + /// + Draft, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypeContractState { + + /// + NotTakeEffect, + + /// + Proceed, + + /// + Expired, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeIsContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeIsNotContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private bool signingDateFieldSpecified; + + private System.DateTime effectiveDateField; + + private bool effectiveDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SigningDateSpecified { + get { + return this.signingDateFieldSpecified; + } + set { + this.signingDateFieldSpecified = value; + this.RaisePropertyChanged("SigningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EffectiveDateSpecified { + get { + return this.effectiveDateFieldSpecified; + } + set { + this.effectiveDateFieldSpecified = value; + this.RaisePropertyChanged("EffectiveDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeFirstPartyContract : RegOrgType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeSecondPartyContract : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private ItemChoiceType13 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Offer", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(exportBriefSupplyResourceContractResultTypeSecondPartyContractOrganization), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Owner", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType13 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeSecondPartyContractOrganization : RegOrgType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType13 { + + /// + Offer, + + /// + Organization, + + /// + Owner, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeContractSubject : object, System.ComponentModel.INotifyPropertyChanged { + + private exportBriefSupplyResourceContractResultTypeContractSubjectServiceType serviceTypeField; + + private exportBriefSupplyResourceContractResultTypeContractSubjectMunicipalResource municipalResourceField; + + private System.DateTime startSupplyDateField; + + private System.DateTime endSupplyDateField; + + private bool endSupplyDateFieldSpecified; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportBriefSupplyResourceContractResultTypeContractSubjectServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportBriefSupplyResourceContractResultTypeContractSubjectMunicipalResource MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime StartSupplyDate { + get { + return this.startSupplyDateField; + } + set { + this.startSupplyDateField = value; + this.RaisePropertyChanged("StartSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime EndSupplyDate { + get { + return this.endSupplyDateField; + } + set { + this.endSupplyDateField = value; + this.RaisePropertyChanged("EndSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndSupplyDateSpecified { + get { + return this.endSupplyDateFieldSpecified; + } + set { + this.endSupplyDateFieldSpecified = value; + this.RaisePropertyChanged("EndSupplyDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=4)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeContractSubjectServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeContractSubjectMunicipalResource : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypeCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeBillingDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private exportBriefSupplyResourceContractResultTypeBillingDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportBriefSupplyResourceContractResultTypeBillingDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypeBillingDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypePaymentDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private exportBriefSupplyResourceContractResultTypePaymentDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportBriefSupplyResourceContractResultTypePaymentDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypePaymentDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeProvidingInformationDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private exportBriefSupplyResourceContractResultTypeProvidingInformationDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportBriefSupplyResourceContractResultTypeProvidingInformationDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSupplyResourceContractResultTypeProvidingInformationDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private exportBriefSupplyResourceContractResultTypePeriodStart startField; + + private exportBriefSupplyResourceContractResultTypePeriodEnd endField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportBriefSupplyResourceContractResultTypePeriodStart Start { + get { + return this.startField; + } + set { + this.startField = value; + this.RaisePropertyChanged("Start"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportBriefSupplyResourceContractResultTypePeriodEnd End { + get { + return this.endField; + } + set { + this.endField = value; + this.RaisePropertyChanged("End"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypePeriodStart : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte startDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public exportBriefSupplyResourceContractResultTypePeriodStart() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypePeriodEnd : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte endDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public exportBriefSupplyResourceContractResultTypePeriodEnd() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractResultTypeTerminateContract : TerminateType { + + private nsiRef reasonRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ObjectAddressBriefType : object, System.ComponentModel.INotifyPropertyChanged { + + private ObjectAddressBriefTypeHouseType houseTypeField; + + private bool houseTypeFieldSpecified; + + private string fIASHouseGuidField; + + private string apartmentNumberField; + + private string roomNumberField; + + private string premisesGUIDField; + + private string blockGUIDField; + + private string roomGUIDField; + + private ObjectAddressBriefTypePair[] pairField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + public ObjectAddressBriefType() { + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ObjectAddressBriefTypeHouseType HouseType { + get { + return this.houseTypeField; + } + set { + this.houseTypeField = value; + this.RaisePropertyChanged("HouseType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HouseTypeSpecified { + get { + return this.houseTypeFieldSpecified; + } + set { + this.houseTypeFieldSpecified = value; + this.RaisePropertyChanged("HouseTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ApartmentNumber { + get { + return this.apartmentNumberField; + } + set { + this.apartmentNumberField = value; + this.RaisePropertyChanged("ApartmentNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string BlockGUID { + get { + return this.blockGUIDField; + } + set { + this.blockGUIDField = value; + this.RaisePropertyChanged("BlockGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string RoomGUID { + get { + return this.roomGUIDField; + } + set { + this.roomGUIDField = value; + this.RaisePropertyChanged("RoomGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Pair", Order=7)] + public ObjectAddressBriefTypePair[] Pair { + get { + return this.pairField; + } + set { + this.pairField = value; + this.RaisePropertyChanged("Pair"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ObjectAddressBriefTypeHouseType { + + /// + MKD, + + /// + ZHD, + + /// + ZHDBlockZastroyki, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ObjectAddressBriefTypePair : ContractSubjectObjectAdressType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectObjectAdressType : object, System.ComponentModel.INotifyPropertyChanged { + + private ContractSubjectObjectAdressTypeServiceType serviceTypeField; + + private ContractSubjectObjectAdressTypeMunicipalResource municipalResourceField; + + private System.DateTime startSupplyDateField; + + private System.DateTime endSupplyDateField; + + private bool endSupplyDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ContractSubjectObjectAdressTypeServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ContractSubjectObjectAdressTypeMunicipalResource MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime StartSupplyDate { + get { + return this.startSupplyDateField; + } + set { + this.startSupplyDateField = value; + this.RaisePropertyChanged("StartSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime EndSupplyDate { + get { + return this.endSupplyDateField; + } + set { + this.endSupplyDateField = value; + this.RaisePropertyChanged("EndSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndSupplyDateSpecified { + get { + return this.endSupplyDateFieldSpecified; + } + set { + this.endSupplyDateFieldSpecified = value; + this.RaisePropertyChanged("EndSupplyDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectObjectAdressTypeServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectObjectAdressTypeMunicipalResource : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType15 { + + /// + IsLastPage, + + /// + NextPageContractRootGUID, + + /// + NextPageObjectGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Charter", typeof(exportCAChResultTypeCharter), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Contract", typeof(exportCAChResultTypeContract), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharter : CharterExportType { + + private exportCAChResultTypeCharterTerminate terminateField; + + private CharterStatusExportType charterStatusField; + + private string charterGUIDField; + + private string charterVersionGUIDField; + + private exportCAChResultTypeCharterContractObject[] contractObjectField; + + private exportCAChResultTypeCharterCharterPaymentsInfo[] charterPaymentsInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportCAChResultTypeCharterTerminate Terminate { + get { + return this.terminateField; + } + set { + this.terminateField = value; + this.RaisePropertyChanged("Terminate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public CharterStatusExportType CharterStatus { + get { + return this.charterStatusField; + } + set { + this.charterStatusField = value; + this.RaisePropertyChanged("CharterStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string CharterGUID { + get { + return this.charterGUIDField; + } + set { + this.charterGUIDField = value; + this.RaisePropertyChanged("CharterGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=4)] + public exportCAChResultTypeCharterContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterPaymentsInfo", Order=5)] + public exportCAChResultTypeCharterCharterPaymentsInfo[] CharterPaymentsInfo { + get { + return this.charterPaymentsInfoField; + } + set { + this.charterPaymentsInfoField = value; + this.RaisePropertyChanged("CharterPaymentsInfo"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterTerminate : TerminateType { + + private string reasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Reason { + get { + return this.reasonField; + } + set { + this.reasonField = value; + this.RaisePropertyChanged("Reason"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum CharterStatusExportType { + + /// + Annul, + + /// + ApprovalProcess, + + /// + Approved, + + /// + Project, + + /// + Rejected, + + /// + Reviewed, + + /// + Terminated, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterContractObject : ManageObjectType { + + private string contractObjectVersionGUIDField; + + private BaseServiceType baseMServiceField; + + private exportCAChResultTypeCharterContractObjectHouseService[] houseServiceField; + + private exportCAChResultTypeCharterContractObjectAddService[] addServiceField; + + private exportCAChResultTypeCharterContractObjectExclusion exclusionField; + + private StatusMKDType statusObjectField; + + private bool statusObjectFieldSpecified; + + private bool isManagedByContractField; + + private bool isManagedByContractFieldSpecified; + + public exportCAChResultTypeCharterContractObject() { + this.isManagedByContractField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public exportCAChResultTypeCharterContractObjectHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public exportCAChResultTypeCharterContractObjectAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportCAChResultTypeCharterContractObjectExclusion Exclusion { + get { + return this.exclusionField; + } + set { + this.exclusionField = value; + this.RaisePropertyChanged("Exclusion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public StatusMKDType StatusObject { + get { + return this.statusObjectField; + } + set { + this.statusObjectField = value; + this.RaisePropertyChanged("StatusObject"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StatusObjectSpecified { + get { + return this.statusObjectFieldSpecified; + } + set { + this.statusObjectFieldSpecified = value; + this.RaisePropertyChanged("StatusObjectSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool IsManagedByContract { + get { + return this.isManagedByContractField; + } + set { + this.isManagedByContractField = value; + this.RaisePropertyChanged("IsManagedByContract"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsManagedByContractSpecified { + get { + return this.isManagedByContractFieldSpecified; + } + set { + this.isManagedByContractFieldSpecified = value; + this.RaisePropertyChanged("IsManagedByContractSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BaseServiceType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Agreement", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CurrentDoc", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterContractObjectHouseService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractServiceType : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef serviceTypeField; + + private System.DateTime startDateField; + + private System.DateTime endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterContractObjectAddService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterContractObjectExclusion : object, System.ComponentModel.INotifyPropertyChanged { + + private BaseServiceType baseExclusionField; + + private System.DateTime dateExclusionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseExclusion { + get { + return this.baseExclusionField; + } + set { + this.baseExclusionField = value; + this.RaisePropertyChanged("BaseExclusion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateExclusion { + get { + return this.dateExclusionField; + } + set { + this.dateExclusionField = value; + this.RaisePropertyChanged("DateExclusion"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ManageObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private System.DateTime startDateField; + + private System.DateTime endDateField; + + private bool endDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndDateSpecified { + get { + return this.endDateFieldSpecified; + } + set { + this.endDateFieldSpecified = value; + this.RaisePropertyChanged("EndDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeCharterCharterPaymentsInfo : CharterPaymentsInfoType { + + private string charterPaymentsInfoVersionGUIDField; + + private exportCAChResultTypeCharterCharterPaymentsInfoStatus statusField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterPaymentsInfoVersionGUID { + get { + return this.charterPaymentsInfoVersionGUIDField; + } + set { + this.charterPaymentsInfoVersionGUIDField = value; + this.RaisePropertyChanged("CharterPaymentsInfoVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportCAChResultTypeCharterCharterPaymentsInfoStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportCAChResultTypeCharterCharterPaymentsInfoStatus { + + /// + P, + + /// + A, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterPaymentsInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime beginDateField; + + private System.DateTime endDateField; + + private CharterPaymentsInfoTypeMaintenanceAndRepairsForMembers maintenanceAndRepairsForMembersField; + + private CharterPaymentsInfoTypeMaintenanceAndRepairsForNonMembersInfo maintenanceAndRepairsForNonMembersInfoField; + + private CharterPaymentsInfoTypeServicePayment[] servicePaymentField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime BeginDate { + get { + return this.beginDateField; + } + set { + this.beginDateField = value; + this.RaisePropertyChanged("BeginDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public CharterPaymentsInfoTypeMaintenanceAndRepairsForMembers MaintenanceAndRepairsForMembers { + get { + return this.maintenanceAndRepairsForMembersField; + } + set { + this.maintenanceAndRepairsForMembersField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForMembers"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public CharterPaymentsInfoTypeMaintenanceAndRepairsForNonMembersInfo MaintenanceAndRepairsForNonMembersInfo { + get { + return this.maintenanceAndRepairsForNonMembersInfoField; + } + set { + this.maintenanceAndRepairsForNonMembersInfoField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForNonMembersInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ServicePayment", Order=4)] + public CharterPaymentsInfoTypeServicePayment[] ServicePayment { + get { + return this.servicePaymentField; + } + set { + this.servicePaymentField = value; + this.RaisePropertyChanged("ServicePayment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AllContractObjects", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("ContractObjectVersionGUID", typeof(string), Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterPaymentsInfoTypeMaintenanceAndRepairsForMembers : object, System.ComponentModel.INotifyPropertyChanged { + + private decimal maintenanceAndRepairsForMembersPaymentSizeField; + + private AttachmentType[] maintenanceAndRepairsForMembersProtocolField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal MaintenanceAndRepairsForMembersPaymentSize { + get { + return this.maintenanceAndRepairsForMembersPaymentSizeField; + } + set { + this.maintenanceAndRepairsForMembersPaymentSizeField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForMembersPaymentSize"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MaintenanceAndRepairsForMembersProtocol", Order=1)] + public AttachmentType[] MaintenanceAndRepairsForMembersProtocol { + get { + return this.maintenanceAndRepairsForMembersProtocolField; + } + set { + this.maintenanceAndRepairsForMembersProtocolField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForMembersProtocol"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterPaymentsInfoTypeMaintenanceAndRepairsForNonMembersInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private decimal maintenanceAndRepairsForNonMembersPaymentSizeField; + + private AttachmentType[] maintenanceAndRepairsForNonMembersProtocolField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal MaintenanceAndRepairsForNonMembersPaymentSize { + get { + return this.maintenanceAndRepairsForNonMembersPaymentSizeField; + } + set { + this.maintenanceAndRepairsForNonMembersPaymentSizeField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForNonMembersPaymentSize"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MaintenanceAndRepairsForNonMembersProtocol", Order=1)] + public AttachmentType[] MaintenanceAndRepairsForNonMembersProtocol { + get { + return this.maintenanceAndRepairsForNonMembersProtocolField; + } + set { + this.maintenanceAndRepairsForNonMembersProtocolField = value; + this.RaisePropertyChanged("MaintenanceAndRepairsForNonMembersProtocol"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterPaymentsInfoTypeServicePayment : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef serviceField; + + private decimal servicePaymentSizeField; + + private bool servicePaymentSizeFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Service { + get { + return this.serviceField; + } + set { + this.serviceField = value; + this.RaisePropertyChanged("Service"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal ServicePaymentSize { + get { + return this.servicePaymentSizeField; + } + set { + this.servicePaymentSizeField = value; + this.RaisePropertyChanged("ServicePaymentSize"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ServicePaymentSizeSpecified { + get { + return this.servicePaymentSizeFieldSpecified; + } + set { + this.servicePaymentSizeFieldSpecified = value; + this.RaisePropertyChanged("ServicePaymentSizeSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private CharterDateDetailsExportType dateDetailsField; + + private CharterExportTypeMeetingProtocol meetingProtocolField; + + private bool noCharterApproveProtocolField; + + private bool noCharterApproveProtocolFieldSpecified; + + private AttachmentType[] attachmentCharterField; + + private bool automaticRollOverOneYearField; + + private bool automaticRollOverOneYearFieldSpecified; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + public CharterExportType() { + this.noCharterApproveProtocolField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public CharterDateDetailsExportType DateDetails { + get { + return this.dateDetailsField; + } + set { + this.dateDetailsField = value; + this.RaisePropertyChanged("DateDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public CharterExportTypeMeetingProtocol MeetingProtocol { + get { + return this.meetingProtocolField; + } + set { + this.meetingProtocolField = value; + this.RaisePropertyChanged("MeetingProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool NoCharterApproveProtocol { + get { + return this.noCharterApproveProtocolField; + } + set { + this.noCharterApproveProtocolField = value; + this.RaisePropertyChanged("NoCharterApproveProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoCharterApproveProtocolSpecified { + get { + return this.noCharterApproveProtocolFieldSpecified; + } + set { + this.noCharterApproveProtocolFieldSpecified = value; + this.RaisePropertyChanged("NoCharterApproveProtocolSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AttachmentCharter", Order=4)] + public AttachmentType[] AttachmentCharter { + get { + return this.attachmentCharterField; + } + set { + this.attachmentCharterField = value; + this.RaisePropertyChanged("AttachmentCharter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool AutomaticRollOverOneYear { + get { + return this.automaticRollOverOneYearField; + } + set { + this.automaticRollOverOneYearField = value; + this.RaisePropertyChanged("AutomaticRollOverOneYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AutomaticRollOverOneYearSpecified { + get { + return this.automaticRollOverOneYearFieldSpecified; + } + set { + this.automaticRollOverOneYearFieldSpecified = value; + this.RaisePropertyChanged("AutomaticRollOverOneYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private CharterDateDetailsExportTypePeriodMetering periodMeteringField; + + private CharterDateDetailsExportTypePaymentDocumentInterval paymentDocumentIntervalField; + + private CharterDateDetailsExportTypePaymentInterval paymentIntervalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CharterDateDetailsExportTypePeriodMetering PeriodMetering { + get { + return this.periodMeteringField; + } + set { + this.periodMeteringField = value; + this.RaisePropertyChanged("PeriodMetering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public CharterDateDetailsExportTypePaymentDocumentInterval PaymentDocumentInterval { + get { + return this.paymentDocumentIntervalField; + } + set { + this.paymentDocumentIntervalField = value; + this.RaisePropertyChanged("PaymentDocumentInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public CharterDateDetailsExportTypePaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsExportTypePeriodMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private DaySelectionExportType startDateField; + + private DaySelectionExportType endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DaySelectionExportType StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DaySelectionExportType EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DaySelectionExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool isNextMonthField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Date", typeof(sbyte), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsNextMonth { + get { + return this.isNextMonthField; + } + set { + this.isNextMonthField = value; + this.RaisePropertyChanged("IsNextMonth"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsExportTypePaymentDocumentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType2 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType2 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType2 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsExportTypePaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType3 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType3 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType3 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterExportTypeMeetingProtocol : object, System.ComponentModel.INotifyPropertyChanged { + + private AttachmentType[] protocolMeetingOwnersField; + + private string[] votingProtocolGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", Order=0)] + public AttachmentType[] ProtocolMeetingOwners { + get { + return this.protocolMeetingOwnersField; + } + set { + this.protocolMeetingOwnersField = value; + this.RaisePropertyChanged("ProtocolMeetingOwners"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", Order=1)] + public string[] VotingProtocolGUID { + get { + return this.votingProtocolGUIDField; + } + set { + this.votingProtocolGUIDField = value; + this.RaisePropertyChanged("VotingProtocolGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContract : ContractExportType { + + private exportCAChResultTypeContractTerminate terminateField; + + private ContractStatusExportType contractStatusField; + + private string contractGUIDField; + + private string contractVersionGUIDField; + + private exportCAChResultTypeContractContractObject[] contractObjectField; + + private exportCAChResultTypeContractContractPaymentsInfo[] contractPaymentsInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportCAChResultTypeContractTerminate Terminate { + get { + return this.terminateField; + } + set { + this.terminateField = value; + this.RaisePropertyChanged("Terminate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ContractStatusExportType ContractStatus { + get { + return this.contractStatusField; + } + set { + this.contractStatusField = value; + this.RaisePropertyChanged("ContractStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=4)] + public exportCAChResultTypeContractContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractPaymentsInfo", Order=5)] + public exportCAChResultTypeContractContractPaymentsInfo[] ContractPaymentsInfo { + get { + return this.contractPaymentsInfoField; + } + set { + this.contractPaymentsInfoField = value; + this.RaisePropertyChanged("ContractPaymentsInfo"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractTerminate : TerminateType { + + private nsiRef reasonRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ContractStatusExportType { + + /// + Project, + + /// + ApprovalProcess, + + /// + Rejected, + + /// + Approved, + + /// + Terminated, + + /// + Reviewed, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractContractObject : ManageObjectType { + + private string contractObjectVersionGUIDField; + + private BaseServiceType baseMServiceField; + + private exportCAChResultTypeContractContractObjectHouseService[] houseServiceField; + + private exportCAChResultTypeContractContractObjectAddService[] addServiceField; + + private exportCAChResultTypeContractContractObjectExclusion exclusionField; + + private StatusMKDType statusObjectField; + + private bool statusObjectFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public exportCAChResultTypeContractContractObjectHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public exportCAChResultTypeContractContractObjectAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportCAChResultTypeContractContractObjectExclusion Exclusion { + get { + return this.exclusionField; + } + set { + this.exclusionField = value; + this.RaisePropertyChanged("Exclusion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public StatusMKDType StatusObject { + get { + return this.statusObjectField; + } + set { + this.statusObjectField = value; + this.RaisePropertyChanged("StatusObject"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StatusObjectSpecified { + get { + return this.statusObjectFieldSpecified; + } + set { + this.statusObjectFieldSpecified = value; + this.RaisePropertyChanged("StatusObjectSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractContractObjectHouseService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractContractObjectAddService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractContractObjectExclusion : object, System.ComponentModel.INotifyPropertyChanged { + + private BaseServiceType baseExclusionField; + + private System.DateTime dateExclusionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseExclusion { + get { + return this.baseExclusionField; + } + set { + this.baseExclusionField = value; + this.RaisePropertyChanged("BaseExclusion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateExclusion { + get { + return this.dateExclusionField; + } + set { + this.dateExclusionField = value; + this.RaisePropertyChanged("DateExclusion"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChResultTypeContractContractPaymentsInfo : ContractPaymentsInfoType { + + private string contractPaymentsInfoVersionGUIDField; + + private exportCAChResultTypeContractContractPaymentsInfoStatus statusField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractPaymentsInfoVersionGUID { + get { + return this.contractPaymentsInfoVersionGUIDField; + } + set { + this.contractPaymentsInfoVersionGUIDField = value; + this.RaisePropertyChanged("ContractPaymentsInfoVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportCAChResultTypeContractContractPaymentsInfoStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportCAChResultTypeContractContractPaymentsInfoStatus { + + /// + P, + + /// + A, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractPaymentsInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime beginDateField; + + private System.DateTime endDateField; + + private decimal houseManagementPaymentSizeField; + + private object[] itemsField; + + private ContractPaymentsInfoTypeServicePayment[] servicePaymentField; + + private ContractPaymentsInfoTypeType typeField; + + private string contractObjectVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime BeginDate { + get { + return this.beginDateField; + } + set { + this.beginDateField = value; + this.RaisePropertyChanged("BeginDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal HouseManagementPaymentSize { + get { + return this.houseManagementPaymentSizeField; + } + set { + this.houseManagementPaymentSizeField = value; + this.RaisePropertyChanged("HouseManagementPaymentSize"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Protocol", typeof(AttachmentType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", typeof(string), Order=3)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ServicePayment", Order=4)] + public ContractPaymentsInfoTypeServicePayment[] ServicePayment { + get { + return this.servicePaymentField; + } + set { + this.servicePaymentField = value; + this.RaisePropertyChanged("ServicePayment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public ContractPaymentsInfoTypeType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractPaymentsInfoTypeServicePayment : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef serviceField; + + private decimal servicePaymentSizeField; + + private bool servicePaymentSizeFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Service { + get { + return this.serviceField; + } + set { + this.serviceField = value; + this.RaisePropertyChanged("Service"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal ServicePaymentSize { + get { + return this.servicePaymentSizeField; + } + set { + this.servicePaymentSizeField = value; + this.RaisePropertyChanged("ServicePaymentSize"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ServicePaymentSizeSpecified { + get { + return this.servicePaymentSizeFieldSpecified; + } + set { + this.servicePaymentSizeFieldSpecified = value; + this.RaisePropertyChanged("ServicePaymentSizeSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ContractPaymentsInfoTypeType { + + /// + P, + + /// + C, + + /// + A, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string docNumField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + private System.DateTime planDateComptetionField; + + private ContractExportTypeValidity validityField; + + private object itemField; + + private ItemChoiceType5 itemElementNameField; + + private ContractExportTypeProtocol protocolField; + + private nsiRef contractBaseField; + + private DateDetailsExportType dateDetailsField; + + private AttachmentType[] contractAttachmentField; + + private ContractExportTypeAgreementAttachment[] agreementAttachmentField; + + private AttachmentType[] signedOwnersField; + + private AttachmentType[] commissioningPermitAgreementField; + + private AttachmentType[] charterField; + + private AttachmentType[] localGovernmentDecisionField; + + private string registryDecisionIDField; + + private bool automaticRollOverOneYearField; + + private bool automaticRollOverOneYearFieldSpecified; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string DocNum { + get { + return this.docNumField; + } + set { + this.docNumField = value; + this.RaisePropertyChanged("DocNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime PlanDateComptetion { + get { + return this.planDateComptetionField; + } + set { + this.planDateComptetionField = value; + this.RaisePropertyChanged("PlanDateComptetion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ContractExportTypeValidity Validity { + get { + return this.validityField; + } + set { + this.validityField = value; + this.RaisePropertyChanged("Validity"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("BuildingOwner", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("CompetentAuthority", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("Cooperative", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalHousing", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("Owners", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType5 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public ContractExportTypeProtocol Protocol { + get { + return this.protocolField; + } + set { + this.protocolField = value; + this.RaisePropertyChanged("Protocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public nsiRef ContractBase { + get { + return this.contractBaseField; + } + set { + this.contractBaseField = value; + this.RaisePropertyChanged("ContractBase"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public DateDetailsExportType DateDetails { + get { + return this.dateDetailsField; + } + set { + this.dateDetailsField = value; + this.RaisePropertyChanged("DateDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=10)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AgreementAttachment", Order=11)] + public ContractExportTypeAgreementAttachment[] AgreementAttachment { + get { + return this.agreementAttachmentField; + } + set { + this.agreementAttachmentField = value; + this.RaisePropertyChanged("AgreementAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SignedOwners", Order=12)] + public AttachmentType[] SignedOwners { + get { + return this.signedOwnersField; + } + set { + this.signedOwnersField = value; + this.RaisePropertyChanged("SignedOwners"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CommissioningPermitAgreement", Order=13)] + public AttachmentType[] CommissioningPermitAgreement { + get { + return this.commissioningPermitAgreementField; + } + set { + this.commissioningPermitAgreementField = value; + this.RaisePropertyChanged("CommissioningPermitAgreement"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Charter", Order=14)] + public AttachmentType[] Charter { + get { + return this.charterField; + } + set { + this.charterField = value; + this.RaisePropertyChanged("Charter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LocalGovernmentDecision", Order=15)] + public AttachmentType[] LocalGovernmentDecision { + get { + return this.localGovernmentDecisionField; + } + set { + this.localGovernmentDecisionField = value; + this.RaisePropertyChanged("LocalGovernmentDecision"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public string RegistryDecisionID { + get { + return this.registryDecisionIDField; + } + set { + this.registryDecisionIDField = value; + this.RaisePropertyChanged("RegistryDecisionID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool AutomaticRollOverOneYear { + get { + return this.automaticRollOverOneYearField; + } + set { + this.automaticRollOverOneYearField = value; + this.RaisePropertyChanged("AutomaticRollOverOneYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AutomaticRollOverOneYearSpecified { + get { + return this.automaticRollOverOneYearFieldSpecified; + } + set { + this.automaticRollOverOneYearFieldSpecified = value; + this.RaisePropertyChanged("AutomaticRollOverOneYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractExportTypeValidity : object, System.ComponentModel.INotifyPropertyChanged { + + private string monthField; + + private string yearField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string Month { + get { + return this.monthField; + } + set { + this.monthField = value; + this.RaisePropertyChanged("Month"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string Year { + get { + return this.yearField; + } + set { + this.yearField = value; + this.RaisePropertyChanged("Year"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType5 { + + /// + BuildingOwner, + + /// + CompetentAuthority, + + /// + Cooperative, + + /// + MunicipalHousing, + + /// + Owners, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractExportTypeProtocol : object, System.ComponentModel.INotifyPropertyChanged { + + private ContractExportTypeProtocolProtocolAdd protocolAddField; + + private string[] votingProtocolGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ContractExportTypeProtocolProtocolAdd ProtocolAdd { + get { + return this.protocolAddField; + } + set { + this.protocolAddField = value; + this.RaisePropertyChanged("ProtocolAdd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", Order=1)] + public string[] VotingProtocolGUID { + get { + return this.votingProtocolGUIDField; + } + set { + this.votingProtocolGUIDField = value; + this.RaisePropertyChanged("VotingProtocolGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractExportTypeProtocolProtocolAdd : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType7[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolBuildingOwner", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingBoard", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolOK", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PurchaseNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType7[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType7 { + + /// + ProtocolBuildingOwner, + + /// + ProtocolMeetingBoard, + + /// + ProtocolMeetingOwners, + + /// + ProtocolOK, + + /// + PurchaseNumber, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private DateDetailsExportTypePeriodMetering periodMeteringField; + + private DateDetailsExportTypePaymentDocumentInterval paymentDocumentIntervalField; + + private DateDetailsExportTypePaymentInterval paymentIntervalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DateDetailsExportTypePeriodMetering PeriodMetering { + get { + return this.periodMeteringField; + } + set { + this.periodMeteringField = value; + this.RaisePropertyChanged("PeriodMetering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DateDetailsExportTypePaymentDocumentInterval PaymentDocumentInterval { + get { + return this.paymentDocumentIntervalField; + } + set { + this.paymentDocumentIntervalField = value; + this.RaisePropertyChanged("PaymentDocumentInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public DateDetailsExportTypePaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsExportTypePeriodMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private DaySelectionExportType startDateField; + + private DaySelectionExportType endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DaySelectionExportType StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DaySelectionExportType EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsExportTypePaymentDocumentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsExportTypePaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType1 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType1 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType1 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractExportTypeAgreementAttachment : AttachmentType { + + private ImprintAgreementExportType imprintAgreementField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ImprintAgreementExportType ImprintAgreement { + get { + return this.imprintAgreementField; + } + set { + this.imprintAgreementField = value; + this.RaisePropertyChanged("ImprintAgreement"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ImprintAgreementExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string agreementNumberField; + + private System.DateTime agreementDateField; + + private bool agreementDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AgreementNumber { + get { + return this.agreementNumberField; + } + set { + this.agreementNumberField = value; + this.RaisePropertyChanged("AgreementNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AgreementDate { + get { + return this.agreementDateField; + } + set { + this.agreementDateField = value; + this.RaisePropertyChanged("AgreementDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgreementDateSpecified { + get { + return this.agreementDateFieldSpecified; + } + set { + this.agreementDateFieldSpecified = value; + this.RaisePropertyChanged("AgreementDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string houseUniqueNumberField; + + private System.DateTime modificationDateField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HouseUniqueNumber { + get { + return this.houseUniqueNumberField; + } + set { + this.houseUniqueNumberField = value; + this.RaisePropertyChanged("HouseUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouse", typeof(exportHouseResultTypeApartmentHouse), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouse", typeof(exportHouseResultTypeLivingHouse), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouse : ApartmentHouseExportType { + + private exportHouseResultTypeApartmentHouseEntrance[] entranceField; + + private exportHouseResultTypeApartmentHouseResidentialPremises[] residentialPremisesField; + + private exportHouseResultTypeApartmentHouseLift[] liftField; + + private exportHouseResultTypeApartmentHouseNonResidentialPremises[] nonResidentialPremisesField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Entrance", Order=0)] + public exportHouseResultTypeApartmentHouseEntrance[] Entrance { + get { + return this.entranceField; + } + set { + this.entranceField = value; + this.RaisePropertyChanged("Entrance"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremises", Order=1)] + public exportHouseResultTypeApartmentHouseResidentialPremises[] ResidentialPremises { + get { + return this.residentialPremisesField; + } + set { + this.residentialPremisesField = value; + this.RaisePropertyChanged("ResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Lift", Order=2)] + public exportHouseResultTypeApartmentHouseLift[] Lift { + get { + return this.liftField; + } + set { + this.liftField = value; + this.RaisePropertyChanged("Lift"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremises", Order=3)] + public exportHouseResultTypeApartmentHouseNonResidentialPremises[] NonResidentialPremises { + get { + return this.nonResidentialPremisesField; + } + set { + this.nonResidentialPremisesField = value; + this.RaisePropertyChanged("NonResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouseEntrance : EntranceExportType { + + private System.DateTime modificationDateField; + + private string entranceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string EntranceGUID { + get { + return this.entranceGUIDField; + } + set { + this.entranceGUIDField = value; + this.RaisePropertyChanged("EntranceGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouseResidentialPremises : ResidentialPremisesExportType { + + private string premisesUniqueNumberField; + + private System.DateTime modificationDateField; + + private exportHouseResultTypeApartmentHouseResidentialPremisesLivingRoom[] livingRoomField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesUniqueNumber { + get { + return this.premisesUniqueNumberField; + } + set { + this.premisesUniqueNumberField = value; + this.RaisePropertyChanged("PremisesUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", Order=2)] + public exportHouseResultTypeApartmentHouseResidentialPremisesLivingRoom[] LivingRoom { + get { + return this.livingRoomField; + } + set { + this.livingRoomField = value; + this.RaisePropertyChanged("LivingRoom"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouseResidentialPremisesLivingRoom : RoomExportType { + + private string livingRoomUniqueNumberField; + + private System.DateTime modificationDateField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string LivingRoomUniqueNumber { + get { + return this.livingRoomUniqueNumberField; + } + set { + this.livingRoomUniqueNumberField = value; + this.RaisePropertyChanged("LivingRoomUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomExportType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private string floorField; + + private OGFData[] oGFDataField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Floor { + get { + return this.floorField; + } + set { + this.floorField = value; + this.RaisePropertyChanged("Floor"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=3)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OGFData : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private OGFDataValue valueField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public OGFDataValue Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OGFDataValue : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private ItemChoiceType4 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("BooleanValue", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DateTimeValue", typeof(System.DateTime), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("File", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FloatValue", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IntegerValue", typeof(int), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NsiCode", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StringValue", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType4 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType4 { + + /// + BooleanValue, + + /// + DateTimeValue, + + /// + File, + + /// + FloatValue, + + /// + IntegerValue, + + /// + NsiCode, + + /// + StringValue, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(RoomUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicUOType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class GKN_EGRP_KeyType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType6[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CadastralNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ConditionalNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoCadastralNumber", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("No_RSO_GKN_EGRP_Registered", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RightOrEncumbrance", typeof(RightOrEncumbrance), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType6[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RightOrEncumbrance : object, System.ComponentModel.INotifyPropertyChanged { + + private RightOrEncumbranceType typeField; + + private string regNumberField; + + private System.DateTime regDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RightOrEncumbranceType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RegNumber { + get { + return this.regNumberField; + } + set { + this.regNumberField = value; + this.RaisePropertyChanged("RegNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime RegDate { + get { + return this.regDateField; + } + set { + this.regDateField = value; + this.RaisePropertyChanged("RegDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum RightOrEncumbranceType { + + /// + R, + + /// + E, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType6 { + + /// + CadastralNumber, + + /// + ConditionalNumber, + + /// + NoCadastralNumber, + + /// + No_RSO_GKN_EGRP_Registered, + + /// + RightOrEncumbrance, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomUpdateESPType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomUpdateOMSType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomUpdateUOType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomESPType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomOMSType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RoomUOType : GKN_EGRP_KeyType { + + private string roomNumberField; + + private decimal squareField; + + private bool squareFieldSpecified; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Square { + get { + return this.squareField; + } + set { + this.squareField = value; + this.RaisePropertyChanged("Square"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SquareSpecified { + get { + return this.squareFieldSpecified; + } + set { + this.squareFieldSpecified = value; + this.RaisePropertyChanged("SquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateESPType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicUpdateESPType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesUpdateESPType : PremisesBasicUpdateESPType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesUpdateESPType : PremisesBasicUpdateESPType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private object item1Field; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateOMSType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicUpdateOMSType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesUpdateOMSType : PremisesBasicUpdateOMSType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesUpdateOMSType : PremisesBasicUpdateOMSType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private object item1Field; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUpdateUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUpdateUOType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicUpdateUOType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesUpdateUOType : PremisesBasicUpdateUOType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesUpdateUOType : PremisesBasicUpdateUOType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=4)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesESPType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesESPType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicESPType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesESPType : PremisesBasicESPType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesESPType : PremisesBasicESPType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=4)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesOMSType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesOMSType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicOMSType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesOMSType : PremisesBasicOMSType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesOMSType : PremisesBasicOMSType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=4)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesUOType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesUOType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicUOType : GKN_EGRP_KeyType { + + private string premisesNumField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=1)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesUOType : PremisesBasicUOType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesUOType : PremisesBasicUOType { + + private object itemField; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=4)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BlockUpdateOMSType : GKN_EGRP_KeyType { + + private string blockNumField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object itemField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=6)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BlockUpdateUOType : GKN_EGRP_KeyType { + + private string blockNumField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object itemField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=6)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BlockOMSType : GKN_EGRP_KeyType { + + private string blockNumField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object itemField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BlockUOType : GKN_EGRP_KeyType { + + private string blockNumField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object itemField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseBasicUpdateESPType : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private int floorCountField; + + private bool floorCountFieldSpecified; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private bool culturalHeritageFieldSpecified; + + private OGFData[] oGFDataField; + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + public HouseBasicUpdateESPType() { + this.isMunicipalPropertyField = false; + this.isRegionPropertyField = false; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FloorCountSpecified { + get { + return this.floorCountFieldSpecified; + } + set { + this.floorCountFieldSpecified = value; + this.RaisePropertyChanged("FloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CulturalHeritageSpecified { + get { + return this.culturalHeritageFieldSpecified; + } + set { + this.culturalHeritageFieldSpecified = value; + this.RaisePropertyChanged("CulturalHeritageSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseBasicUpdateOMSType : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private int floorCountField; + + private bool floorCountFieldSpecified; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private bool culturalHeritageFieldSpecified; + + private OGFData[] oGFDataField; + + private HostelDataType hostelDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FloorCountSpecified { + get { + return this.floorCountFieldSpecified; + } + set { + this.floorCountFieldSpecified = value; + this.RaisePropertyChanged("FloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CulturalHeritageSpecified { + get { + return this.culturalHeritageFieldSpecified; + } + set { + this.culturalHeritageFieldSpecified = value; + this.RaisePropertyChanged("CulturalHeritageSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public HostelDataType HostelData { + get { + return this.hostelDataField; + } + set { + this.hostelDataField = value; + this.RaisePropertyChanged("HostelData"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HostelDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private nsiRef hostelTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef HostelType { + get { + return this.hostelTypeField; + } + set { + this.hostelTypeField = value; + this.RaisePropertyChanged("HostelType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseBasicUpdateUOType : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private int floorCountField; + + private bool floorCountFieldSpecified; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private bool culturalHeritageFieldSpecified; + + private OGFData[] oGFDataField; + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + public HouseBasicUpdateUOType() { + this.isMunicipalPropertyField = false; + this.isRegionPropertyField = false; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FloorCountSpecified { + get { + return this.floorCountFieldSpecified; + } + set { + this.floorCountFieldSpecified = value; + this.RaisePropertyChanged("FloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CulturalHeritageSpecified { + get { + return this.culturalHeritageFieldSpecified; + } + set { + this.culturalHeritageFieldSpecified = value; + this.RaisePropertyChanged("CulturalHeritageSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseBasicUOType : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private int floorCountField; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private OGFData[] oGFDataField; + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + public HouseBasicUOType() { + this.isMunicipalPropertyField = false; + this.isRegionPropertyField = false; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ResidentialPremisesExportType : PremisesBasicExportType { + + private object item1Field; + + private string fIASChildHouseGuidField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item2Field; + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceNum", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HasNoEntrance", typeof(bool), Order=0)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=4)] + public object Item2 { + get { + return this.item2Field; + } + set { + this.item2Field = value; + this.RaisePropertyChanged("Item2"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PremisesBasicExportType : OGFExportStatusType { + + private string premisesNumField; + + private string floorField; + + private OGFData[] oGFDataField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Floor { + get { + return this.floorField; + } + set { + this.floorField = value; + this.RaisePropertyChanged("Floor"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=2)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OGFExportStatusType : GKN_EGRP_KeyExportType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(OGFExportStatusType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(PremisesBasicExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(NonResidentialPremisesExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(ResidentialPremisesExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BlockExportType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(HouseBasicExportType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class GKN_EGRP_KeyExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private ItemChoiceType3 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CadastralNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("No_RSO_GKN_EGRP_Data", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("No_RSO_GKN_EGRP_Registered", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType3 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType3 { + + /// + CadastralNumber, + + /// + No_RSO_GKN_EGRP_Data, + + /// + No_RSO_GKN_EGRP_Registered, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BlockExportType : OGFExportStatusType { + + private string blockNumField; + + private nsiRef premisesCharacteristicField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private object item1Field; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private OGFData[] oGFDataField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + private BlockCategoryType categoryField; + + private bool categoryFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockNum { + get { + return this.blockNumField; + } + set { + this.blockNumField = value; + this.RaisePropertyChanged("BlockNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef PremisesCharacteristic { + get { + return this.premisesCharacteristicField; + } + set { + this.premisesCharacteristicField = value; + this.RaisePropertyChanged("PremisesCharacteristic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("GrossArea", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("NoGrossArea", typeof(bool), Order=3)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=7)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public BlockCategoryType Category { + get { + return this.categoryField; + } + set { + this.categoryField = value; + this.RaisePropertyChanged("Category"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CategorySpecified { + get { + return this.categoryFieldSpecified; + } + set { + this.categoryFieldSpecified = value; + this.RaisePropertyChanged("CategorySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class HouseBasicExportType : OGFExportStatusType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private string floorCountField; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private bool culturalHeritageFieldSpecified; + + private OGFData[] oGFDataField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private System.DateTime demolishionDateField; + + private bool demolishionDateFieldSpecified; + + private DemolishionReasonType demolishionReasonField; + + private ExportHostelDataType exportHostelDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CulturalHeritageSpecified { + get { + return this.culturalHeritageFieldSpecified; + } + set { + this.culturalHeritageFieldSpecified = value; + this.RaisePropertyChanged("CulturalHeritageSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=10)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=13)] + public System.DateTime DemolishionDate { + get { + return this.demolishionDateField; + } + set { + this.demolishionDateField = value; + this.RaisePropertyChanged("DemolishionDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DemolishionDateSpecified { + get { + return this.demolishionDateFieldSpecified; + } + set { + this.demolishionDateFieldSpecified = value; + this.RaisePropertyChanged("DemolishionDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public DemolishionReasonType DemolishionReason { + get { + return this.demolishionReasonField; + } + set { + this.demolishionReasonField = value; + this.RaisePropertyChanged("DemolishionReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public ExportHostelDataType ExportHostelData { + get { + return this.exportHostelDataField; + } + set { + this.exportHostelDataField = value; + this.RaisePropertyChanged("ExportHostelData"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class NonResidentialPremisesExportType : PremisesBasicExportType { + + private string fIASChildHouseGuidField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private bool isCommonPropertyField; + + private bool isCommonPropertyFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsCommonProperty { + get { + return this.isCommonPropertyField; + } + set { + this.isCommonPropertyField = value; + this.RaisePropertyChanged("IsCommonProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsCommonPropertySpecified { + get { + return this.isCommonPropertyFieldSpecified; + } + set { + this.isCommonPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsCommonPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouseLift : LiftExportType { + + private System.DateTime modificationDateField; + + private string liftGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LiftGUID { + get { + return this.liftGUIDField; + } + set { + this.liftGUIDField = value; + this.RaisePropertyChanged("LiftGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + private System.DateTime terminationDateField; + + private bool terminationDateFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime TerminationDate { + get { + return this.terminationDateField; + } + set { + this.terminationDateField = value; + this.RaisePropertyChanged("TerminationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TerminationDateSpecified { + get { + return this.terminationDateFieldSpecified; + } + set { + this.terminationDateFieldSpecified = value; + this.RaisePropertyChanged("TerminationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeApartmentHouseNonResidentialPremises : NonResidentialPremisesExportType { + + private string premisesUniqueNumberField; + + private System.DateTime modificationDateField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PremisesUniqueNumber { + get { + return this.premisesUniqueNumberField; + } + set { + this.premisesUniqueNumberField = value; + this.RaisePropertyChanged("PremisesUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicExportType basicCharacteristictsField; + + private string undergroundFloorCountField; + + private nsiRef overhaulFormingKindField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicExportType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef OverhaulFormingKind { + get { + return this.overhaulFormingKindField; + } + set { + this.overhaulFormingKindField = value; + this.RaisePropertyChanged("OverhaulFormingKind"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeLivingHouse : LivingHouseExportType { + + private object[] itemsField; + + private string houseGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Block", typeof(exportHouseResultTypeLivingHouseBlock), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", typeof(exportHouseResultTypeLivingHouseLivingRoom), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string HouseGUID { + get { + return this.houseGUIDField; + } + set { + this.houseGUIDField = value; + this.RaisePropertyChanged("HouseGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeLivingHouseBlock : BlockExportType { + + private string blockUniqueNumberField; + + private System.DateTime modificationDateField; + + private string blockGUIDField; + + private exportHouseResultTypeLivingHouseBlockLivingRoom[] livingRoomField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string BlockUniqueNumber { + get { + return this.blockUniqueNumberField; + } + set { + this.blockUniqueNumberField = value; + this.RaisePropertyChanged("BlockUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string BlockGUID { + get { + return this.blockGUIDField; + } + set { + this.blockGUIDField = value; + this.RaisePropertyChanged("BlockGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoom", Order=3)] + public exportHouseResultTypeLivingHouseBlockLivingRoom[] LivingRoom { + get { + return this.livingRoomField; + } + set { + this.livingRoomField = value; + this.RaisePropertyChanged("LivingRoom"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeLivingHouseBlockLivingRoom : RoomExportType { + + private string livingRoomUniqueNumberField; + + private System.DateTime modificationDateField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string LivingRoomUniqueNumber { + get { + return this.livingRoomUniqueNumberField; + } + set { + this.livingRoomUniqueNumberField = value; + this.RaisePropertyChanged("LivingRoomUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseResultTypeLivingHouseLivingRoom : RoomExportType { + + private string livingRoomUniqueNumberField; + + private System.DateTime modificationDateField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string LivingRoomUniqueNumber { + get { + return this.livingRoomUniqueNumberField; + } + set { + this.livingRoomUniqueNumberField = value; + this.RaisePropertyChanged("LivingRoomUniqueNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime ModificationDate { + get { + return this.modificationDateField; + } + set { + this.modificationDateField = value; + this.RaisePropertyChanged("ModificationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicExportType basicCharacteristictsField; + + private bool hasBlocksField; + + private bool hasBlocksFieldSpecified; + + private bool hasMultipleHousesWithSameAddressField; + + private bool hasMultipleHousesWithSameAddressFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicExportType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool HasBlocks { + get { + return this.hasBlocksField; + } + set { + this.hasBlocksField = value; + this.RaisePropertyChanged("HasBlocks"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasBlocksSpecified { + get { + return this.hasBlocksFieldSpecified; + } + set { + this.hasBlocksFieldSpecified = value; + this.RaisePropertyChanged("HasBlocksSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool HasMultipleHousesWithSameAddress { + get { + return this.hasMultipleHousesWithSameAddressField; + } + set { + this.hasMultipleHousesWithSameAddressField = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddress"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasMultipleHousesWithSameAddressSpecified { + get { + return this.hasMultipleHousesWithSameAddressFieldSpecified; + } + set { + this.hasMultipleHousesWithSameAddressFieldSpecified = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddressSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportMeteringDeviceDataResultType : MeteringDeviceFullInformationExportType { + + private string meteringDeviceRootGUIDField; + + private exportMeteringDeviceDataResultTypeStatusRootDoc statusRootDocField; + + private string meteringDeviceVersionGUIDField; + + private string versionNumberField; + + private string statusVersionField; + + private System.DateTime updateDateTimeField; + + private string[] meteringOwnerField; + + private string meteringDeviceGISGKHNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MeteringDeviceRootGUID { + get { + return this.meteringDeviceRootGUIDField; + } + set { + this.meteringDeviceRootGUIDField = value; + this.RaisePropertyChanged("MeteringDeviceRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportMeteringDeviceDataResultTypeStatusRootDoc StatusRootDoc { + get { + return this.statusRootDocField; + } + set { + this.statusRootDocField = value; + this.RaisePropertyChanged("StatusRootDoc"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MeteringDeviceVersionGUID { + get { + return this.meteringDeviceVersionGUIDField; + } + set { + this.meteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("MeteringDeviceVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=3)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string StatusVersion { + get { + return this.statusVersionField; + } + set { + this.statusVersionField = value; + this.RaisePropertyChanged("StatusVersion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public System.DateTime UpdateDateTime { + get { + return this.updateDateTimeField; + } + set { + this.updateDateTimeField = value; + this.RaisePropertyChanged("UpdateDateTime"); + } + } + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=6)] + [System.Xml.Serialization.XmlArrayItemAttribute("orgRootEntityGUID", Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", IsNullable=false)] + public string[] MeteringOwner { + get { + return this.meteringOwnerField; + } + set { + this.meteringOwnerField = value; + this.RaisePropertyChanged("MeteringOwner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string MeteringDeviceGISGKHNumber { + get { + return this.meteringDeviceGISGKHNumberField; + } + set { + this.meteringDeviceGISGKHNumberField = value; + this.RaisePropertyChanged("MeteringDeviceGISGKHNumber"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportMeteringDeviceDataResultTypeStatusRootDoc { + + /// + Active, + + /// + Archival, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportMeteringDeviceDataResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceFullInformationExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private MeteringDeviceBasicCharacteristicsType basicChatacteristictsField; + + private object itemField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MeteringDeviceBasicCharacteristicsType BasicChatacteristicts { + get { + return this.basicChatacteristictsField; + } + set { + this.basicChatacteristictsField = value; + this.RaisePropertyChanged("BasicChatacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedWithMetering", typeof(MeteringDeviceFullInformationExportTypeLinkedWithMetering), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NotLinkedWithMetering", typeof(bool), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceEnergy", typeof(MunicipalResourceElectricExportType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResourceNotEnergy", typeof(MunicipalResourceNotElectricExportType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalResources", typeof(DeviceMunicipalResourceType), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MeteringDeviceFullInformationExportTypeLinkedWithMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private MeteringDeviceFullInformationExportTypeLinkedWithMeteringInstallationPlace installationPlaceField; + + private string[] linkedMeteringDeviceVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public MeteringDeviceFullInformationExportTypeLinkedWithMeteringInstallationPlace InstallationPlace { + get { + return this.installationPlaceField; + } + set { + this.installationPlaceField = value; + this.RaisePropertyChanged("InstallationPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LinkedMeteringDeviceVersionGUID", Order=1)] + public string[] LinkedMeteringDeviceVersionGUID { + get { + return this.linkedMeteringDeviceVersionGUIDField; + } + set { + this.linkedMeteringDeviceVersionGUIDField = value; + this.RaisePropertyChanged("LinkedMeteringDeviceVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum MeteringDeviceFullInformationExportTypeLinkedWithMeteringInstallationPlace { + + /// + @in, + + /// + @out, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportOwnerDecisionResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string rootOwnerDecisionGUIDField; + + private Owner ownerField; + + private exportPropertyDetails[] exportPropertyDetailsField; + + private Representative representativeField; + + private QuestionOnDecisionType questionOnDecisionField; + + private AttachmentType[] attachmentsField; + + private bool decisionAnnuledField; + + private bool decisionAnnuledFieldSpecified; + + public exportOwnerDecisionResultType() { + this.decisionAnnuledField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RootOwnerDecisionGUID { + get { + return this.rootOwnerDecisionGUIDField; + } + set { + this.rootOwnerDecisionGUIDField = value; + this.RaisePropertyChanged("RootOwnerDecisionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public Owner Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + this.RaisePropertyChanged("Owner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("exportPropertyDetails", Order=2)] + public exportPropertyDetails[] exportPropertyDetails { + get { + return this.exportPropertyDetailsField; + } + set { + this.exportPropertyDetailsField = value; + this.RaisePropertyChanged("exportPropertyDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public Representative Representative { + get { + return this.representativeField; + } + set { + this.representativeField = value; + this.RaisePropertyChanged("Representative"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public QuestionOnDecisionType QuestionOnDecision { + get { + return this.questionOnDecisionField; + } + set { + this.questionOnDecisionField = value; + this.RaisePropertyChanged("QuestionOnDecision"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public AttachmentType[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool DecisionAnnuled { + get { + return this.decisionAnnuledField; + } + set { + this.decisionAnnuledField = value; + this.RaisePropertyChanged("DecisionAnnuled"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DecisionAnnuledSpecified { + get { + return this.decisionAnnuledFieldSpecified; + } + set { + this.decisionAnnuledFieldSpecified = value; + this.RaisePropertyChanged("DecisionAnnuledSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class Owner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("OwnerInd", typeof(OwnerOwnerInd), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("OwnerOrg", typeof(RegOrgRootAndVersionType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OwnerOwnerInd : DecisionIndType { + + private string sNILSField; + + private DecisionIndID decisionIndIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=0)] + public string SNILS { + get { + return this.sNILSField; + } + set { + this.sNILSField = value; + this.RaisePropertyChanged("SNILS"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DecisionIndID DecisionIndID { + get { + return this.decisionIndIDField; + } + set { + this.decisionIndIDField = value; + this.RaisePropertyChanged("DecisionIndID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DecisionIndID : object, System.ComponentModel.INotifyPropertyChanged { + + private nsiRef typeField; + + private string seriesField; + + private string numberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Series { + get { + return this.seriesField; + } + set { + this.seriesField = value; + this.RaisePropertyChanged("Series"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Number { + get { + return this.numberField; + } + set { + this.numberField = value; + this.RaisePropertyChanged("Number"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportPropertyDetails : object, System.ComponentModel.INotifyPropertyChanged { + + private string registrationNumberField; + + private System.DateTime registrationDateField; + + private string premisesNumField; + + private decimal totalAreaField; + + private bool totalAreaFieldSpecified; + + private exportPropertyDetailsPropertyType propertyTypeField; + + private exportPropertyDetailsShareSize shareSizeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RegistrationNumber { + get { + return this.registrationNumberField; + } + set { + this.registrationNumberField = value; + this.RaisePropertyChanged("RegistrationNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime RegistrationDate { + get { + return this.registrationDateField; + } + set { + this.registrationDateField = value; + this.RaisePropertyChanged("RegistrationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalAreaSpecified { + get { + return this.totalAreaFieldSpecified; + } + set { + this.totalAreaFieldSpecified = value; + this.RaisePropertyChanged("TotalAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportPropertyDetailsPropertyType PropertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("PropertyType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public exportPropertyDetailsShareSize ShareSize { + get { + return this.shareSizeField; + } + set { + this.shareSizeField = value; + this.RaisePropertyChanged("ShareSize"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportPropertyDetailsPropertyType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType14 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("IndividualProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("JointProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ShareProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType14 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType14 { + + /// + IndividualProperty, + + /// + JointProperty, + + /// + ShareProperty, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportPropertyDetailsShareSize : object, System.ComponentModel.INotifyPropertyChanged { + + private string numeratorField; + + private string denumeratorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string Numerator { + get { + return this.numeratorField; + } + set { + this.numeratorField = value; + this.RaisePropertyChanged("Numerator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string Denumerator { + get { + return this.denumeratorField; + } + set { + this.denumeratorField = value; + this.RaisePropertyChanged("Denumerator"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class Representative : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool notarizedField; + + private AttachmentType[] representativeAttachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("RepresentativeInd", typeof(RepresentativeRepresentativeInd), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RepresentativeOrg", typeof(RegOrgRootAndVersionType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool Notarized { + get { + return this.notarizedField; + } + set { + this.notarizedField = value; + this.RaisePropertyChanged("Notarized"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RepresentativeAttachments", Order=2)] + public AttachmentType[] RepresentativeAttachments { + get { + return this.representativeAttachmentsField; + } + set { + this.representativeAttachmentsField = value; + this.RaisePropertyChanged("RepresentativeAttachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RepresentativeRepresentativeInd : DecisionIndType { + + private string sNILSField; + + private DecisionIndID decisionIndIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=0)] + public string SNILS { + get { + return this.sNILSField; + } + set { + this.sNILSField = value; + this.RaisePropertyChanged("SNILS"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DecisionIndID DecisionIndID { + get { + return this.decisionIndIDField; + } + set { + this.decisionIndIDField = value; + this.RaisePropertyChanged("DecisionIndID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class QuestionOnDecisionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private bool itemField; + + private ItemChoiceType15 itemElementNameField; + + private bool isDigitalDecisionField; + + private bool isDigitalDecisionFieldSpecified; + + public QuestionOnDecisionType() { + this.isDigitalDecisionField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OwnerAbstent", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("OwnerAgainst", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("OwnerAgree", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType15 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IsDigitalDecision { + get { + return this.isDigitalDecisionField; + } + set { + this.isDigitalDecisionField = value; + this.RaisePropertyChanged("IsDigitalDecision"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsDigitalDecisionSpecified { + get { + return this.isDigitalDecisionFieldSpecified; + } + set { + this.isDigitalDecisionFieldSpecified = value; + this.RaisePropertyChanged("IsDigitalDecisionSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType15 { + + /// + OwnerAbstent, + + /// + OwnerAgainst, + + /// + OwnerAgree, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OwnerRefusalExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private string refusalGUIDField; + + private Owner ownerField; + + private exportPropertyDetails[] exportPropertyDetailsField; + + private Representative representativeField; + + private AttachmentType[] refusalAttachmentsField; + + private OwnerRefusalStatusType refusalStatusField; + + private System.DateTime publishDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RefusalGUID { + get { + return this.refusalGUIDField; + } + set { + this.refusalGUIDField = value; + this.RaisePropertyChanged("RefusalGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public Owner Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + this.RaisePropertyChanged("Owner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("exportPropertyDetails", Order=3)] + public exportPropertyDetails[] exportPropertyDetails { + get { + return this.exportPropertyDetailsField; + } + set { + this.exportPropertyDetailsField = value; + this.RaisePropertyChanged("exportPropertyDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public Representative Representative { + get { + return this.representativeField; + } + set { + this.representativeField = value; + this.RaisePropertyChanged("Representative"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RefusalAttachments", Order=5)] + public AttachmentType[] RefusalAttachments { + get { + return this.refusalAttachmentsField; + } + set { + this.refusalAttachmentsField = value; + this.RaisePropertyChanged("RefusalAttachments"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OwnerRefusalStatusType RefusalStatus { + get { + return this.refusalStatusField; + } + set { + this.refusalStatusField = value; + this.RaisePropertyChanged("RefusalStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public System.DateTime PublishDate { + get { + return this.publishDateField; + } + set { + this.publishDateField = value; + this.RaisePropertyChanged("PublishDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum OwnerRefusalStatusType { + + /// + Published, + + /// + Canceled, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private exportStatusPublicPropertyContractResultTypePublicPropertyContract[] publicPropertyContractField; + + /// + [System.Xml.Serialization.XmlElementAttribute("PublicPropertyContract", Order=0)] + public exportStatusPublicPropertyContractResultTypePublicPropertyContract[] PublicPropertyContract { + get { + return this.publicPropertyContractField; + } + set { + this.publicPropertyContractField = value; + this.RaisePropertyChanged("PublicPropertyContract"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractResultTypePublicPropertyContract : PublicPropertyContractExportType { + + private string contractGUIDField; + + private string statusContractField; + + private string contractVersionGUIDField; + + private string versionNumberField; + + private string statusVersionField; + + private exportStatusPublicPropertyContractResultTypePublicPropertyContractPaymentInterval paymentIntervalField; + + private exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPayment[] agreementPaymentField; + + private bool isGratuitousBasisField; + + private bool isGratuitousBasisFieldSpecified; + + public exportStatusPublicPropertyContractResultTypePublicPropertyContract() { + this.isGratuitousBasisField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string StatusContract { + get { + return this.statusContractField; + } + set { + this.statusContractField = value; + this.RaisePropertyChanged("StatusContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=3)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string StatusVersion { + get { + return this.statusVersionField; + } + set { + this.statusVersionField = value; + this.RaisePropertyChanged("StatusVersion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public exportStatusPublicPropertyContractResultTypePublicPropertyContractPaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AgreementPayment", Order=6)] + public exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPayment[] AgreementPayment { + get { + return this.agreementPaymentField; + } + set { + this.agreementPaymentField = value; + this.RaisePropertyChanged("AgreementPayment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool IsGratuitousBasis { + get { + return this.isGratuitousBasisField; + } + set { + this.isGratuitousBasisField = value; + this.RaisePropertyChanged("IsGratuitousBasis"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsGratuitousBasisSpecified { + get { + return this.isGratuitousBasisFieldSpecified; + } + set { + this.isGratuitousBasisFieldSpecified = value; + this.RaisePropertyChanged("IsGratuitousBasisSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractResultTypePublicPropertyContractPaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType8[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("EndDate", typeof(DaySelectionExportType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Other", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(DaySelectionExportType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType8[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType8 { + + /// + EndDate, + + /// + Other, + + /// + StartDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPayment : object, System.ComponentModel.INotifyPropertyChanged { + + private string agreementPaymentVersionGUIDField; + + private exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPaymentDatePeriod datePeriodField; + + private decimal billField; + + private decimal debtField; + + private decimal paidField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AgreementPaymentVersionGUID { + get { + return this.agreementPaymentVersionGUIDField; + } + set { + this.agreementPaymentVersionGUIDField = value; + this.RaisePropertyChanged("AgreementPaymentVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPaymentDatePeriod DatePeriod { + get { + return this.datePeriodField; + } + set { + this.datePeriodField = value; + this.RaisePropertyChanged("DatePeriod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal Bill { + get { + return this.billField; + } + set { + this.billField = value; + this.RaisePropertyChanged("Bill"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal Debt { + get { + return this.debtField; + } + set { + this.debtField = value; + this.RaisePropertyChanged("Debt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal Paid { + get { + return this.paidField; + } + set { + this.paidField = value; + this.RaisePropertyChanged("Paid"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractResultTypePublicPropertyContractAgreementPaymentDatePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateFromField; + + private System.DateTime dateToField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateFrom { + get { + return this.dateFromField; + } + set { + this.dateFromField = value; + this.RaisePropertyChanged("DateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateTo { + get { + return this.dateToField; + } + set { + this.dateToField = value; + this.RaisePropertyChanged("DateTo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractExportType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string fIASHouseGuidField; + + private string contractNumberField; + + private System.DateTime dateField; + + private bool dateFieldSpecified; + + private System.DateTime startDateField; + + private bool startDateFieldSpecified; + + private System.DateTime endDateField; + + private bool endDateFieldSpecified; + + private string contractObjectField; + + private string commentsField; + + private decimal paymentField; + + private bool paymentFieldSpecified; + + private string moneySpentDirectionField; + + private AttachmentType[] contractAttachmentField; + + private PublicPropertyContractExportTypeRentAgrConfirmationDocument[] rentAgrConfirmationDocumentField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Entrepreneur", typeof(IndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(RegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateSpecified { + get { + return this.dateFieldSpecified; + } + set { + this.dateFieldSpecified = value; + this.RaisePropertyChanged("DateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StartDateSpecified { + get { + return this.startDateFieldSpecified; + } + set { + this.startDateFieldSpecified = value; + this.RaisePropertyChanged("StartDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndDateSpecified { + get { + return this.endDateFieldSpecified; + } + set { + this.endDateFieldSpecified = value; + this.RaisePropertyChanged("EndDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string Comments { + get { + return this.commentsField; + } + set { + this.commentsField = value; + this.RaisePropertyChanged("Comments"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public decimal Payment { + get { + return this.paymentField; + } + set { + this.paymentField = value; + this.RaisePropertyChanged("Payment"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PaymentSpecified { + get { + return this.paymentFieldSpecified; + } + set { + this.paymentFieldSpecified = value; + this.RaisePropertyChanged("PaymentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string MoneySpentDirection { + get { + return this.moneySpentDirectionField; + } + set { + this.moneySpentDirectionField = value; + this.RaisePropertyChanged("MoneySpentDirection"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=10)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RentAgrConfirmationDocument", Order=11)] + public PublicPropertyContractExportTypeRentAgrConfirmationDocument[] RentAgrConfirmationDocument { + get { + return this.rentAgrConfirmationDocumentField; + } + set { + this.rentAgrConfirmationDocumentField = value; + this.RaisePropertyChanged("RentAgrConfirmationDocument"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractExportTypeRentAgrConfirmationDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", typeof(PublicPropertyContractExportTypeRentAgrConfirmationDocumentProtocolMeetingOwners), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractExportTypeRentAgrConfirmationDocumentProtocolMeetingOwners : object, System.ComponentModel.INotifyPropertyChanged { + + private string protocolNumField; + + private System.DateTime protocolDateField; + + private AttachmentType[] trustDocAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ProtocolNum { + get { + return this.protocolNumField; + } + set { + this.protocolNumField = value; + this.RaisePropertyChanged("ProtocolNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime ProtocolDate { + get { + return this.protocolDateField; + } + set { + this.protocolDateField = value; + this.RaisePropertyChanged("ProtocolDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TrustDocAttachment", Order=2)] + public AttachmentType[] TrustDocAttachment { + get { + return this.trustDocAttachmentField; + } + set { + this.trustDocAttachmentField = value; + this.RaisePropertyChanged("TrustDocAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportSupplyResourceContractObjectAddress : object, System.ComponentModel.INotifyPropertyChanged { + + private exportSupplyResourceContractObjectAddressResultType[] objectAddressField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ObjectAddress", Order=0)] + public exportSupplyResourceContractObjectAddressResultType[] ObjectAddress { + get { + return this.objectAddressField; + } + set { + this.objectAddressField = value; + this.RaisePropertyChanged("ObjectAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ExportObjectGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("IsLastPage", typeof(bool), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultType : ObjectAddressType { + + private exportSupplyResourceContractObjectAddressResultTypePair[] pairField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private exportSupplyResourceContractObjectAddressResultTypeQuality[] qualityField; + + private exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicator[] otherQualityIndicatorField; + + private exportSupplyResourceContractObjectAddressResultTypePlannedVolume[] plannedVolumeField; + + private string objectGUIDField; + + private string contractRootGUIDField; + + private string contractGUIDField; + + private string versionNumberField; + + private exportSupplyResourceContractObjectAddressResultTypeVersionStatus versionStatusField; + + private exportSupplyResourceContractObjectAddressResultTypeCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + public exportSupplyResourceContractObjectAddressResultType() { + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Pair", Order=0)] + public exportSupplyResourceContractObjectAddressResultTypePair[] Pair { + get { + return this.pairField; + } + set { + this.pairField = value; + this.RaisePropertyChanged("Pair"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Quality", Order=2)] + public exportSupplyResourceContractObjectAddressResultTypeQuality[] Quality { + get { + return this.qualityField; + } + set { + this.qualityField = value; + this.RaisePropertyChanged("Quality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OtherQualityIndicator", Order=3)] + public exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicator[] OtherQualityIndicator { + get { + return this.otherQualityIndicatorField; + } + set { + this.otherQualityIndicatorField = value; + this.RaisePropertyChanged("OtherQualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVolume", Order=4)] + public exportSupplyResourceContractObjectAddressResultTypePlannedVolume[] PlannedVolume { + get { + return this.plannedVolumeField; + } + set { + this.plannedVolumeField = value; + this.RaisePropertyChanged("PlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string ObjectGUID { + get { + return this.objectGUIDField; + } + set { + this.objectGUIDField = value; + this.RaisePropertyChanged("ObjectGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string ContractRootGUID { + get { + return this.contractRootGUIDField; + } + set { + this.contractRootGUIDField = value; + this.RaisePropertyChanged("ContractRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="positiveInteger", Order=8)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public exportSupplyResourceContractObjectAddressResultTypeVersionStatus VersionStatus { + get { + return this.versionStatusField; + } + set { + this.versionStatusField = value; + this.RaisePropertyChanged("VersionStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public exportSupplyResourceContractObjectAddressResultTypeCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypePair : ContractSubjectObjectAdressType { + + private exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemType[] heatingSystemTypeField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("HeatingSystemType", Order=0)] + public exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemType[] HeatingSystemType { + get { + return this.heatingSystemTypeField; + } + set { + this.heatingSystemTypeField = value; + this.RaisePropertyChanged("HeatingSystemType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemType : object, System.ComponentModel.INotifyPropertyChanged { + + private exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeOpenOrNot openOrNotField; + + private exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeCentralizedOrNot centralizedOrNotField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeOpenOrNot OpenOrNot { + get { + return this.openOrNotField; + } + set { + this.openOrNotField = value; + this.RaisePropertyChanged("OpenOrNot"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeCentralizedOrNot CentralizedOrNot { + get { + return this.centralizedOrNotField; + } + set { + this.centralizedOrNotField = value; + this.RaisePropertyChanged("CentralizedOrNot"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeOpenOrNot { + + /// + Opened, + + /// + Closed, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractObjectAddressResultTypePairHeatingSystemTypeCentralizedOrNot { + + /// + Centralized, + + /// + Decentralized, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypeQuality : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private nsiRef qualityIndicatorField; + + private exportSupplyResourceContractObjectAddressResultTypeQualityIndicatorValue[] indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef QualityIndicator { + get { + return this.qualityIndicatorField; + } + set { + this.qualityIndicatorField = value; + this.RaisePropertyChanged("QualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IndicatorValue", Order=2)] + public exportSupplyResourceContractObjectAddressResultTypeQualityIndicatorValue[] IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypeQualityIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class IndicatorValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType14[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("OKEI", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Correspond", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("EndRange", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Number", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartRange", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType14[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType14 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/base/:OKEI")] + OKEI, + + /// + Correspond, + + /// + EndRange, + + /// + Number, + + /// + StartRange, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicator : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string indicatorNameField; + + private exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicatorIndicatorValue indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string IndicatorName { + get { + return this.indicatorNameField; + } + set { + this.indicatorNameField = value; + this.RaisePropertyChanged("IndicatorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicatorIndicatorValue IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypeOtherQualityIndicatorIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressResultTypePlannedVolume : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private decimal volumeField; + + private bool volumeFieldSpecified; + + private string unitField; + + private string feedingModeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Volume { + get { + return this.volumeField; + } + set { + this.volumeField = value; + this.RaisePropertyChanged("Volume"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VolumeSpecified { + get { + return this.volumeFieldSpecified; + } + set { + this.volumeFieldSpecified = value; + this.RaisePropertyChanged("VolumeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FeedingMode { + get { + return this.feedingModeField; + } + set { + this.feedingModeField = value; + this.RaisePropertyChanged("FeedingMode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractObjectAddressResultTypeVersionStatus { + + /// + Posted, + + /// + Terminated, + + /// + Draft, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractObjectAddressResultTypeCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportSupplyResourceContractObjectAddressResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ObjectAddressType : object, System.ComponentModel.INotifyPropertyChanged { + + private ObjectAddressTypeHouseType houseTypeField; + + private bool houseTypeFieldSpecified; + + private string fIASHouseGuidField; + + private string apartmentNumberField; + + private string roomNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ObjectAddressTypeHouseType HouseType { + get { + return this.houseTypeField; + } + set { + this.houseTypeField = value; + this.RaisePropertyChanged("HouseType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HouseTypeSpecified { + get { + return this.houseTypeFieldSpecified; + } + set { + this.houseTypeFieldSpecified = value; + this.RaisePropertyChanged("HouseTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ApartmentNumber { + get { + return this.apartmentNumberField; + } + set { + this.apartmentNumberField = value; + this.RaisePropertyChanged("ApartmentNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string RoomNumber { + get { + return this.roomNumberField; + } + set { + this.roomNumberField = value; + this.RaisePropertyChanged("RoomNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ObjectAddressTypeHouseType { + + /// + MKD, + + /// + ZHD, + + /// + ZHDBlockZastroyki, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class getStateResultExportSupplyResourceContractResult : object, System.ComponentModel.INotifyPropertyChanged { + + private exportSupplyResourceContractResultType[] contractField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Contract", Order=0)] + public exportSupplyResourceContractResultType[] Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ExportContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("IsLastPage", typeof(bool), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractResultType : ExportSupplyResourceContractType { + + private string contractRootGUIDField; + + private string contractGUIDField; + + private exportSupplyResourceContractResultTypeContractState contractStateField; + + private string versionNumberField; + + private exportSupplyResourceContractResultTypeVersionStatus versionStatusField; + + private exportSupplyResourceContractResultTypeTerminateContract terminateContractField; + + private ExportAnnulmentType annulmentContractField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractRootGUID { + get { + return this.contractRootGUIDField; + } + set { + this.contractRootGUIDField = value; + this.RaisePropertyChanged("ContractRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractGUID { + get { + return this.contractGUIDField; + } + set { + this.contractGUIDField = value; + this.RaisePropertyChanged("ContractGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportSupplyResourceContractResultTypeContractState ContractState { + get { + return this.contractStateField; + } + set { + this.contractStateField = value; + this.RaisePropertyChanged("ContractState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="positiveInteger", Order=3)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportSupplyResourceContractResultTypeVersionStatus VersionStatus { + get { + return this.versionStatusField; + } + set { + this.versionStatusField = value; + this.RaisePropertyChanged("VersionStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public exportSupplyResourceContractResultTypeTerminateContract TerminateContract { + get { + return this.terminateContractField; + } + set { + this.terminateContractField = value; + this.RaisePropertyChanged("TerminateContract"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public ExportAnnulmentType AnnulmentContract { + get { + return this.annulmentContractField; + } + set { + this.annulmentContractField = value; + this.RaisePropertyChanged("AnnulmentContract"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractResultTypeContractState { + + /// + NotTakeEffect, + + /// + Proceed, + + /// + Expired, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportSupplyResourceContractResultTypeVersionStatus { + + /// + Posted, + + /// + Terminated, + + /// + Draft, + + /// + Annul, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractResultTypeTerminateContract : TerminateType { + + private nsiRef reasonRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportAnnulmentType : object, System.ComponentModel.INotifyPropertyChanged { + + private string reasonOfAnnulmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ReasonOfAnnulment { + get { + return this.reasonOfAnnulmentField; + } + set { + this.reasonOfAnnulmentField = value; + this.RaisePropertyChanged("ReasonOfAnnulment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(exportSupplyResourceContractResultType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private object[] itemsField; + + private ItemsChoiceType12[] itemsElementNameField; + + private bool volumeDependsField; + + private bool volumeDependsFieldSpecified; + + private ExportSupplyResourceContractTypePeriod periodField; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + private nsiRef[] contractBaseField; + + private object item1Field; + + private bool isPlannedVolumeField; + + private ExportSupplyResourceContractTypePlannedVolumeType plannedVolumeTypeField; + + private bool plannedVolumeTypeFieldSpecified; + + private ExportSupplyResourceContractTypeContractSubject[] contractSubjectField; + + private ExportSupplyResourceContractTypeCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + private ExportSupplyResourceContractTypeSpecifyingQualityIndicators specifyingQualityIndicatorsField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private ExportSupplyResourceContractTypeQuality[] qualityField; + + private ExportSupplyResourceContractTypeOtherQualityIndicator[] otherQualityIndicatorField; + + private ExportSupplyResourceContractTypePlannedVolume[] plannedVolumeField; + + private bool oneTimePaymentField; + + private bool oneTimePaymentFieldSpecified; + + private ExportSupplyResourceContractTypeBillingDate billingDateField; + + private ExportSupplyResourceContractTypePaymentDate paymentDateField; + + private ExportSupplyResourceContractTypeProvidingInformationDate providingInformationDateField; + + public ExportSupplyResourceContractType() { + this.indicationsAnyDayField = true; + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IsContract", typeof(ExportSupplyResourceContractTypeIsContract), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IsNotContract", typeof(ExportSupplyResourceContractTypeIsNotContract), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AutomaticRollOverOneYear", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ComptetionDate", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("IndefiniteTerm", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType12[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool VolumeDepends { + get { + return this.volumeDependsField; + } + set { + this.volumeDependsField = value; + this.RaisePropertyChanged("VolumeDepends"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VolumeDependsSpecified { + get { + return this.volumeDependsFieldSpecified; + } + set { + this.volumeDependsFieldSpecified = value; + this.RaisePropertyChanged("VolumeDependsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ExportSupplyResourceContractTypePeriod Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractBase", Order=6)] + public nsiRef[] ContractBase { + get { + return this.contractBaseField; + } + set { + this.contractBaseField = value; + this.RaisePropertyChanged("ContractBase"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingOwner", typeof(ExportSupplyResourceContractTypeApartmentBuildingOwner), Order=7)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingRepresentativeOwner", typeof(ExportSupplyResourceContractTypeApartmentBuildingRepresentativeOwner), Order=7)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingSoleOwner", typeof(ExportSupplyResourceContractTypeApartmentBuildingSoleOwner), Order=7)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseOwner", typeof(ExportSupplyResourceContractTypeLivingHouseOwner), Order=7)] + [System.Xml.Serialization.XmlElementAttribute("Offer", typeof(bool), Order=7)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(ExportSupplyResourceContractTypeOrganization), Order=7)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool IsPlannedVolume { + get { + return this.isPlannedVolumeField; + } + set { + this.isPlannedVolumeField = value; + this.RaisePropertyChanged("IsPlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public ExportSupplyResourceContractTypePlannedVolumeType PlannedVolumeType { + get { + return this.plannedVolumeTypeField; + } + set { + this.plannedVolumeTypeField = value; + this.RaisePropertyChanged("PlannedVolumeType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PlannedVolumeTypeSpecified { + get { + return this.plannedVolumeTypeFieldSpecified; + } + set { + this.plannedVolumeTypeFieldSpecified = value; + this.RaisePropertyChanged("PlannedVolumeTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", Order=10)] + public ExportSupplyResourceContractTypeContractSubject[] ContractSubject { + get { + return this.contractSubjectField; + } + set { + this.contractSubjectField = value; + this.RaisePropertyChanged("ContractSubject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public ExportSupplyResourceContractTypeCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public ExportSupplyResourceContractTypeSpecifyingQualityIndicators SpecifyingQualityIndicators { + get { + return this.specifyingQualityIndicatorsField; + } + set { + this.specifyingQualityIndicatorsField = value; + this.RaisePropertyChanged("SpecifyingQualityIndicators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Quality", Order=15)] + public ExportSupplyResourceContractTypeQuality[] Quality { + get { + return this.qualityField; + } + set { + this.qualityField = value; + this.RaisePropertyChanged("Quality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OtherQualityIndicator", Order=16)] + public ExportSupplyResourceContractTypeOtherQualityIndicator[] OtherQualityIndicator { + get { + return this.otherQualityIndicatorField; + } + set { + this.otherQualityIndicatorField = value; + this.RaisePropertyChanged("OtherQualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVolume", Order=17)] + public ExportSupplyResourceContractTypePlannedVolume[] PlannedVolume { + get { + return this.plannedVolumeField; + } + set { + this.plannedVolumeField = value; + this.RaisePropertyChanged("PlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool OneTimePayment { + get { + return this.oneTimePaymentField; + } + set { + this.oneTimePaymentField = value; + this.RaisePropertyChanged("OneTimePayment"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool OneTimePaymentSpecified { + get { + return this.oneTimePaymentFieldSpecified; + } + set { + this.oneTimePaymentFieldSpecified = value; + this.RaisePropertyChanged("OneTimePaymentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public ExportSupplyResourceContractTypeBillingDate BillingDate { + get { + return this.billingDateField; + } + set { + this.billingDateField = value; + this.RaisePropertyChanged("BillingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public ExportSupplyResourceContractTypePaymentDate PaymentDate { + get { + return this.paymentDateField; + } + set { + this.paymentDateField = value; + this.RaisePropertyChanged("PaymentDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public ExportSupplyResourceContractTypeProvidingInformationDate ProvidingInformationDate { + get { + return this.providingInformationDateField; + } + set { + this.providingInformationDateField = value; + this.RaisePropertyChanged("ProvidingInformationDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeIsContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeIsNotContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private bool signingDateFieldSpecified; + + private System.DateTime effectiveDateField; + + private bool effectiveDateFieldSpecified; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SigningDateSpecified { + get { + return this.signingDateFieldSpecified; + } + set { + this.signingDateFieldSpecified = value; + this.RaisePropertyChanged("SigningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EffectiveDateSpecified { + get { + return this.effectiveDateFieldSpecified; + } + set { + this.effectiveDateFieldSpecified = value; + this.RaisePropertyChanged("EffectiveDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType12 { + + /// + AutomaticRollOverOneYear, + + /// + ComptetionDate, + + /// + IndefiniteTerm, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportSupplyResourceContractTypePeriodStart startField; + + private ExportSupplyResourceContractTypePeriodEnd endField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ExportSupplyResourceContractTypePeriodStart Start { + get { + return this.startField; + } + set { + this.startField = value; + this.RaisePropertyChanged("Start"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportSupplyResourceContractTypePeriodEnd End { + get { + return this.endField; + } + set { + this.endField = value; + this.RaisePropertyChanged("End"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypePeriodStart : object, System.ComponentModel.INotifyPropertyChanged { + + private string startDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public ExportSupplyResourceContractTypePeriodStart() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypePeriodEnd : object, System.ComponentModel.INotifyPropertyChanged { + + private string endDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public ExportSupplyResourceContractTypePeriodEnd() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeApartmentBuildingOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DRSOIndType : object, System.ComponentModel.INotifyPropertyChanged { + + private string surnameField; + + private string firstNameField; + + private string patronymicField; + + private DRSOIndTypeSex sexField; + + private bool sexFieldSpecified; + + private System.DateTime dateOfBirthField; + + private bool dateOfBirthFieldSpecified; + + private object itemField; + + private string placeBirthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Surname { + get { + return this.surnameField; + } + set { + this.surnameField = value; + this.RaisePropertyChanged("Surname"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("FirstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Patronymic { + get { + return this.patronymicField; + } + set { + this.patronymicField = value; + this.RaisePropertyChanged("Patronymic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public DRSOIndTypeSex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime DateOfBirth { + get { + return this.dateOfBirthField; + } + set { + this.dateOfBirthField = value; + this.RaisePropertyChanged("DateOfBirth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DateOfBirthSpecified { + get { + return this.dateOfBirthFieldSpecified; + } + set { + this.dateOfBirthFieldSpecified = value; + this.RaisePropertyChanged("DateOfBirthSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ID", typeof(ID), Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=5)] + [System.Xml.Serialization.XmlElementAttribute("SNILS", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/", Order=5)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string PlaceBirth { + get { + return this.placeBirthField; + } + set { + this.placeBirthField = value; + this.RaisePropertyChanged("PlaceBirth"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum DRSOIndTypeSex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DRSORegOrgType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgRootEntityGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgRootEntityGUID { + get { + return this.orgRootEntityGUIDField; + } + set { + this.orgRootEntityGUIDField = value; + this.RaisePropertyChanged("orgRootEntityGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeApartmentBuildingRepresentativeOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeApartmentBuildingSoleOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeLivingHouseOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeOrganization : RegOrgType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypePlannedVolumeType { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeContractSubject : object, System.ComponentModel.INotifyPropertyChanged { + + private ExportSupplyResourceContractTypeContractSubjectServiceType serviceTypeField; + + private ExportSupplyResourceContractTypeContractSubjectMunicipalResource municipalResourceField; + + private System.DateTime startSupplyDateField; + + private System.DateTime endSupplyDateField; + + private bool endSupplyDateFieldSpecified; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ExportSupplyResourceContractTypeContractSubjectServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportSupplyResourceContractTypeContractSubjectMunicipalResource MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime StartSupplyDate { + get { + return this.startSupplyDateField; + } + set { + this.startSupplyDateField = value; + this.RaisePropertyChanged("StartSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime EndSupplyDate { + get { + return this.endSupplyDateField; + } + set { + this.endSupplyDateField = value; + this.RaisePropertyChanged("EndSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndSupplyDateSpecified { + get { + return this.endSupplyDateFieldSpecified; + } + set { + this.endSupplyDateFieldSpecified = value; + this.RaisePropertyChanged("EndSupplyDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=4)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeContractSubjectServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeContractSubjectMunicipalResource : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypeCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypeSpecifyingQualityIndicators { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeQuality : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private nsiRef qualityIndicatorField; + + private ExportSupplyResourceContractTypeQualityIndicatorValue[] indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef QualityIndicator { + get { + return this.qualityIndicatorField; + } + set { + this.qualityIndicatorField = value; + this.RaisePropertyChanged("QualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IndicatorValue", Order=2)] + public ExportSupplyResourceContractTypeQualityIndicatorValue[] IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeQualityIndicatorValue : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType13[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("OKEI", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Correspond", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("EndRange", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Number", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartRange", typeof(decimal), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType13[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType13 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/base/:OKEI")] + OKEI, + + /// + Correspond, + + /// + EndRange, + + /// + Number, + + /// + StartRange, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeOtherQualityIndicator : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string indicatorNameField; + + private ExportSupplyResourceContractTypeOtherQualityIndicatorIndicatorValue indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string IndicatorName { + get { + return this.indicatorNameField; + } + set { + this.indicatorNameField = value; + this.RaisePropertyChanged("IndicatorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public ExportSupplyResourceContractTypeOtherQualityIndicatorIndicatorValue IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeOtherQualityIndicatorIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypePlannedVolume : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private decimal volumeField; + + private bool volumeFieldSpecified; + + private string unitField; + + private string feedingModeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Volume { + get { + return this.volumeField; + } + set { + this.volumeField = value; + this.RaisePropertyChanged("Volume"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VolumeSpecified { + get { + return this.volumeFieldSpecified; + } + set { + this.volumeFieldSpecified = value; + this.RaisePropertyChanged("VolumeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FeedingMode { + get { + return this.feedingModeField; + } + set { + this.feedingModeField = value; + this.RaisePropertyChanged("FeedingMode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeBillingDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private ExportSupplyResourceContractTypeBillingDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportSupplyResourceContractTypeBillingDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypeBillingDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypePaymentDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private ExportSupplyResourceContractTypePaymentDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportSupplyResourceContractTypePaymentDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypePaymentDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportSupplyResourceContractTypeProvidingInformationDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private ExportSupplyResourceContractTypeProvidingInformationDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportSupplyResourceContractTypeProvidingInformationDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExportSupplyResourceContractTypeProvidingInformationDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportRolloverStatusCAChResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] orgPPAGUIDField; + + private exportRolloverStatusCAChResultTypeStatus statusField; + + /// + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string[] orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportRolloverStatusCAChResultTypeStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportRolloverStatusCAChResultTypeStatus : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CACh", typeof(exportRolloverStatusCAChResultTypeStatusCACh), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportRolloverStatusCAChResultTypeStatusCACh : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType16[] itemsElementNameField; + + private exportRolloverStatusCAChResultTypeStatusCAChState stateField; + + private bool stateFieldSpecified; + + private exportRolloverStatusCAChResultTypeStatusCAChContractObject[] contractObjectField; + + private string versionNumberField; + + private bool isRolloverField; + + private string rolloverDescriptionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterStatus", typeof(CharterStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractStatus", typeof(ContractStatusType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PreviousCharterVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PreviousContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType16[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportRolloverStatusCAChResultTypeStatusCAChState State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StateSpecified { + get { + return this.stateFieldSpecified; + } + set { + this.stateFieldSpecified = value; + this.RaisePropertyChanged("StateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=3)] + public exportRolloverStatusCAChResultTypeStatusCAChContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=4)] + public string VersionNumber { + get { + return this.versionNumberField; + } + set { + this.versionNumberField = value; + this.RaisePropertyChanged("VersionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool IsRollover { + get { + return this.isRolloverField; + } + set { + this.isRolloverField = value; + this.RaisePropertyChanged("IsRollover"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string RolloverDescription { + get { + return this.rolloverDescriptionField; + } + set { + this.rolloverDescriptionField = value; + this.RaisePropertyChanged("RolloverDescription"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType16 { + + /// + CharterGUID, + + /// + CharterStatus, + + /// + CharterVersionGUID, + + /// + ContractGUID, + + /// + ContractStatus, + + /// + ContractVersionGUID, + + /// + PreviousCharterVersionGUID, + + /// + PreviousContractVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportRolloverStatusCAChResultTypeStatusCAChState { + + /// + Running, + + /// + NotRunning, + + /// + Expired, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportRolloverStatusCAChResultTypeStatusCAChContractObject : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private StatusMKDType managedObjectStatusField; + + private string contractObjectVersionGUIDField; + + private bool isConflictedField; + + private bool isConflictedFieldSpecified; + + private bool isBlockedField; + + private bool isBlockedFieldSpecified; + + private string previousContractObjectVersionGUIDField; + + public exportRolloverStatusCAChResultTypeStatusCAChContractObject() { + this.isConflictedField = true; + this.isBlockedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public StatusMKDType ManagedObjectStatus { + get { + return this.managedObjectStatusField; + } + set { + this.managedObjectStatusField = value; + this.RaisePropertyChanged("ManagedObjectStatus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IsConflicted { + get { + return this.isConflictedField; + } + set { + this.isConflictedField = value; + this.RaisePropertyChanged("IsConflicted"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsConflictedSpecified { + get { + return this.isConflictedFieldSpecified; + } + set { + this.isConflictedFieldSpecified = value; + this.RaisePropertyChanged("IsConflictedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IsBlocked { + get { + return this.isBlockedField; + } + set { + this.isBlockedField = value; + this.RaisePropertyChanged("IsBlocked"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsBlockedSpecified { + get { + return this.isBlockedFieldSpecified; + } + set { + this.isBlockedFieldSpecified = value; + this.RaisePropertyChanged("IsBlockedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string PreviousContractObjectVersionGUID { + get { + return this.previousContractObjectVersionGUIDField; + } + set { + this.previousContractObjectVersionGUIDField = value; + this.RaisePropertyChanged("PreviousContractObjectVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest getStateRequest; + + public getStateRequest1() { + } + + public getStateRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest getStateRequest) { + this.RequestHeader = RequestHeader; + this.getStateRequest = getStateRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult getStateResult; + + public getStateResponse() { + } + + public getStateResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult getStateResult) { + this.ResultHeader = ResultHeader; + this.getStateResult = getStateResult; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequest : BaseType { + + private importContractRequestContract[] contractField; + + private string versionField; + + public importContractRequest() { + this.versionField = "11.9.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Contract", Order=0)] + public importContractRequestContract[] Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulmentContract", typeof(importContractRequestContractAnnulmentContract), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("AnnulmentContractPaymentsInfo", typeof(importContractRequestContractAnnulmentContractPaymentsInfo), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ApprovalContract", typeof(importContractRequestContractApprovalContract), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("EditContract", typeof(importContractRequestContractEditContract), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("PlaceContractPaymentsInfo", typeof(importContractRequestContractPlaceContractPaymentsInfo), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("PlacingContract", typeof(importContractRequestContractPlacingContract), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("RollOverContract", typeof(importContractRequestContractRollOverContract), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("TerminateContract", typeof(importContractRequestContractTerminateContract), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractAnnulmentContract : AnnulmentType { + + private bool licenseRequestField; + + private bool licenseRequestFieldSpecified; + + private string contractVersionGUIDField; + + public importContractRequestContractAnnulmentContract() { + this.licenseRequestField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool LicenseRequest { + get { + return this.licenseRequestField; + } + set { + this.licenseRequestField = value; + this.RaisePropertyChanged("LicenseRequest"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LicenseRequestSpecified { + get { + return this.licenseRequestFieldSpecified; + } + set { + this.licenseRequestFieldSpecified = value; + this.RaisePropertyChanged("LicenseRequestSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractAnnulmentContractPaymentsInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractPaymentsInfoVersionGUIDField; + + private string reasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractPaymentsInfoVersionGUID { + get { + return this.contractPaymentsInfoVersionGUIDField; + } + set { + this.contractPaymentsInfoVersionGUIDField = value; + this.RaisePropertyChanged("ContractPaymentsInfoVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Reason { + get { + return this.reasonField; + } + set { + this.reasonField = value; + this.RaisePropertyChanged("Reason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractApprovalContract : ApprovalType { + + private string contractVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApprovalType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool approvalField; + + public ApprovalType() { + this.approvalField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool Approval { + get { + return this.approvalField; + } + set { + this.approvalField = value; + this.RaisePropertyChanged("Approval"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContract : ContractType { + + private bool licenseRequestField; + + private bool licenseRequestFieldSpecified; + + private importContractRequestContractEditContractContractObject[] contractObjectField; + + private string contractVersionGUIDField; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + public importContractRequestContractEditContract() { + this.licenseRequestField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool LicenseRequest { + get { + return this.licenseRequestField; + } + set { + this.licenseRequestField = value; + this.RaisePropertyChanged("LicenseRequest"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LicenseRequestSpecified { + get { + return this.licenseRequestFieldSpecified; + } + set { + this.licenseRequestFieldSpecified = value; + this.RaisePropertyChanged("LicenseRequestSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=1)] + public importContractRequestContractEditContractContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObject : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Add", typeof(importContractRequestContractEditContractContractObjectAdd), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Annulment", typeof(importContractRequestContractEditContractContractObjectAnnulment), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Edit", typeof(importContractRequestContractEditContractContractObjectEdit), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectAdd : ManageObjectType { + + private BaseServiceType baseMServiceField; + + private importContractRequestContractEditContractContractObjectAddHouseService[] houseServiceField; + + private importContractRequestContractEditContractContractObjectAddAddService[] addServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=1)] + public importContractRequestContractEditContractContractObjectAddHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=2)] + public importContractRequestContractEditContractContractObjectAddAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectAddHouseService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectAddAddService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectAnnulment : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractObjectVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectEdit : ManageObjectType { + + private string contractObjectVersionGUIDField; + + private BaseServiceType baseMServiceField; + + private importContractRequestContractEditContractContractObjectEditHouseService[] houseServiceField; + + private importContractRequestContractEditContractContractObjectEditAddService[] addServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public importContractRequestContractEditContractContractObjectEditHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public importContractRequestContractEditContractContractObjectEditAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectEditHouseService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractEditContractContractObjectEditAddService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractType : object, System.ComponentModel.INotifyPropertyChanged { + + private string docNumField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + private System.DateTime planDateComptetionField; + + private ContractTypeValidity validityField; + + private object itemField; + + private ItemChoiceType16 itemElementNameField; + + private ContractTypeProtocol protocolField; + + private nsiRef contractBaseField; + + private DateDetailsType dateDetailsField; + + private AttachmentType[] contractAttachmentField; + + private ContractTypeAgreementAttachment[] agreementAttachmentField; + + private AttachmentType[] signedOwnersField; + + private AttachmentType[] commissioningPermitAgreementField; + + private AttachmentType[] charterField; + + private AttachmentType[] localGovernmentDecisionField; + + private string registryDecisionIDField; + + private bool automaticRollOverOneYearField; + + private bool automaticRollOverOneYearFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string DocNum { + get { + return this.docNumField; + } + set { + this.docNumField = value; + this.RaisePropertyChanged("DocNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime PlanDateComptetion { + get { + return this.planDateComptetionField; + } + set { + this.planDateComptetionField = value; + this.RaisePropertyChanged("PlanDateComptetion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ContractTypeValidity Validity { + get { + return this.validityField; + } + set { + this.validityField = value; + this.RaisePropertyChanged("Validity"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("BuildingOwner", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("CompetentAuthority", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("Cooperative", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("MunicipalHousing", typeof(RegOrgType), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("Owners", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType16 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public ContractTypeProtocol Protocol { + get { + return this.protocolField; + } + set { + this.protocolField = value; + this.RaisePropertyChanged("Protocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public nsiRef ContractBase { + get { + return this.contractBaseField; + } + set { + this.contractBaseField = value; + this.RaisePropertyChanged("ContractBase"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public DateDetailsType DateDetails { + get { + return this.dateDetailsField; + } + set { + this.dateDetailsField = value; + this.RaisePropertyChanged("DateDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=10)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AgreementAttachment", Order=11)] + public ContractTypeAgreementAttachment[] AgreementAttachment { + get { + return this.agreementAttachmentField; + } + set { + this.agreementAttachmentField = value; + this.RaisePropertyChanged("AgreementAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SignedOwners", Order=12)] + public AttachmentType[] SignedOwners { + get { + return this.signedOwnersField; + } + set { + this.signedOwnersField = value; + this.RaisePropertyChanged("SignedOwners"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CommissioningPermitAgreement", Order=13)] + public AttachmentType[] CommissioningPermitAgreement { + get { + return this.commissioningPermitAgreementField; + } + set { + this.commissioningPermitAgreementField = value; + this.RaisePropertyChanged("CommissioningPermitAgreement"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Charter", Order=14)] + public AttachmentType[] Charter { + get { + return this.charterField; + } + set { + this.charterField = value; + this.RaisePropertyChanged("Charter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LocalGovernmentDecision", Order=15)] + public AttachmentType[] LocalGovernmentDecision { + get { + return this.localGovernmentDecisionField; + } + set { + this.localGovernmentDecisionField = value; + this.RaisePropertyChanged("LocalGovernmentDecision"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public string RegistryDecisionID { + get { + return this.registryDecisionIDField; + } + set { + this.registryDecisionIDField = value; + this.RaisePropertyChanged("RegistryDecisionID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool AutomaticRollOverOneYear { + get { + return this.automaticRollOverOneYearField; + } + set { + this.automaticRollOverOneYearField = value; + this.RaisePropertyChanged("AutomaticRollOverOneYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AutomaticRollOverOneYearSpecified { + get { + return this.automaticRollOverOneYearFieldSpecified; + } + set { + this.automaticRollOverOneYearFieldSpecified = value; + this.RaisePropertyChanged("AutomaticRollOverOneYearSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractTypeValidity : object, System.ComponentModel.INotifyPropertyChanged { + + private string monthField; + + private string yearField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string Month { + get { + return this.monthField; + } + set { + this.monthField = value; + this.RaisePropertyChanged("Month"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string Year { + get { + return this.yearField; + } + set { + this.yearField = value; + this.RaisePropertyChanged("Year"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType16 { + + /// + BuildingOwner, + + /// + CompetentAuthority, + + /// + Cooperative, + + /// + MunicipalHousing, + + /// + Owners, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractTypeProtocol : object, System.ComponentModel.INotifyPropertyChanged { + + private ContractTypeProtocolProtocolAdd protocolAddField; + + private string[] votingProtocolGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ContractTypeProtocolProtocolAdd ProtocolAdd { + get { + return this.protocolAddField; + } + set { + this.protocolAddField = value; + this.RaisePropertyChanged("ProtocolAdd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", Order=1)] + public string[] VotingProtocolGUID { + get { + return this.votingProtocolGUIDField; + } + set { + this.votingProtocolGUIDField = value; + this.RaisePropertyChanged("VotingProtocolGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractTypeProtocolProtocolAdd : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType17[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolBuildingOwner", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingBoard", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolOK", typeof(AttachmentType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PurchaseNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType17[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType17 { + + /// + ProtocolBuildingOwner, + + /// + ProtocolMeetingBoard, + + /// + ProtocolMeetingOwners, + + /// + ProtocolOK, + + /// + PurchaseNumber, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsType : object, System.ComponentModel.INotifyPropertyChanged { + + private DateDetailsTypePeriodMetering periodMeteringField; + + private DateDetailsTypePaymentDocumentInterval paymentDocumentIntervalField; + + private DateDetailsTypePaymentInterval paymentIntervalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DateDetailsTypePeriodMetering PeriodMetering { + get { + return this.periodMeteringField; + } + set { + this.periodMeteringField = value; + this.RaisePropertyChanged("PeriodMetering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DateDetailsTypePaymentDocumentInterval PaymentDocumentInterval { + get { + return this.paymentDocumentIntervalField; + } + set { + this.paymentDocumentIntervalField = value; + this.RaisePropertyChanged("PaymentDocumentInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public DateDetailsTypePaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsTypePeriodMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private DeviceMeteringsDaySelectionType startDateField; + + private DeviceMeteringsDaySelectionType endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DeviceMeteringsDaySelectionType StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DeviceMeteringsDaySelectionType EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DeviceMeteringsDaySelectionType : DaySelectionType { + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(DeviceMeteringsDaySelectionType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DaySelectionType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool isNextMonthField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Date", typeof(sbyte), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsNextMonth { + get { + return this.isNextMonthField; + } + set { + this.isNextMonthField = value; + this.RaisePropertyChanged("IsNextMonth"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsTypePaymentDocumentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType5 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType5 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType5 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DateDetailsTypePaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType6 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType6 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType6 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractTypeAgreementAttachment : AttachmentType { + + private ImprintAgreementType imprintAgreementField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ImprintAgreementType ImprintAgreement { + get { + return this.imprintAgreementField; + } + set { + this.imprintAgreementField = value; + this.RaisePropertyChanged("ImprintAgreement"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ImprintAgreementType : object, System.ComponentModel.INotifyPropertyChanged { + + private string agreementNumberField; + + private System.DateTime agreementDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AgreementNumber { + get { + return this.agreementNumberField; + } + set { + this.agreementNumberField = value; + this.RaisePropertyChanged("AgreementNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AgreementDate { + get { + return this.agreementDateField; + } + set { + this.agreementDateField = value; + this.RaisePropertyChanged("AgreementDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractPlaceContractPaymentsInfo : ContractPaymentsInfoType { + + private string contractVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractPlacingContract : ContractType { + + private bool licenseRequestField; + + private bool licenseRequestFieldSpecified; + + private importContractRequestContractPlacingContractContractObject[] contractObjectField; + + public importContractRequestContractPlacingContract() { + this.licenseRequestField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool LicenseRequest { + get { + return this.licenseRequestField; + } + set { + this.licenseRequestField = value; + this.RaisePropertyChanged("LicenseRequest"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LicenseRequestSpecified { + get { + return this.licenseRequestFieldSpecified; + } + set { + this.licenseRequestFieldSpecified = value; + this.RaisePropertyChanged("LicenseRequestSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=1)] + public importContractRequestContractPlacingContractContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractPlacingContractContractObject : ManageObjectType { + + private string transportGUIDField; + + private BaseServiceType baseMServiceField; + + private importContractRequestContractPlacingContractContractObjectHouseService[] houseServiceField; + + private importContractRequestContractPlacingContractContractObjectAddService[] addServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public importContractRequestContractPlacingContractContractObjectHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public importContractRequestContractPlacingContractContractObjectAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractPlacingContractContractObjectHouseService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractPlacingContractContractObjectAddService : ContractServiceType { + + private BaseServiceType baseServiceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceType BaseService { + get { + return this.baseServiceField; + } + set { + this.baseServiceField = value; + this.RaisePropertyChanged("BaseService"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractRollOverContract : RollOverType { + + private bool licenseRequestField; + + private bool licenseRequestFieldSpecified; + + private string contractVersionGUIDField; + + private System.DateTime rollToDateField; + + private bool rollToDateFieldSpecified; + + public importContractRequestContractRollOverContract() { + this.licenseRequestField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool LicenseRequest { + get { + return this.licenseRequestField; + } + set { + this.licenseRequestField = value; + this.RaisePropertyChanged("LicenseRequest"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LicenseRequestSpecified { + get { + return this.licenseRequestFieldSpecified; + } + set { + this.licenseRequestFieldSpecified = value; + this.RaisePropertyChanged("LicenseRequestSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime RollToDate { + get { + return this.rollToDateField; + } + set { + this.rollToDateField = value; + this.RaisePropertyChanged("RollToDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RollToDateSpecified { + get { + return this.rollToDateFieldSpecified; + } + set { + this.rollToDateFieldSpecified = value; + this.RaisePropertyChanged("RollToDateSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class RollOverType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool rollOverField; + + public RollOverType() { + this.rollOverField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool RollOver { + get { + return this.rollOverField; + } + set { + this.rollOverField = value; + this.RaisePropertyChanged("RollOver"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importContractRequestContractTerminateContract : TerminateType { + + private bool licenseRequestField; + + private bool licenseRequestFieldSpecified; + + private nsiRef reasonRefField; + + private AttachmentType[] terminateAttachmentField; + + private string contractVersionGUIDField; + + public importContractRequestContractTerminateContract() { + this.licenseRequestField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool LicenseRequest { + get { + return this.licenseRequestField; + } + set { + this.licenseRequestField = value; + this.RaisePropertyChanged("LicenseRequest"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LicenseRequestSpecified { + get { + return this.licenseRequestFieldSpecified; + } + set { + this.licenseRequestFieldSpecified = value; + this.RaisePropertyChanged("LicenseRequestSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TerminateAttachment", Order=2)] + public AttachmentType[] TerminateAttachment { + get { + return this.terminateAttachmentField; + } + set { + this.terminateAttachmentField = value; + this.RaisePropertyChanged("TerminateAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importContractDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractRequest importContractRequest; + + public importContractDataRequest() { + } + + public importContractDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractRequest importContractRequest) { + this.RequestHeader = RequestHeader; + this.importContractRequest = importContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importContractDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importContractDataResponse() { + } + + public importContractDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequest : BaseType { + + private string transportGUIDField; + + private object itemField; + + private string versionField; + + public importCharterRequest() { + this.versionField = "11.9.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulmentCharter", typeof(importCharterRequestAnnulmentCharter), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("AnnulmentCharterPaymentsInfo", typeof(importCharterRequestAnnulmentCharterPaymentsInfo), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("EditCharter", typeof(importCharterRequestEditCharter), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("PlaceCharterPaymentsInfo", typeof(importCharterRequestPlaceCharterPaymentsInfo), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("PlacingCharter", typeof(importCharterRequestPlacingCharter), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("RollOverCharter", typeof(importCharterRequestRollOverCharter), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("TerminateCharter", typeof(importCharterRequestTerminateCharter), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestAnnulmentCharter : AnnulmentType { + + private string charterVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestAnnulmentCharterPaymentsInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private string charterPaymentsInfoVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterPaymentsInfoVersionGUID { + get { + return this.charterPaymentsInfoVersionGUIDField; + } + set { + this.charterPaymentsInfoVersionGUIDField = value; + this.RaisePropertyChanged("CharterPaymentsInfoVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharter : CharterType { + + private importCharterRequestEditCharterContractObject[] contractObjectField; + + private string charterVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=0)] + public importCharterRequestEditCharterContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObject : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Add", typeof(importCharterRequestEditCharterContractObjectAdd), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Annulment", typeof(importCharterRequestEditCharterContractObjectAnnulment), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Edit", typeof(importCharterRequestEditCharterContractObjectEdit), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectAdd : ManageObjectType { + + private BaseServiceCharterType baseMServiceField; + + private importCharterRequestEditCharterContractObjectAddHouseService[] houseServiceField; + + private importCharterRequestEditCharterContractObjectAddAddService[] addServiceField; + + private bool isManagedByContractField; + + private bool isManagedByContractFieldSpecified; + + public importCharterRequestEditCharterContractObjectAdd() { + this.isManagedByContractField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=1)] + public importCharterRequestEditCharterContractObjectAddHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=2)] + public importCharterRequestEditCharterContractObjectAddAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IsManagedByContract { + get { + return this.isManagedByContractField; + } + set { + this.isManagedByContractField = value; + this.RaisePropertyChanged("IsManagedByContract"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsManagedByContractSpecified { + get { + return this.isManagedByContractFieldSpecified; + } + set { + this.isManagedByContractFieldSpecified = value; + this.RaisePropertyChanged("IsManagedByContractSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class BaseServiceCharterType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentCharter", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", typeof(AttachmentType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectAddHouseService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectAddAddService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectAnnulment : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractObjectVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectEdit : ManageObjectType { + + private string contractObjectVersionGUIDField; + + private BaseServiceCharterType baseMServiceField; + + private importCharterRequestEditCharterContractObjectEditHouseService[] houseServiceField; + + private importCharterRequestEditCharterContractObjectEditAddService[] addServiceField; + + private bool isManagedByContractField; + + private bool isManagedByContractFieldSpecified; + + public importCharterRequestEditCharterContractObjectEdit() { + this.isManagedByContractField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractObjectVersionGUID { + get { + return this.contractObjectVersionGUIDField; + } + set { + this.contractObjectVersionGUIDField = value; + this.RaisePropertyChanged("ContractObjectVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceCharterType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public importCharterRequestEditCharterContractObjectEditHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public importCharterRequestEditCharterContractObjectEditAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IsManagedByContract { + get { + return this.isManagedByContractField; + } + set { + this.isManagedByContractField = value; + this.RaisePropertyChanged("IsManagedByContract"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsManagedByContractSpecified { + get { + return this.isManagedByContractFieldSpecified; + } + set { + this.isManagedByContractFieldSpecified = value; + this.RaisePropertyChanged("IsManagedByContractSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectEditHouseService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestEditCharterContractObjectEditAddService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private CharterDateDetailsType dateDetailsField; + + private CharterTypeMeetingProtocol meetingProtocolField; + + private bool noCharterApproveProtocolField; + + private bool noCharterApproveProtocolFieldSpecified; + + private AttachmentType[] attachmentCharterField; + + private bool automaticRollOverOneYearField; + + private bool automaticRollOverOneYearFieldSpecified; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + public CharterType() { + this.noCharterApproveProtocolField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public CharterDateDetailsType DateDetails { + get { + return this.dateDetailsField; + } + set { + this.dateDetailsField = value; + this.RaisePropertyChanged("DateDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public CharterTypeMeetingProtocol MeetingProtocol { + get { + return this.meetingProtocolField; + } + set { + this.meetingProtocolField = value; + this.RaisePropertyChanged("MeetingProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool NoCharterApproveProtocol { + get { + return this.noCharterApproveProtocolField; + } + set { + this.noCharterApproveProtocolField = value; + this.RaisePropertyChanged("NoCharterApproveProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoCharterApproveProtocolSpecified { + get { + return this.noCharterApproveProtocolFieldSpecified; + } + set { + this.noCharterApproveProtocolFieldSpecified = value; + this.RaisePropertyChanged("NoCharterApproveProtocolSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AttachmentCharter", Order=4)] + public AttachmentType[] AttachmentCharter { + get { + return this.attachmentCharterField; + } + set { + this.attachmentCharterField = value; + this.RaisePropertyChanged("AttachmentCharter"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool AutomaticRollOverOneYear { + get { + return this.automaticRollOverOneYearField; + } + set { + this.automaticRollOverOneYearField = value; + this.RaisePropertyChanged("AutomaticRollOverOneYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AutomaticRollOverOneYearSpecified { + get { + return this.automaticRollOverOneYearFieldSpecified; + } + set { + this.automaticRollOverOneYearFieldSpecified = value; + this.RaisePropertyChanged("AutomaticRollOverOneYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsType : object, System.ComponentModel.INotifyPropertyChanged { + + private CharterDateDetailsTypePeriodMetering periodMeteringField; + + private CharterDateDetailsTypePaymentDocumentInterval paymentDocumentIntervalField; + + private CharterDateDetailsTypePaymentInterval paymentIntervalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CharterDateDetailsTypePeriodMetering PeriodMetering { + get { + return this.periodMeteringField; + } + set { + this.periodMeteringField = value; + this.RaisePropertyChanged("PeriodMetering"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public CharterDateDetailsTypePaymentDocumentInterval PaymentDocumentInterval { + get { + return this.paymentDocumentIntervalField; + } + set { + this.paymentDocumentIntervalField = value; + this.RaisePropertyChanged("PaymentDocumentInterval"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public CharterDateDetailsTypePaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsTypePeriodMetering : object, System.ComponentModel.INotifyPropertyChanged { + + private DeviceMeteringsDaySelectionType startDateField; + + private DeviceMeteringsDaySelectionType endDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public DeviceMeteringsDaySelectionType StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DeviceMeteringsDaySelectionType EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsTypePaymentDocumentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType7 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType7 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType7 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterDateDetailsTypePaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool item1Field; + + private Item1ChoiceType8 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LastDay", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(sbyte), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CurrentMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("NextMounth", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType8 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType8 { + + /// + CurrentMounth, + + /// + NextMounth, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class CharterTypeMeetingProtocol : object, System.ComponentModel.INotifyPropertyChanged { + + private AttachmentType[] protocolMeetingOwnersField; + + private string[] votingProtocolGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", Order=0)] + public AttachmentType[] ProtocolMeetingOwners { + get { + return this.protocolMeetingOwnersField; + } + set { + this.protocolMeetingOwnersField = value; + this.RaisePropertyChanged("ProtocolMeetingOwners"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", Order=1)] + public string[] VotingProtocolGUID { + get { + return this.votingProtocolGUIDField; + } + set { + this.votingProtocolGUIDField = value; + this.RaisePropertyChanged("VotingProtocolGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestPlaceCharterPaymentsInfo : CharterPaymentsInfoType { + + private string charterVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestPlacingCharter : CharterType { + + private importCharterRequestPlacingCharterContractObject[] contractObjectField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractObject", Order=0)] + public importCharterRequestPlacingCharterContractObject[] ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestPlacingCharterContractObject : ManageObjectType { + + private string transportGUIDField; + + private BaseServiceCharterType baseMServiceField; + + private importCharterRequestPlacingCharterContractObjectHouseService[] houseServiceField; + + private importCharterRequestPlacingCharterContractObjectAddService[] addServiceField; + + private bool isManagedByContractField; + + private bool isManagedByContractFieldSpecified; + + public importCharterRequestPlacingCharterContractObject() { + this.isManagedByContractField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public BaseServiceCharterType BaseMService { + get { + return this.baseMServiceField; + } + set { + this.baseMServiceField = value; + this.RaisePropertyChanged("BaseMService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("HouseService", Order=2)] + public importCharterRequestPlacingCharterContractObjectHouseService[] HouseService { + get { + return this.houseServiceField; + } + set { + this.houseServiceField = value; + this.RaisePropertyChanged("HouseService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddService", Order=3)] + public importCharterRequestPlacingCharterContractObjectAddService[] AddService { + get { + return this.addServiceField; + } + set { + this.addServiceField = value; + this.RaisePropertyChanged("AddService"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IsManagedByContract { + get { + return this.isManagedByContractField; + } + set { + this.isManagedByContractField = value; + this.RaisePropertyChanged("IsManagedByContract"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsManagedByContractSpecified { + get { + return this.isManagedByContractFieldSpecified; + } + set { + this.isManagedByContractFieldSpecified = value; + this.RaisePropertyChanged("IsManagedByContractSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestPlacingCharterContractObjectHouseService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestPlacingCharterContractObjectAddService : ContractServiceType { + + private BaseServiceCharterType baseServiceCharterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public BaseServiceCharterType BaseServiceCharter { + get { + return this.baseServiceCharterField; + } + set { + this.baseServiceCharterField = value; + this.RaisePropertyChanged("BaseServiceCharter"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestRollOverCharter : RollOverType { + + private string charterVersionGUIDField; + + private System.DateTime rollToDateField; + + private bool rollToDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime RollToDate { + get { + return this.rollToDateField; + } + set { + this.rollToDateField = value; + this.RaisePropertyChanged("RollToDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RollToDateSpecified { + get { + return this.rollToDateFieldSpecified; + } + set { + this.rollToDateFieldSpecified = value; + this.RaisePropertyChanged("RollToDateSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importCharterRequestTerminateCharter : TerminateType { + + private string reasonField; + + private string charterVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Reason { + get { + return this.reasonField; + } + set { + this.reasonField = value; + this.RaisePropertyChanged("Reason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string CharterVersionGUID { + get { + return this.charterVersionGUIDField; + } + set { + this.charterVersionGUIDField = value; + this.RaisePropertyChanged("CharterVersionGUID"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importCharterDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterRequest importCharterRequest; + + public importCharterDataRequest() { + } + + public importCharterDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterRequest importCharterRequest) { + this.RequestHeader = RequestHeader; + this.importCharterRequest = importCharterRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importCharterDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importCharterDataResponse() { + } + + public importCharterDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusCAChRequest : BaseType { + + private exportStatusCAChRequestCriteria[] criteriaField; + + private string versionField; + + public exportStatusCAChRequest() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Criteria", Order=0)] + public exportStatusCAChRequestCriteria[] Criteria { + get { + return this.criteriaField; + } + set { + this.criteriaField = value; + this.RaisePropertyChanged("Criteria"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusCAChRequestCriteria : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType17 itemElementNameField; + + private exportStatusCAChRequestCriteriaControlObjects controlObjectsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType17 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public exportStatusCAChRequestCriteriaControlObjects ControlObjects { + get { + return this.controlObjectsField; + } + set { + this.controlObjectsField = value; + this.RaisePropertyChanged("ControlObjects"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType17 { + + /// + CharterGUID, + + /// + CharterVersionGUID, + + /// + ContractGUID, + + /// + ContractVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusCAChRequestCriteriaControlObjects : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isConflictedField; + + private bool isConflictedFieldSpecified; + + private bool isBlockedField; + + private bool isBlockedFieldSpecified; + + public exportStatusCAChRequestCriteriaControlObjects() { + this.isConflictedField = true; + this.isBlockedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsConflicted { + get { + return this.isConflictedField; + } + set { + this.isConflictedField = value; + this.RaisePropertyChanged("IsConflicted"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsConflictedSpecified { + get { + return this.isConflictedFieldSpecified; + } + set { + this.isConflictedFieldSpecified = value; + this.RaisePropertyChanged("IsConflictedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsBlocked { + get { + return this.isBlockedField; + } + set { + this.isBlockedField = value; + this.RaisePropertyChanged("IsBlocked"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsBlockedSpecified { + get { + return this.isBlockedFieldSpecified; + } + set { + this.isBlockedFieldSpecified = value; + this.RaisePropertyChanged("IsBlockedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportStatusCAChDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChRequest exportStatusCAChRequest; + + public exportStatusCAChDataRequest() { + } + + public exportStatusCAChDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChRequest exportStatusCAChRequest) { + this.RequestHeader = RequestHeader; + this.exportStatusCAChRequest = exportStatusCAChRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportStatusCAChDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportStatusCAChDataResponse() { + } + + public exportStatusCAChDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportHouseRequest : BaseType { + + private string fIASHouseGuidField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportHouseDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseRequest exportHouseRequest; + + public exportHouseDataRequest() { + } + + public exportHouseDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseRequest exportHouseRequest) { + this.RequestHeader = RequestHeader; + this.exportHouseRequest = exportHouseRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportHouseDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportHouseDataResponse() { + } + + public exportHouseDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importAccountRequest : BaseType { + + private importAccountRequestAccount[] accountField; + + private string versionField; + + public importAccountRequest() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Account", Order=0)] + public importAccountRequestAccount[] Account { + get { + return this.accountField; + } + set { + this.accountField = value; + this.RaisePropertyChanged("Account"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importAccountRequestAccount : AccountType { + + private string transportGUIDField; + + private string accountNumberField; + + private string accountGUIDField; + + private AccountReasonsImportType accountReasonsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=1)] + public string AccountNumber { + get { + return this.accountNumberField; + } + set { + this.accountNumberField = value; + this.RaisePropertyChanged("AccountNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string AccountGUID { + get { + return this.accountGUIDField; + } + set { + this.accountGUIDField = value; + this.RaisePropertyChanged("AccountGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public AccountReasonsImportType AccountReasons { + get { + return this.accountReasonsField; + } + set { + this.accountReasonsField = value; + this.RaisePropertyChanged("AccountReasons"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType18 itemElementNameField; + + private System.DateTime creationDateField; + + private bool creationDateFieldSpecified; + + private string livingPersonsNumberField; + + private decimal totalSquareField; + + private bool totalSquareFieldSpecified; + + private decimal residentialSquareField; + + private bool residentialSquareFieldSpecified; + + private decimal heatedAreaField; + + private bool heatedAreaFieldSpecified; + + private ClosedAccountAttributesType closedField; + + private AccountTypeAccommodation[] accommodationField; + + private AccountTypePayerInfo payerInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute("isCRAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isOGVorOMSAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isRCAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isRSOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isTKOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("isUOAccount", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType18 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public System.DateTime CreationDate { + get { + return this.creationDateField; + } + set { + this.creationDateField = value; + this.RaisePropertyChanged("CreationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationDateSpecified { + get { + return this.creationDateFieldSpecified; + } + set { + this.creationDateFieldSpecified = value; + this.RaisePropertyChanged("CreationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=3)] + public string LivingPersonsNumber { + get { + return this.livingPersonsNumberField; + } + set { + this.livingPersonsNumberField = value; + this.RaisePropertyChanged("LivingPersonsNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TotalSquareSpecified { + get { + return this.totalSquareFieldSpecified; + } + set { + this.totalSquareFieldSpecified = value; + this.RaisePropertyChanged("TotalSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public decimal ResidentialSquare { + get { + return this.residentialSquareField; + } + set { + this.residentialSquareField = value; + this.RaisePropertyChanged("ResidentialSquare"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ResidentialSquareSpecified { + get { + return this.residentialSquareFieldSpecified; + } + set { + this.residentialSquareFieldSpecified = value; + this.RaisePropertyChanged("ResidentialSquareSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public decimal HeatedArea { + get { + return this.heatedAreaField; + } + set { + this.heatedAreaField = value; + this.RaisePropertyChanged("HeatedArea"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HeatedAreaSpecified { + get { + return this.heatedAreaFieldSpecified; + } + set { + this.heatedAreaFieldSpecified = value; + this.RaisePropertyChanged("HeatedAreaSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public ClosedAccountAttributesType Closed { + get { + return this.closedField; + } + set { + this.closedField = value; + this.RaisePropertyChanged("Closed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Accommodation", Order=8)] + public AccountTypeAccommodation[] Accommodation { + get { + return this.accommodationField; + } + set { + this.accommodationField = value; + this.RaisePropertyChanged("Accommodation"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public AccountTypePayerInfo PayerInfo { + get { + return this.payerInfoField; + } + set { + this.payerInfoField = value; + this.RaisePropertyChanged("PayerInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType18 { + + /// + isCRAccount, + + /// + isOGVorOMSAccount, + + /// + isRCAccount, + + /// + isRSOAccount, + + /// + isTKOAccount, + + /// + isUOAccount, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountTypeAccommodation : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType19 itemElementNameField; + + private decimal sharePercentField; + + private bool sharePercentFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PremisesGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType19 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal SharePercent { + get { + return this.sharePercentField; + } + set { + this.sharePercentField = value; + this.RaisePropertyChanged("SharePercent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SharePercentSpecified { + get { + return this.sharePercentFieldSpecified; + } + set { + this.sharePercentFieldSpecified = value; + this.RaisePropertyChanged("SharePercentSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType19 { + + /// + FIASHouseGuid, + + /// + LivingRoomGUID, + + /// + PremisesGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AccountTypePayerInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isRenterField; + + private bool isRenterFieldSpecified; + + private bool isAccountsDividedField; + + private bool isAccountsDividedFieldSpecified; + + private object itemField; + + public AccountTypePayerInfo() { + this.isRenterField = true; + this.isAccountsDividedField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsRenter { + get { + return this.isRenterField; + } + set { + this.isRenterField = value; + this.RaisePropertyChanged("IsRenter"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRenterSpecified { + get { + return this.isRenterFieldSpecified; + } + set { + this.isRenterFieldSpecified = value; + this.RaisePropertyChanged("IsRenterSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool isAccountsDivided { + get { + return this.isAccountsDividedField; + } + set { + this.isAccountsDividedField = value; + this.RaisePropertyChanged("isAccountsDivided"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool isAccountsDividedSpecified { + get { + return this.isAccountsDividedFieldSpecified; + } + set { + this.isAccountsDividedFieldSpecified = value; + this.RaisePropertyChanged("isAccountsDividedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(AccountIndType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Org", typeof(RegOrgVersionType), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importAccountDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountRequest importAccountRequest; + + public importAccountDataRequest() { + } + + public importAccountDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountRequest importAccountRequest) { + this.RequestHeader = RequestHeader; + this.importAccountRequest = importAccountRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importAccountDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importAccountDataResponse() { + } + + public importAccountDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType18[] itemsElementNameField; + + private string versionField; + + public exportAccountRequest() { + this.versionField = "10.0.1.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ServiceID", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UnifiedAccountNumber", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType18[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType18 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/account-base/:ServiceID")] + ServiceID, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/account-base/:UnifiedAccountNumber")] + UnifiedAccountNumber, + + /// + AccountGUID, + + /// + FIASHouseGuid, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportAccountDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountRequest exportAccountRequest; + + public exportAccountDataRequest() { + } + + public exportAccountDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountRequest exportAccountRequest) { + this.RequestHeader = RequestHeader; + this.exportAccountRequest = exportAccountRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportAccountDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportAccountDataResponse() { + } + + public exportAccountDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequest : BaseType { + + private object[] itemsField; + + private string versionField; + + public importPublicPropertyContractRequest() { + this.versionField = "11.2.0.10"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddAgreementPayment", typeof(importPublicPropertyContractRequestAddAgreementPayment), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("AnnulAgreementPayment", typeof(importPublicPropertyContractRequestAnnulAgreementPayment), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Contract", typeof(importPublicPropertyContractRequestContract), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DelAgreementPayment", typeof(importPublicPropertyContractRequestDelAgreementPayment), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestAddAgreementPayment : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string itemField; + + private ItemChoiceType20 itemElementNameField; + + private importPublicPropertyContractRequestAddAgreementPaymentDatePeriod datePeriodField; + + private decimal billField; + + private decimal debtField; + + private decimal paidField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AgreementPaymentVersionGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType20 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public importPublicPropertyContractRequestAddAgreementPaymentDatePeriod DatePeriod { + get { + return this.datePeriodField; + } + set { + this.datePeriodField = value; + this.RaisePropertyChanged("DatePeriod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public decimal Bill { + get { + return this.billField; + } + set { + this.billField = value; + this.RaisePropertyChanged("Bill"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public decimal Debt { + get { + return this.debtField; + } + set { + this.debtField = value; + this.RaisePropertyChanged("Debt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public decimal Paid { + get { + return this.paidField; + } + set { + this.paidField = value; + this.RaisePropertyChanged("Paid"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType20 { + + /// + AgreementPaymentVersionGUID, + + /// + ContractVersionGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestAddAgreementPaymentDatePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateFromField; + + private System.DateTime dateToField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateFrom { + get { + return this.dateFromField; + } + set { + this.dateFromField = value; + this.RaisePropertyChanged("DateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateTo { + get { + return this.dateToField; + } + set { + this.dateToField = value; + this.RaisePropertyChanged("DateTo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestAnnulAgreementPayment : AnnulmentType { + + private string transportGUIDField; + + private string agreementPaymentVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string AgreementPaymentVersionGUID { + get { + return this.agreementPaymentVersionGUIDField; + } + set { + this.agreementPaymentVersionGUIDField = value; + this.RaisePropertyChanged("AgreementPaymentVersionGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string contractVersionGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ContractVersionGUID { + get { + return this.contractVersionGUIDField; + } + set { + this.contractVersionGUIDField = value; + this.RaisePropertyChanged("ContractVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulmentContract", typeof(AnnulmentType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("PublicPropertyContract", typeof(importPublicPropertyContractRequestContractPublicPropertyContract), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestContractPublicPropertyContract : PublicPropertyContractType { + + private importPublicPropertyContractRequestContractPublicPropertyContractPaymentInterval paymentIntervalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public importPublicPropertyContractRequestContractPublicPropertyContractPaymentInterval PaymentInterval { + get { + return this.paymentIntervalField; + } + set { + this.paymentIntervalField = value; + this.RaisePropertyChanged("PaymentInterval"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestContractPublicPropertyContractPaymentInterval : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType19[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("EndDate", typeof(DaySelectionType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Other", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(DaySelectionType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType19[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType19 { + + /// + EndDate, + + /// + Other, + + /// + StartDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string fIASHouseGuidField; + + private string contractNumberField; + + private System.DateTime dateField; + + private System.DateTime startDateField; + + private System.DateTime endDateField; + + private string contractObjectField; + + private string commentsField; + + private decimal paymentField; + + private bool paymentFieldSpecified; + + private string moneySpentDirectionField; + + private AttachmentType[] contractAttachmentField; + + private PublicPropertyContractTypeRentAgrConfirmationDocument[] rentAgrConfirmationDocumentField; + + private bool isGratuitousBasisField; + + private bool isGratuitousBasisFieldSpecified; + + public PublicPropertyContractType() { + this.isGratuitousBasisField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Entrepreneur", typeof(IndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(RegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string ContractObject { + get { + return this.contractObjectField; + } + set { + this.contractObjectField = value; + this.RaisePropertyChanged("ContractObject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string Comments { + get { + return this.commentsField; + } + set { + this.commentsField = value; + this.RaisePropertyChanged("Comments"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public decimal Payment { + get { + return this.paymentField; + } + set { + this.paymentField = value; + this.RaisePropertyChanged("Payment"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PaymentSpecified { + get { + return this.paymentFieldSpecified; + } + set { + this.paymentFieldSpecified = value; + this.RaisePropertyChanged("PaymentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string MoneySpentDirection { + get { + return this.moneySpentDirectionField; + } + set { + this.moneySpentDirectionField = value; + this.RaisePropertyChanged("MoneySpentDirection"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=10)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RentAgrConfirmationDocument", Order=11)] + public PublicPropertyContractTypeRentAgrConfirmationDocument[] RentAgrConfirmationDocument { + get { + return this.rentAgrConfirmationDocumentField; + } + set { + this.rentAgrConfirmationDocumentField = value; + this.RaisePropertyChanged("RentAgrConfirmationDocument"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool IsGratuitousBasis { + get { + return this.isGratuitousBasisField; + } + set { + this.isGratuitousBasisField = value; + this.RaisePropertyChanged("IsGratuitousBasis"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsGratuitousBasisSpecified { + get { + return this.isGratuitousBasisFieldSpecified; + } + set { + this.isGratuitousBasisFieldSpecified = value; + this.RaisePropertyChanged("IsGratuitousBasisSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractTypeRentAgrConfirmationDocument : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolMeetingOwners", typeof(PublicPropertyContractTypeRentAgrConfirmationDocumentProtocolMeetingOwners), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PublicPropertyContractTypeRentAgrConfirmationDocumentProtocolMeetingOwners : object, System.ComponentModel.INotifyPropertyChanged { + + private string protocolNumField; + + private System.DateTime protocolDateField; + + private AttachmentType[] trustDocAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ProtocolNum { + get { + return this.protocolNumField; + } + set { + this.protocolNumField = value; + this.RaisePropertyChanged("ProtocolNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime ProtocolDate { + get { + return this.protocolDateField; + } + set { + this.protocolDateField = value; + this.RaisePropertyChanged("ProtocolDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TrustDocAttachment", Order=2)] + public AttachmentType[] TrustDocAttachment { + get { + return this.trustDocAttachmentField; + } + set { + this.trustDocAttachmentField = value; + this.RaisePropertyChanged("TrustDocAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importPublicPropertyContractRequestDelAgreementPayment : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string agreementPaymentVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string AgreementPaymentVersionGUID { + get { + return this.agreementPaymentVersionGUIDField; + } + set { + this.agreementPaymentVersionGUIDField = value; + this.RaisePropertyChanged("AgreementPaymentVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importPublicPropertyContractRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest importPublicPropertyContractRequest; + + public importPublicPropertyContractRequest1() { + } + + public importPublicPropertyContractRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest importPublicPropertyContractRequest) { + this.RequestHeader = RequestHeader; + this.importPublicPropertyContractRequest = importPublicPropertyContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importPublicPropertyContractResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importPublicPropertyContractResponse() { + } + + public importPublicPropertyContractResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportStatusPublicPropertyContractRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType20[] itemsElementNameField; + + private string versionField; + + public exportStatusPublicPropertyContractRequest() { + this.versionField = "10.0.2.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("EndDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType20[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType20 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + ContractVersionGUID, + + /// + EndDate, + + /// + FIASHouseGuid, + + /// + StartDate, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportStatusPublicPropertyContractRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest exportStatusPublicPropertyContractRequest; + + public exportStatusPublicPropertyContractRequest1() { + } + + public exportStatusPublicPropertyContractRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest exportStatusPublicPropertyContractRequest) { + this.RequestHeader = RequestHeader; + this.exportStatusPublicPropertyContractRequest = exportStatusPublicPropertyContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportStatusPublicPropertyContractResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportStatusPublicPropertyContractResponse() { + } + + public exportStatusPublicPropertyContractResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequest : BaseType { + + private importNotificationRequestNotification[] notificationField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("notification", Order=0)] + public importNotificationRequestNotification[] notification { + get { + return this.notificationField; + } + set { + this.notificationField = value; + this.RaisePropertyChanged("notification"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotification : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string notificationGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NotificationGUID { + get { + return this.notificationGUIDField; + } + set { + this.notificationGUIDField = value; + this.RaisePropertyChanged("NotificationGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Create", typeof(importNotificationRequestNotificationCreate), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("DeleteNotification", typeof(DeleteDocType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("IsShipOff", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("RecallNotification", typeof(importNotificationRequestNotificationRecallNotification), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreate : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private bool isImportantField; + + private bool isImportantFieldSpecified; + + private string contentField; + + private object[] itemsField; + + private ItemsChoiceType21[] itemsElementNameField; + + private object[] items1Field; + + private Items1ChoiceType[] items1ElementNameField; + + private AttachmentType[] attachmentField; + + private bool isShipOffField; + + private bool isShipOffFieldSpecified; + + private bool isForPublishToMobileAppField; + + private bool isForPublishToMobileAppFieldSpecified; + + private importNotificationRequestNotificationCreateMobileAppData mobileAppDataField; + + public importNotificationRequestNotificationCreate() { + this.isImportantField = true; + this.isShipOffField = true; + this.isForPublishToMobileAppField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Topic", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("TopicNSIRef", typeof(nsiRef), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsImportant { + get { + return this.isImportantField; + } + set { + this.isImportantField = value; + this.RaisePropertyChanged("IsImportant"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsImportantSpecified { + get { + return this.isImportantFieldSpecified; + } + set { + this.isImportantFieldSpecified = value; + this.RaisePropertyChanged("IsImportantSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string content { + get { + return this.contentField; + } + set { + this.contentField = value; + this.RaisePropertyChanged("content"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("InspectionAuthority", typeof(RegOrgType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("IsAll", typeof(bool), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("RoomOwners", typeof(importNotificationRequestNotificationCreateRoomOwners), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("SpecialAccountOwner", typeof(RegOrgType), Order=3)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=4)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType21[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EndDate", typeof(System.DateTime), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("IsNotLimit", typeof(bool), Order=5)] + [System.Xml.Serialization.XmlElementAttribute("StartDate", typeof(System.DateTime), Order=5)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Items1ElementName")] + public object[] Items1 { + get { + return this.items1Field; + } + set { + this.items1Field = value; + this.RaisePropertyChanged("Items1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Items1ElementName", Order=6)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Items1ChoiceType[] Items1ElementName { + get { + return this.items1ElementNameField; + } + set { + this.items1ElementNameField = value; + this.RaisePropertyChanged("Items1ElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachment", Order=7)] + public AttachmentType[] Attachment { + get { + return this.attachmentField; + } + set { + this.attachmentField = value; + this.RaisePropertyChanged("Attachment"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool IsShipOff { + get { + return this.isShipOffField; + } + set { + this.isShipOffField = value; + this.RaisePropertyChanged("IsShipOff"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsShipOffSpecified { + get { + return this.isShipOffFieldSpecified; + } + set { + this.isShipOffFieldSpecified = value; + this.RaisePropertyChanged("IsShipOffSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool IsForPublishToMobileApp { + get { + return this.isForPublishToMobileAppField; + } + set { + this.isForPublishToMobileAppField = value; + this.RaisePropertyChanged("IsForPublishToMobileApp"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsForPublishToMobileAppSpecified { + get { + return this.isForPublishToMobileAppFieldSpecified; + } + set { + this.isForPublishToMobileAppFieldSpecified = value; + this.RaisePropertyChanged("IsForPublishToMobileAppSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public importNotificationRequestNotificationCreateMobileAppData MobileAppData { + get { + return this.mobileAppDataField; + } + set { + this.mobileAppDataField = value; + this.RaisePropertyChanged("MobileAppData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateRoomOwners : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private ItemChoiceType21 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountOpening", typeof(importNotificationRequestNotificationCreateRoomOwnersAccountOpening), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DeptsInforming", typeof(importNotificationRequestNotificationCreateRoomOwnersDeptsInforming), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("OtherOrganizationSelection", typeof(importNotificationRequestNotificationCreateRoomOwnersOtherOrganizationSelection), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType21 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateRoomOwnersAccountOpening : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGuidField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateRoomOwnersDeptsInforming : object, System.ComponentModel.INotifyPropertyChanged { + + private importNotificationRequestNotificationCreateRoomOwnersDeptsInformingAccount[] accountField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Account", Order=0)] + public importNotificationRequestNotificationCreateRoomOwnersDeptsInformingAccount[] Account { + get { + return this.accountField; + } + set { + this.accountField = value; + this.RaisePropertyChanged("Account"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateRoomOwnersDeptsInformingAccount : object, System.ComponentModel.INotifyPropertyChanged { + + private decimal totalDebtField; + + private string unifiedAccountNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal TotalDebt { + get { + return this.totalDebtField; + } + set { + this.totalDebtField = value; + this.RaisePropertyChanged("TotalDebt"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=1)] + public string UnifiedAccountNumber { + get { + return this.unifiedAccountNumberField; + } + set { + this.unifiedAccountNumberField = value; + this.RaisePropertyChanged("UnifiedAccountNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateRoomOwnersOtherOrganizationSelection : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] fIASHouseGuidField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", Order=0)] + public string[] FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType21 { + + /// + AccountOpening, + + /// + DeptsInforming, + + /// + OtherOrganizationSelection, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType21 { + + /// + FIASHouseGuid, + + /// + InspectionAuthority, + + /// + IsAll, + + /// + RoomOwners, + + /// + SpecialAccountOwner, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Items1ChoiceType { + + /// + EndDate, + + /// + IsNotLimit, + + /// + StartDate, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationCreateMobileAppData : object, System.ComponentModel.INotifyPropertyChanged { + + private bool isShortTopicField; + + private bool isPinField; + + private string urlField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsShortTopic { + get { + return this.isShortTopicField; + } + set { + this.isShortTopicField = value; + this.RaisePropertyChanged("IsShortTopic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsPin { + get { + return this.isPinField; + } + set { + this.isPinField = value; + this.RaisePropertyChanged("IsPin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string url { + get { + return this.urlField; + } + set { + this.urlField = value; + this.RaisePropertyChanged("url"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class DeleteDocType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool deleteField; + + public DeleteDocType() { + this.deleteField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool Delete { + get { + return this.deleteField; + } + set { + this.deleteField = value; + this.RaisePropertyChanged("Delete"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importNotificationRequestNotificationRecallNotification : object, System.ComponentModel.INotifyPropertyChanged { + + private string recallReasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RecallReason { + get { + return this.recallReasonField; + } + set { + this.recallReasonField = value; + this.RaisePropertyChanged("RecallReason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importNotificationDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationRequest importNotificationRequest; + + public importNotificationDataRequest() { + } + + public importNotificationDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationRequest importNotificationRequest) { + this.RequestHeader = RequestHeader; + this.importNotificationRequest = importNotificationRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importNotificationDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importNotificationDataResponse() { + } + + public importNotificationDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importVotingProtocolRequest : BaseType { + + private string transportGUIDField; + + private string protocolGUIDField; + + private object itemField; + + private ItemChoiceType23 itemElementNameField; + + private string versionField; + + public importVotingProtocolRequest() { + this.versionField = "11.11.0.6"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ProtocolGUID { + get { + return this.protocolGUIDField; + } + set { + this.protocolGUIDField = value; + this.RaisePropertyChanged("ProtocolGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Annulment", typeof(AnnulmentProtocolType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Delete", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Placing", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Protocol", typeof(importVotingProtocolRequestProtocol), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Revert", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType23 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class AnnulmentProtocolType : object, System.ComponentModel.INotifyPropertyChanged { + + private string modificationField; + + private object itemField; + + private System.DateTime annulmentDateField; + + private bool annulmentDateFieldSpecified; + + private string annulmentNumberField; + + private nsiRef nSIModificationField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Modification { + get { + return this.modificationField; + } + set { + this.modificationField = value; + this.RaisePropertyChanged("Modification"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulmentOrganization", typeof(RegOrgType), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("AnnulmentOrganizationText", typeof(string), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime AnnulmentDate { + get { + return this.annulmentDateField; + } + set { + this.annulmentDateField = value; + this.RaisePropertyChanged("AnnulmentDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AnnulmentDateSpecified { + get { + return this.annulmentDateFieldSpecified; + } + set { + this.annulmentDateFieldSpecified = value; + this.RaisePropertyChanged("AnnulmentDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AnnulmentNumber { + get { + return this.annulmentNumberField; + } + set { + this.annulmentNumberField = value; + this.RaisePropertyChanged("AnnulmentNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef NSIModification { + get { + return this.nSIModificationField; + } + set { + this.nSIModificationField = value; + this.RaisePropertyChanged("NSIModification"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importVotingProtocolRequestProtocol : ProtocolType { + + private bool placingField; + + private bool placingFieldSpecified; + + public importVotingProtocolRequestProtocol() { + this.placingField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool Placing { + get { + return this.placingField; + } + set { + this.placingField = value; + this.RaisePropertyChanged("Placing"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PlacingSpecified { + get { + return this.placingFieldSpecified; + } + set { + this.placingFieldSpecified = value; + this.RaisePropertyChanged("PlacingSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private RegOrgType organizationGuidField; + + private string protocolNumField; + + private System.DateTime protocolDateField; + + private object itemField; + + private MeetingTypeType meetingTypeField; + + private bool meetingTypeFieldSpecified; + + private bool item1Field; + + private Item1ChoiceType9 item1ElementNameField; + + private VoteInitiators[] voteInitiatorsField; + + private ProtocolTypeMeetingEligibility meetingEligibilityField; + + private ProtocolTypeDecisionList[] decisionListField; + + private string modificationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public RegOrgType OrganizationGuid { + get { + return this.organizationGuidField; + } + set { + this.organizationGuidField = value; + this.RaisePropertyChanged("OrganizationGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ProtocolNum { + get { + return this.protocolNumField; + } + set { + this.protocolNumField = value; + this.RaisePropertyChanged("ProtocolNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime ProtocolDate { + get { + return this.protocolDateField; + } + set { + this.protocolDateField = value; + this.RaisePropertyChanged("ProtocolDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AVoting", typeof(ProtocolTypeAVoting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("EVoting", typeof(ProtocolTypeEVoting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("Meeting", typeof(ProtocolTypeMeeting), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("MeetingAVoting", typeof(ProtocolTypeMeetingAVoting), Order=4)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public MeetingTypeType MeetingType { + get { + return this.meetingTypeField; + } + set { + this.meetingTypeField = value; + this.RaisePropertyChanged("MeetingType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeetingTypeSpecified { + get { + return this.meetingTypeFieldSpecified; + } + set { + this.meetingTypeFieldSpecified = value; + this.RaisePropertyChanged("MeetingTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnualVoting", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ExtraVoting", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public bool Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType9 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VoteInitiators", Order=8)] + public VoteInitiators[] VoteInitiators { + get { + return this.voteInitiatorsField; + } + set { + this.voteInitiatorsField = value; + this.RaisePropertyChanged("VoteInitiators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public ProtocolTypeMeetingEligibility MeetingEligibility { + get { + return this.meetingEligibilityField; + } + set { + this.meetingEligibilityField = value; + this.RaisePropertyChanged("MeetingEligibility"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionList", Order=10)] + public ProtocolTypeDecisionList[] DecisionList { + get { + return this.decisionListField; + } + set { + this.decisionListField = value; + this.RaisePropertyChanged("DecisionList"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public string Modification { + get { + return this.modificationField; + } + set { + this.modificationField = value; + this.RaisePropertyChanged("Modification"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private bool aVotingStartDateFieldSpecified; + + private System.DateTime aVotingDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AVotingStartDateSpecified { + get { + return this.aVotingStartDateFieldSpecified; + } + set { + this.aVotingStartDateFieldSpecified = value; + this.RaisePropertyChanged("AVotingStartDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingDate { + get { + return this.aVotingDateField; + } + set { + this.aVotingDateField = value; + this.RaisePropertyChanged("AVotingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=3)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeEVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime eVotingDateBeginField; + + private System.DateTime eVotingDateEndField; + + private string disciplineField; + + private string infoReviewField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EVotingDateBegin { + get { + return this.eVotingDateBeginField; + } + set { + this.eVotingDateBeginField = value; + this.RaisePropertyChanged("EVotingDateBegin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime EVotingDateEnd { + get { + return this.eVotingDateEndField; + } + set { + this.eVotingDateEndField = value; + this.RaisePropertyChanged("EVotingDateEnd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Discipline { + get { + return this.disciplineField; + } + set { + this.disciplineField = value; + this.RaisePropertyChanged("Discipline"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string InfoReview { + get { + return this.infoReviewField; + } + set { + this.infoReviewField = value; + this.RaisePropertyChanged("InfoReview"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=4)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeMeeting : VoitingType { + + private System.DateTime meetingDateField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=1)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeMeetingAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private System.DateTime aVotingStartDateField; + + private bool aVotingStartDateFieldSpecified; + + private System.DateTime aVotingDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AVotingStartDateSpecified { + get { + return this.aVotingStartDateFieldSpecified; + } + set { + this.aVotingStartDateFieldSpecified = value; + this.RaisePropertyChanged("AVotingStartDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime AVotingDate { + get { + return this.aVotingDateField; + } + set { + this.aVotingDateField = value; + this.RaisePropertyChanged("AVotingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType9 { + + /// + AnnualVoting, + + /// + ExtraVoting, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ProtocolTypeMeetingEligibility { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeDecisionList : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private string questionNameField; + + private nsiRef decisionsTypeField; + + private ProtocolTypeDecisionListHomeownersDecisionsType homeownersDecisionsTypeField; + + private bool itemField; + + private ItemChoiceType22 itemElementNameField; + + private decimal agreeField; + + private bool agreeFieldSpecified; + + private decimal againstField; + + private bool againstFieldSpecified; + + private decimal abstentField; + + private bool abstentFieldSpecified; + + private nsiRef formingFundField; + + private nsiRef managementTypeField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + private ProtocolTypeDecisionListVotingResume votingResumeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string QuestionName { + get { + return this.questionNameField; + } + set { + this.questionNameField = value; + this.RaisePropertyChanged("QuestionName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef DecisionsType { + get { + return this.decisionsTypeField; + } + set { + this.decisionsTypeField = value; + this.RaisePropertyChanged("DecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public ProtocolTypeDecisionListHomeownersDecisionsType HomeownersDecisionsType { + get { + return this.homeownersDecisionsTypeField; + } + set { + this.homeownersDecisionsTypeField = value; + this.RaisePropertyChanged("HomeownersDecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("CharterNotContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType22 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public decimal Agree { + get { + return this.agreeField; + } + set { + this.agreeField = value; + this.RaisePropertyChanged("Agree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgreeSpecified { + get { + return this.agreeFieldSpecified; + } + set { + this.agreeFieldSpecified = value; + this.RaisePropertyChanged("AgreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public decimal Against { + get { + return this.againstField; + } + set { + this.againstField = value; + this.RaisePropertyChanged("Against"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgainstSpecified { + get { + return this.againstFieldSpecified; + } + set { + this.againstFieldSpecified = value; + this.RaisePropertyChanged("AgainstSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public decimal Abstent { + get { + return this.abstentField; + } + set { + this.abstentField = value; + this.RaisePropertyChanged("Abstent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AbstentSpecified { + get { + return this.abstentFieldSpecified; + } + set { + this.abstentFieldSpecified = value; + this.RaisePropertyChanged("AbstentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public nsiRef FormingFund { + get { + return this.formingFundField; + } + set { + this.formingFundField = value; + this.RaisePropertyChanged("FormingFund"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public nsiRef ManagementType { + get { + return this.managementTypeField; + } + set { + this.managementTypeField = value; + this.RaisePropertyChanged("ManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public ProtocolTypeDecisionListVotingResume votingResume { + get { + return this.votingResumeField; + } + set { + this.votingResumeField = value; + this.RaisePropertyChanged("votingResume"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ProtocolTypeDecisionListHomeownersDecisionsType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType22 { + + /// + CharterContained, + + /// + CharterNotContained, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ProtocolTypeDecisionListVotingResume { + + /// + M, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType23 { + + /// + Annulment, + + /// + Delete, + + /// + Placing, + + /// + Protocol, + + /// + Revert, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importVotingProtocolRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest importVotingProtocolRequest; + + public importVotingProtocolRequest1() { + } + + public importVotingProtocolRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest importVotingProtocolRequest) { + this.RequestHeader = RequestHeader; + this.importVotingProtocolRequest = importVotingProtocolRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importVotingProtocolResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importVotingProtocolResponse() { + } + + public importVotingProtocolResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportVotingProtocolRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType22[] itemsElementNameField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RootProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("StatusVersionProtocol", typeof(exportVotingProtocolRequestStatusVersionProtocol), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType22[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportVotingProtocolRequestStatusVersionProtocol { + + /// + Created, + + /// + Posted, + + /// + Edited, + + /// + Annuled, + + /// + PostedFromAnotherSystem, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType22 { + + /// + FIASHouseGuid, + + /// + RootProtocolGUID, + + /// + StatusVersionProtocol, + + /// + VotingProtocolGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportVotingProtocolRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest exportVotingProtocolRequest; + + public exportVotingProtocolRequest1() { + } + + public exportVotingProtocolRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest exportVotingProtocolRequest) { + this.RequestHeader = RequestHeader; + this.exportVotingProtocolRequest = exportVotingProtocolRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportVotingProtocolResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportVotingProtocolResponse() { + } + + public exportVotingProtocolResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerDecisionRequest : BaseType { + + private importOwnerDecisionRequestOwnerDecision[] ownerDecisionField; + + private string versionField; + + public importOwnerDecisionRequest() { + this.versionField = "13.0.0.2"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OwnerDecision", Order=0)] + public importOwnerDecisionRequestOwnerDecision[] OwnerDecision { + get { + return this.ownerDecisionField; + } + set { + this.ownerDecisionField = value; + this.RaisePropertyChanged("OwnerDecision"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerDecisionRequestOwnerDecision : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string itemField; + + private ItemChoiceType24 itemElementNameField; + + private string rootOwnerDecisionGUIDField; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MessageGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ProtocolGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType24 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string RootOwnerDecisionGUID { + get { + return this.rootOwnerDecisionGUIDField; + } + set { + this.rootOwnerDecisionGUIDField = value; + this.RaisePropertyChanged("RootOwnerDecisionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulDecision", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("Decision", typeof(OwnerDecisionType), Order=4)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType24 { + + /// + MessageGUID, + + /// + ProtocolGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OwnerDecisionType : object, System.ComponentModel.INotifyPropertyChanged { + + private Owner ownerField; + + private PropertyDetails[] propertyDetailsField; + + private Representative representativeField; + + private QuestionOnDecisionType questionOnDecisionField; + + private AttachmentType[] decisionAttachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public Owner Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + this.RaisePropertyChanged("Owner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PropertyDetails", Order=1)] + public PropertyDetails[] PropertyDetails { + get { + return this.propertyDetailsField; + } + set { + this.propertyDetailsField = value; + this.RaisePropertyChanged("PropertyDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public Representative Representative { + get { + return this.representativeField; + } + set { + this.representativeField = value; + this.RaisePropertyChanged("Representative"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public QuestionOnDecisionType QuestionOnDecision { + get { + return this.questionOnDecisionField; + } + set { + this.questionOnDecisionField = value; + this.RaisePropertyChanged("QuestionOnDecision"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionAttachments", Order=4)] + public AttachmentType[] DecisionAttachments { + get { + return this.decisionAttachmentsField; + } + set { + this.decisionAttachmentsField = value; + this.RaisePropertyChanged("DecisionAttachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PropertyDetails : object, System.ComponentModel.INotifyPropertyChanged { + + private string registrationNumberField; + + private System.DateTime registrationDateField; + + private string premisesNumField; + + private decimal totalAreaField; + + private PropertyDetailsPropertyType propertyTypeField; + + private PropertyDetailsShareSize shareSizeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string RegistrationNumber { + get { + return this.registrationNumberField; + } + set { + this.registrationNumberField = value; + this.RaisePropertyChanged("RegistrationNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime RegistrationDate { + get { + return this.registrationDateField; + } + set { + this.registrationDateField = value; + this.RaisePropertyChanged("RegistrationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PremisesNum { + get { + return this.premisesNumField; + } + set { + this.premisesNumField = value; + this.RaisePropertyChanged("PremisesNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal TotalArea { + get { + return this.totalAreaField; + } + set { + this.totalAreaField = value; + this.RaisePropertyChanged("TotalArea"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public PropertyDetailsPropertyType PropertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("PropertyType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public PropertyDetailsShareSize ShareSize { + get { + return this.shareSizeField; + } + set { + this.shareSizeField = value; + this.RaisePropertyChanged("ShareSize"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PropertyDetailsPropertyType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType25 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("IndividualProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("JointProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ShareProperty", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType25 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType25 { + + /// + IndividualProperty, + + /// + JointProperty, + + /// + ShareProperty, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class PropertyDetailsShareSize : object, System.ComponentModel.INotifyPropertyChanged { + + private string numeratorField; + + private string denumeratorField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string Numerator { + get { + return this.numeratorField; + } + set { + this.numeratorField = value; + this.RaisePropertyChanged("Numerator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string Denumerator { + get { + return this.denumeratorField; + } + set { + this.denumeratorField = value; + this.RaisePropertyChanged("Denumerator"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importOwnerDecisionRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest importOwnerDecisionRequest; + + public importOwnerDecisionRequest1() { + } + + public importOwnerDecisionRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest importOwnerDecisionRequest) { + this.RequestHeader = RequestHeader; + this.importOwnerDecisionRequest = importOwnerDecisionRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importOwnerDecisionResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importOwnerDecisionResponse() { + } + + public importOwnerDecisionResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportOwnerDecisionRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType23[] itemsElementNameField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("MessageGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RootOwnerDecisionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RootProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("VotingProtocolGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType23[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType23 { + + /// + MessageGUID, + + /// + RootOwnerDecisionGUID, + + /// + RootProtocolGUID, + + /// + VotingProtocolGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOwnerDecisionRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest exportOwnerDecisionRequest; + + public exportOwnerDecisionRequest1() { + } + + public exportOwnerDecisionRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest exportOwnerDecisionRequest) { + this.RequestHeader = RequestHeader; + this.exportOwnerDecisionRequest = exportOwnerDecisionRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOwnerDecisionResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportOwnerDecisionResponse() { + } + + public exportOwnerDecisionResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChAsyncRequest : BaseType { + + private exportCAChRequestCriteriaType[] criteriaField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Criteria", Order=0)] + public exportCAChRequestCriteriaType[] Criteria { + get { + return this.criteriaField; + } + set { + this.criteriaField = value; + this.RaisePropertyChanged("Criteria"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportCAChRequestCriteriaType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType24[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("CharterVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractVersionGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LastVersionOnly", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDate", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("UOGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType24[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType24 { + + /// + CharterGUID, + + /// + CharterVersionGUID, + + /// + ContractGUID, + + /// + ContractVersionGUID, + + /// + FIASHouseGuid, + + /// + LastVersionOnly, + + /// + SigningDate, + + /// + UOGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportCAChDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChAsyncRequest exportCAChAsyncRequest; + + public exportCAChDataRequest() { + } + + public exportCAChDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChAsyncRequest exportCAChAsyncRequest) { + this.RequestHeader = RequestHeader; + this.exportCAChAsyncRequest = exportCAChAsyncRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportCAChDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportCAChDataResponse() { + } + + public exportCAChDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequest : BaseType { + + private object itemField; + + private bool inheritMissingValuesField; + + private bool inheritMissingValuesFieldSpecified; + + private string versionField; + + public importHouseUORequest() { + this.inheritMissingValuesField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouse", typeof(importHouseUORequestApartmentHouse), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouse", typeof(importHouseUORequestLivingHouse), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool InheritMissingValues { + get { + return this.inheritMissingValuesField; + } + set { + this.inheritMissingValuesField = value; + this.RaisePropertyChanged("InheritMissingValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InheritMissingValuesSpecified { + get { + return this.inheritMissingValuesFieldSpecified; + } + set { + this.inheritMissingValuesFieldSpecified = value; + this.RaisePropertyChanged("InheritMissingValuesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouse : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private importHouseUORequestApartmentHouseNonResidentialPremiseToCreate[] nonResidentialPremiseToCreateField; + + private importHouseUORequestApartmentHouseNonResidentialPremiseToUpdate[] nonResidentialPremiseToUpdateField; + + private importHouseUORequestApartmentHouseEntranceToCreate[] entranceToCreateField; + + private importHouseUORequestApartmentHouseEntranceToUpdate[] entranceToUpdateField; + + private importHouseUORequestApartmentHouseResidentialPremises[] residentialPremisesField; + + private importHouseUORequestApartmentHouseLiftToCreate[] liftToCreateField; + + private importHouseUORequestApartmentHouseLiftToUpdate[] liftToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToCreate", typeof(importHouseUORequestApartmentHouseApartmentHouseToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToUpdate", typeof(importHouseUORequestApartmentHouseApartmentHouseToUpdate), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToCreate", Order=1)] + public importHouseUORequestApartmentHouseNonResidentialPremiseToCreate[] NonResidentialPremiseToCreate { + get { + return this.nonResidentialPremiseToCreateField; + } + set { + this.nonResidentialPremiseToCreateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToUpdate", Order=2)] + public importHouseUORequestApartmentHouseNonResidentialPremiseToUpdate[] NonResidentialPremiseToUpdate { + get { + return this.nonResidentialPremiseToUpdateField; + } + set { + this.nonResidentialPremiseToUpdateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToCreate", Order=3)] + public importHouseUORequestApartmentHouseEntranceToCreate[] EntranceToCreate { + get { + return this.entranceToCreateField; + } + set { + this.entranceToCreateField = value; + this.RaisePropertyChanged("EntranceToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToUpdate", Order=4)] + public importHouseUORequestApartmentHouseEntranceToUpdate[] EntranceToUpdate { + get { + return this.entranceToUpdateField; + } + set { + this.entranceToUpdateField = value; + this.RaisePropertyChanged("EntranceToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremises", Order=5)] + public importHouseUORequestApartmentHouseResidentialPremises[] ResidentialPremises { + get { + return this.residentialPremisesField; + } + set { + this.residentialPremisesField = value; + this.RaisePropertyChanged("ResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToCreate", Order=6)] + public importHouseUORequestApartmentHouseLiftToCreate[] LiftToCreate { + get { + return this.liftToCreateField; + } + set { + this.liftToCreateField = value; + this.RaisePropertyChanged("LiftToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToUpdate", Order=7)] + public importHouseUORequestApartmentHouseLiftToUpdate[] LiftToUpdate { + get { + return this.liftToUpdateField; + } + set { + this.liftToUpdateField = value; + this.RaisePropertyChanged("LiftToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseApartmentHouseToCreate : ApartmentHouseUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private ApartmentHouseUOTypeBasicCharacteristicts basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ApartmentHouseUOTypeBasicCharacteristicts BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseUOTypeBasicCharacteristicts : HouseBasicUOType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseApartmentHouseToUpdate : ApartmentHouseUpdateUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseUpdateUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUpdateUOType basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private bool undergroundFloorCountFieldSpecified; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUpdateUOType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UndergroundFloorCountSpecified { + get { + return this.undergroundFloorCountFieldSpecified; + } + set { + this.undergroundFloorCountFieldSpecified = value; + this.RaisePropertyChanged("UndergroundFloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseNonResidentialPremiseToCreate : NonResidentialPremisesUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseNonResidentialPremiseToUpdate : NonResidentialPremisesUpdateUOType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseEntranceToCreate : EntranceUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseEntranceToUpdate : EntranceUpdateUOType { + + private string transportGUIDField; + + private string entranceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string EntranceGUID { + get { + return this.entranceGUIDField; + } + set { + this.entranceGUIDField = value; + this.RaisePropertyChanged("EntranceGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceUpdateUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseResidentialPremises : object, System.ComponentModel.INotifyPropertyChanged { + + private GKN_EGRP_KeyType itemField; + + private importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToCreate[] livingRoomToCreateField; + + private importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] livingRoomToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToCreate", typeof(importHouseUORequestApartmentHouseResidentialPremisesResidentialPremisesToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToUpdate", typeof(importHouseUORequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate), Order=0)] + public GKN_EGRP_KeyType Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", Order=1)] + public importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToCreate[] LivingRoomToCreate { + get { + return this.livingRoomToCreateField; + } + set { + this.livingRoomToCreateField = value; + this.RaisePropertyChanged("LivingRoomToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", Order=2)] + public importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] LivingRoomToUpdate { + get { + return this.livingRoomToUpdateField; + } + set { + this.livingRoomToUpdateField = value; + this.RaisePropertyChanged("LivingRoomToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseResidentialPremisesResidentialPremisesToCreate : ResidentialPremisesUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate : ResidentialPremisesUpdateUOType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToCreate : RoomUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseResidentialPremisesLivingRoomToUpdate : RoomUpdateUOType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseLiftToCreate : LiftUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestApartmentHouseLiftToUpdate : LiftUpdateUOType { + + private string transportGUIDField; + + private string liftGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LiftGUID { + get { + return this.liftGUIDField; + } + set { + this.liftGUIDField = value; + this.RaisePropertyChanged("LiftGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftUpdateUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouse : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingHouseToCreate", typeof(importHouseUORequestLivingHouseLivingHouseToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseToUpdate", typeof(importHouseUORequestLivingHouseLivingHouseToUpdate), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Blocks", typeof(importHouseUORequestLivingHouseBlocks), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", typeof(importHouseUORequestLivingHouseLivingRoomToCreate), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", typeof(importHouseUORequestLivingHouseLivingRoomToUpdate), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseLivingHouseToCreate : LivingHouseUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUOType basicCharacteristictsField; + + private bool hasBlocksField; + + private bool hasBlocksFieldSpecified; + + private bool hasMultipleHousesWithSameAddressField; + + private bool hasMultipleHousesWithSameAddressFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUOType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool HasBlocks { + get { + return this.hasBlocksField; + } + set { + this.hasBlocksField = value; + this.RaisePropertyChanged("HasBlocks"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasBlocksSpecified { + get { + return this.hasBlocksFieldSpecified; + } + set { + this.hasBlocksFieldSpecified = value; + this.RaisePropertyChanged("HasBlocksSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool HasMultipleHousesWithSameAddress { + get { + return this.hasMultipleHousesWithSameAddressField; + } + set { + this.hasMultipleHousesWithSameAddressField = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddress"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasMultipleHousesWithSameAddressSpecified { + get { + return this.hasMultipleHousesWithSameAddressFieldSpecified; + } + set { + this.hasMultipleHousesWithSameAddressFieldSpecified = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddressSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseLivingHouseToUpdate : LivingHouseUpdateUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseUpdateUOType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUpdateUOType basicCharacteristictsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUpdateUOType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseBlocks : object, System.ComponentModel.INotifyPropertyChanged { + + private GKN_EGRP_KeyType itemField; + + private importHouseUORequestLivingHouseBlocksLivingRoomToCreate[] livingRoomToCreateField; + + private importHouseUORequestLivingHouseBlocksLivingRoomToUpdate[] livingRoomToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("BlockToCreate", typeof(importHouseUORequestLivingHouseBlocksBlockToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("BlockToUpdate", typeof(importHouseUORequestLivingHouseBlocksBlockToUpdate), Order=0)] + public GKN_EGRP_KeyType Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", Order=1)] + public importHouseUORequestLivingHouseBlocksLivingRoomToCreate[] LivingRoomToCreate { + get { + return this.livingRoomToCreateField; + } + set { + this.livingRoomToCreateField = value; + this.RaisePropertyChanged("LivingRoomToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", Order=2)] + public importHouseUORequestLivingHouseBlocksLivingRoomToUpdate[] LivingRoomToUpdate { + get { + return this.livingRoomToUpdateField; + } + set { + this.livingRoomToUpdateField = value; + this.RaisePropertyChanged("LivingRoomToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseBlocksBlockToCreate : BlockUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseBlocksBlockToUpdate : BlockUpdateUOType { + + private string transportGUIDField; + + private string blockGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string BlockGUID { + get { + return this.blockGUIDField; + } + set { + this.blockGUIDField = value; + this.RaisePropertyChanged("BlockGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseBlocksLivingRoomToCreate : RoomUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseBlocksLivingRoomToUpdate : RoomUpdateUOType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseLivingRoomToCreate : RoomUOType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseUORequestLivingHouseLivingRoomToUpdate : RoomUpdateUOType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseUODataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUORequest importHouseUORequest; + + public importHouseUODataRequest() { + } + + public importHouseUODataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUORequest importHouseUORequest) { + this.RequestHeader = RequestHeader; + this.importHouseUORequest = importHouseUORequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseUODataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importHouseUODataResponse() { + } + + public importHouseUODataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequest : BaseType { + + private object itemField; + + private bool inheritMissingValuesField; + + private bool inheritMissingValuesFieldSpecified; + + private string versionField; + + public importHouseOMSRequest() { + this.inheritMissingValuesField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouse", typeof(importHouseOMSRequestApartmentHouse), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouse", typeof(importHouseOMSRequestLivingHouse), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool InheritMissingValues { + get { + return this.inheritMissingValuesField; + } + set { + this.inheritMissingValuesField = value; + this.RaisePropertyChanged("InheritMissingValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InheritMissingValuesSpecified { + get { + return this.inheritMissingValuesFieldSpecified; + } + set { + this.inheritMissingValuesFieldSpecified = value; + this.RaisePropertyChanged("InheritMissingValuesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouse : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private importHouseOMSRequestApartmentHouseNonResidentialPremiseToCreate[] nonResidentialPremiseToCreateField; + + private importHouseOMSRequestApartmentHouseNonResidentialPremiseToUpdate[] nonResidentialPremiseToUpdateField; + + private importHouseOMSRequestApartmentHouseEntranceToCreate[] entranceToCreateField; + + private importHouseOMSRequestApartmentHouseEntranceToUpdate[] entranceToUpdateField; + + private importHouseOMSRequestApartmentHouseResidentialPremises[] residentialPremisesField; + + private importHouseOMSRequestApartmentHouseLiftToCreate[] liftToCreateField; + + private importHouseOMSRequestApartmentHouseLiftToUpdate[] liftToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToCreate", typeof(importHouseOMSRequestApartmentHouseApartmentHouseToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToUpdate", typeof(importHouseOMSRequestApartmentHouseApartmentHouseToUpdate), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToCreate", Order=1)] + public importHouseOMSRequestApartmentHouseNonResidentialPremiseToCreate[] NonResidentialPremiseToCreate { + get { + return this.nonResidentialPremiseToCreateField; + } + set { + this.nonResidentialPremiseToCreateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToUpdate", Order=2)] + public importHouseOMSRequestApartmentHouseNonResidentialPremiseToUpdate[] NonResidentialPremiseToUpdate { + get { + return this.nonResidentialPremiseToUpdateField; + } + set { + this.nonResidentialPremiseToUpdateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToCreate", Order=3)] + public importHouseOMSRequestApartmentHouseEntranceToCreate[] EntranceToCreate { + get { + return this.entranceToCreateField; + } + set { + this.entranceToCreateField = value; + this.RaisePropertyChanged("EntranceToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToUpdate", Order=4)] + public importHouseOMSRequestApartmentHouseEntranceToUpdate[] EntranceToUpdate { + get { + return this.entranceToUpdateField; + } + set { + this.entranceToUpdateField = value; + this.RaisePropertyChanged("EntranceToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremises", Order=5)] + public importHouseOMSRequestApartmentHouseResidentialPremises[] ResidentialPremises { + get { + return this.residentialPremisesField; + } + set { + this.residentialPremisesField = value; + this.RaisePropertyChanged("ResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToCreate", Order=6)] + public importHouseOMSRequestApartmentHouseLiftToCreate[] LiftToCreate { + get { + return this.liftToCreateField; + } + set { + this.liftToCreateField = value; + this.RaisePropertyChanged("LiftToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToUpdate", Order=7)] + public importHouseOMSRequestApartmentHouseLiftToUpdate[] LiftToUpdate { + get { + return this.liftToUpdateField; + } + set { + this.liftToUpdateField = value; + this.RaisePropertyChanged("LiftToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseApartmentHouseToCreate : ApartmentHouseOMSType { + + private nsiRef houseManagementTypeField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private ApartmentHouseOMSTypeBasicCharacteristicts basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ApartmentHouseOMSTypeBasicCharacteristicts BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseOMSTypeBasicCharacteristicts : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private int floorCountField; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private OGFData[] oGFDataField; + + private HostelDataType hostelDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public HostelDataType HostelData { + get { + return this.hostelDataField; + } + set { + this.hostelDataField = value; + this.RaisePropertyChanged("HostelData"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseApartmentHouseToUpdate : ApartmentHouseUpdateOMSType { + + private string transportGUIDField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseUpdateOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUpdateOMSType basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private bool undergroundFloorCountFieldSpecified; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUpdateOMSType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UndergroundFloorCountSpecified { + get { + return this.undergroundFloorCountFieldSpecified; + } + set { + this.undergroundFloorCountFieldSpecified = value; + this.RaisePropertyChanged("UndergroundFloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseNonResidentialPremiseToCreate : NonResidentialPremisesOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseNonResidentialPremiseToUpdate : NonResidentialPremisesUpdateOMSType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseEntranceToCreate : EntranceOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseEntranceToUpdate : EntranceUpdateOMSType { + + private string transportGUIDField; + + private string entranceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string EntranceGUID { + get { + return this.entranceGUIDField; + } + set { + this.entranceGUIDField = value; + this.RaisePropertyChanged("EntranceGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceUpdateOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseResidentialPremises : object, System.ComponentModel.INotifyPropertyChanged { + + private GKN_EGRP_KeyType itemField; + + private importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToCreate[] livingRoomToCreateField; + + private importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] livingRoomToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToCreate", typeof(importHouseOMSRequestApartmentHouseResidentialPremisesResidentialPremisesToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToUpdate", typeof(importHouseOMSRequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate), Order=0)] + public GKN_EGRP_KeyType Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", Order=1)] + public importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToCreate[] LivingRoomToCreate { + get { + return this.livingRoomToCreateField; + } + set { + this.livingRoomToCreateField = value; + this.RaisePropertyChanged("LivingRoomToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", Order=2)] + public importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] LivingRoomToUpdate { + get { + return this.livingRoomToUpdateField; + } + set { + this.livingRoomToUpdateField = value; + this.RaisePropertyChanged("LivingRoomToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseResidentialPremisesResidentialPremisesToCreate : ResidentialPremisesOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate : ResidentialPremisesUpdateOMSType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToCreate : RoomOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseResidentialPremisesLivingRoomToUpdate : RoomUpdateOMSType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseLiftToCreate : LiftOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestApartmentHouseLiftToUpdate : LiftUpdateOMSType { + + private string transportGUIDField; + + private string liftGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LiftGUID { + get { + return this.liftGUIDField; + } + set { + this.liftGUIDField = value; + this.RaisePropertyChanged("LiftGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftUpdateOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouse : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingHouseToCreate", typeof(importHouseOMSRequestLivingHouseLivingHouseToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseToUpdate", typeof(importHouseOMSRequestLivingHouseLivingHouseToUpdate), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Blocks", typeof(importHouseOMSRequestLivingHouseBlocks), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", typeof(importHouseOMSRequestLivingHouseLivingRoomToCreate), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", typeof(importHouseOMSRequestLivingHouseLivingRoomToUpdate), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseLivingHouseToCreate : LivingHouseOMSType { + + private string transportGUIDField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private LivingHouseOMSTypeBasicCharacteristicts basicCharacteristictsField; + + private bool hasBlocksField; + + private bool hasBlocksFieldSpecified; + + private bool hasMultipleHousesWithSameAddressField; + + private bool hasMultipleHousesWithSameAddressFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public LivingHouseOMSTypeBasicCharacteristicts BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool HasBlocks { + get { + return this.hasBlocksField; + } + set { + this.hasBlocksField = value; + this.RaisePropertyChanged("HasBlocks"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasBlocksSpecified { + get { + return this.hasBlocksFieldSpecified; + } + set { + this.hasBlocksFieldSpecified = value; + this.RaisePropertyChanged("HasBlocksSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool HasMultipleHousesWithSameAddress { + get { + return this.hasMultipleHousesWithSameAddressField; + } + set { + this.hasMultipleHousesWithSameAddressField = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddress"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool HasMultipleHousesWithSameAddressSpecified { + get { + return this.hasMultipleHousesWithSameAddressFieldSpecified; + } + set { + this.hasMultipleHousesWithSameAddressFieldSpecified = value; + this.RaisePropertyChanged("HasMultipleHousesWithSameAddressSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseOMSTypeBasicCharacteristicts : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private bool usedYearFieldSpecified; + + private int floorCountField; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private OGFData[] oGFDataField; + + private HostelDataType hostelDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UsedYearSpecified { + get { + return this.usedYearFieldSpecified; + } + set { + this.usedYearFieldSpecified = value; + this.RaisePropertyChanged("UsedYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public HostelDataType HostelData { + get { + return this.hostelDataField; + } + set { + this.hostelDataField = value; + this.RaisePropertyChanged("HostelData"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseLivingHouseToUpdate : LivingHouseUpdateOMSType { + + private string transportGUIDField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LivingHouseUpdateOMSType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUpdateOMSType basicCharacteristictsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUpdateOMSType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseBlocks : object, System.ComponentModel.INotifyPropertyChanged { + + private GKN_EGRP_KeyType itemField; + + private importHouseOMSRequestLivingHouseBlocksLivingRoomToCreate[] livingRoomToCreateField; + + private importHouseOMSRequestLivingHouseBlocksLivingRoomToUpdate[] livingRoomToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("BlockToCreate", typeof(importHouseOMSRequestLivingHouseBlocksBlockToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("BlockToUpdate", typeof(importHouseOMSRequestLivingHouseBlocksBlockToUpdate), Order=0)] + public GKN_EGRP_KeyType Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", Order=1)] + public importHouseOMSRequestLivingHouseBlocksLivingRoomToCreate[] LivingRoomToCreate { + get { + return this.livingRoomToCreateField; + } + set { + this.livingRoomToCreateField = value; + this.RaisePropertyChanged("LivingRoomToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", Order=2)] + public importHouseOMSRequestLivingHouseBlocksLivingRoomToUpdate[] LivingRoomToUpdate { + get { + return this.livingRoomToUpdateField; + } + set { + this.livingRoomToUpdateField = value; + this.RaisePropertyChanged("LivingRoomToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseBlocksBlockToCreate : BlockOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseBlocksBlockToUpdate : BlockUpdateOMSType { + + private string transportGUIDField; + + private string blockGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string BlockGUID { + get { + return this.blockGUIDField; + } + set { + this.blockGUIDField = value; + this.RaisePropertyChanged("BlockGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseBlocksLivingRoomToCreate : RoomOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseBlocksLivingRoomToUpdate : RoomUpdateOMSType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseLivingRoomToCreate : RoomOMSType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseOMSRequestLivingHouseLivingRoomToUpdate : RoomUpdateOMSType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseOMSDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSRequest importHouseOMSRequest; + + public importHouseOMSDataRequest() { + } + + public importHouseOMSDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSRequest importHouseOMSRequest) { + this.RequestHeader = RequestHeader; + this.importHouseOMSRequest = importHouseOMSRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseOMSDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importHouseOMSDataResponse() { + } + + public importHouseOMSDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequest : BaseType { + + private importHouseESPRequestApartmentHouse apartmentHouseField; + + private bool inheritMissingValuesField; + + private bool inheritMissingValuesFieldSpecified; + + private string versionField; + + public importHouseESPRequest() { + this.inheritMissingValuesField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public importHouseESPRequestApartmentHouse ApartmentHouse { + get { + return this.apartmentHouseField; + } + set { + this.apartmentHouseField = value; + this.RaisePropertyChanged("ApartmentHouse"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool InheritMissingValues { + get { + return this.inheritMissingValuesField; + } + set { + this.inheritMissingValuesField = value; + this.RaisePropertyChanged("InheritMissingValues"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InheritMissingValuesSpecified { + get { + return this.inheritMissingValuesFieldSpecified; + } + set { + this.inheritMissingValuesFieldSpecified = value; + this.RaisePropertyChanged("InheritMissingValuesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouse : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private importHouseESPRequestApartmentHouseNonResidentialPremiseToCreate[] nonResidentialPremiseToCreateField; + + private importHouseESPRequestApartmentHouseNonResidentialPremiseToUpdate[] nonResidentialPremiseToUpdateField; + + private importHouseESPRequestApartmentHouseEntranceToCreate[] entranceToCreateField; + + private importHouseESPRequestApartmentHouseEntranceToUpdate[] entranceToUpdateField; + + private importHouseESPRequestApartmentHouseResidentialPremises[] residentialPremisesField; + + private importHouseESPRequestApartmentHouseLiftToCreate[] liftToCreateField; + + private importHouseESPRequestApartmentHouseLiftToUpdate[] liftToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToCreate", typeof(importHouseESPRequestApartmentHouseApartmentHouseToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentHouseToUpdate", typeof(importHouseESPRequestApartmentHouseApartmentHouseToUpdate), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToCreate", Order=1)] + public importHouseESPRequestApartmentHouseNonResidentialPremiseToCreate[] NonResidentialPremiseToCreate { + get { + return this.nonResidentialPremiseToCreateField; + } + set { + this.nonResidentialPremiseToCreateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NonResidentialPremiseToUpdate", Order=2)] + public importHouseESPRequestApartmentHouseNonResidentialPremiseToUpdate[] NonResidentialPremiseToUpdate { + get { + return this.nonResidentialPremiseToUpdateField; + } + set { + this.nonResidentialPremiseToUpdateField = value; + this.RaisePropertyChanged("NonResidentialPremiseToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToCreate", Order=3)] + public importHouseESPRequestApartmentHouseEntranceToCreate[] EntranceToCreate { + get { + return this.entranceToCreateField; + } + set { + this.entranceToCreateField = value; + this.RaisePropertyChanged("EntranceToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("EntranceToUpdate", Order=4)] + public importHouseESPRequestApartmentHouseEntranceToUpdate[] EntranceToUpdate { + get { + return this.entranceToUpdateField; + } + set { + this.entranceToUpdateField = value; + this.RaisePropertyChanged("EntranceToUpdate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremises", Order=5)] + public importHouseESPRequestApartmentHouseResidentialPremises[] ResidentialPremises { + get { + return this.residentialPremisesField; + } + set { + this.residentialPremisesField = value; + this.RaisePropertyChanged("ResidentialPremises"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToCreate", Order=6)] + public importHouseESPRequestApartmentHouseLiftToCreate[] LiftToCreate { + get { + return this.liftToCreateField; + } + set { + this.liftToCreateField = value; + this.RaisePropertyChanged("LiftToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LiftToUpdate", Order=7)] + public importHouseESPRequestApartmentHouseLiftToUpdate[] LiftToUpdate { + get { + return this.liftToUpdateField; + } + set { + this.liftToUpdateField = value; + this.RaisePropertyChanged("LiftToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseApartmentHouseToCreate : ApartmentHouseESPType { + + private string transportGUIDField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private ApartmentHouseESPTypeBasicCharacteristicts basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ApartmentHouseESPTypeBasicCharacteristicts BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseESPTypeBasicCharacteristicts : GKN_EGRP_KeyType { + + private string fIASHouseGuidField; + + private decimal totalSquareField; + + private nsiRef stateField; + + private nsiRef lifeCycleStageField; + + private short usedYearField; + + private int floorCountField; + + private OKTMORefType oKTMOField; + + private nsiRef olsonTZField; + + private bool culturalHeritageField; + + private OGFData[] oGFDataField; + + private bool isMunicipalPropertyField; + + private bool isMunicipalPropertyFieldSpecified; + + private bool isRegionPropertyField; + + private bool isRegionPropertyFieldSpecified; + + public ApartmentHouseESPTypeBasicCharacteristicts() { + this.isMunicipalPropertyField = false; + this.isRegionPropertyField = false; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal TotalSquare { + get { + return this.totalSquareField; + } + set { + this.totalSquareField = value; + this.RaisePropertyChanged("TotalSquare"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef State { + get { + return this.stateField; + } + set { + this.stateField = value; + this.RaisePropertyChanged("State"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef LifeCycleStage { + get { + return this.lifeCycleStageField; + } + set { + this.lifeCycleStageField = value; + this.RaisePropertyChanged("LifeCycleStage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public short UsedYear { + get { + return this.usedYearField; + } + set { + this.usedYearField = value; + this.RaisePropertyChanged("UsedYear"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public int FloorCount { + get { + return this.floorCountField; + } + set { + this.floorCountField = value; + this.RaisePropertyChanged("FloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public OKTMORefType OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef OlsonTZ { + get { + return this.olsonTZField; + } + set { + this.olsonTZField = value; + this.RaisePropertyChanged("OlsonTZ"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool CulturalHeritage { + get { + return this.culturalHeritageField; + } + set { + this.culturalHeritageField = value; + this.RaisePropertyChanged("CulturalHeritage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=9)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool IsMunicipalProperty { + get { + return this.isMunicipalPropertyField; + } + set { + this.isMunicipalPropertyField = value; + this.RaisePropertyChanged("IsMunicipalProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsMunicipalPropertySpecified { + get { + return this.isMunicipalPropertyFieldSpecified; + } + set { + this.isMunicipalPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsMunicipalPropertySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool IsRegionProperty { + get { + return this.isRegionPropertyField; + } + set { + this.isRegionPropertyField = value; + this.RaisePropertyChanged("IsRegionProperty"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsRegionPropertySpecified { + get { + return this.isRegionPropertyFieldSpecified; + } + set { + this.isRegionPropertyFieldSpecified = value; + this.RaisePropertyChanged("IsRegionPropertySpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseApartmentHouseToUpdate : ApartmentHouseUpdateESPType { + + private string transportGUIDField; + + private nsiRef houseManagementTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef HouseManagementType { + get { + return this.houseManagementTypeField; + } + set { + this.houseManagementTypeField = value; + this.RaisePropertyChanged("HouseManagementType"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ApartmentHouseUpdateESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private HouseBasicUpdateESPType basicCharacteristictsField; + + private sbyte undergroundFloorCountField; + + private bool undergroundFloorCountFieldSpecified; + + private int minFloorCountField; + + private bool minFloorCountFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public HouseBasicUpdateESPType BasicCharacteristicts { + get { + return this.basicCharacteristictsField; + } + set { + this.basicCharacteristictsField = value; + this.RaisePropertyChanged("BasicCharacteristicts"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public sbyte UndergroundFloorCount { + get { + return this.undergroundFloorCountField; + } + set { + this.undergroundFloorCountField = value; + this.RaisePropertyChanged("UndergroundFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UndergroundFloorCountSpecified { + get { + return this.undergroundFloorCountFieldSpecified; + } + set { + this.undergroundFloorCountFieldSpecified = value; + this.RaisePropertyChanged("UndergroundFloorCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int MinFloorCount { + get { + return this.minFloorCountField; + } + set { + this.minFloorCountField = value; + this.RaisePropertyChanged("MinFloorCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MinFloorCountSpecified { + get { + return this.minFloorCountFieldSpecified; + } + set { + this.minFloorCountFieldSpecified = value; + this.RaisePropertyChanged("MinFloorCountSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseNonResidentialPremiseToCreate : NonResidentialPremisesESPType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseNonResidentialPremiseToUpdate : NonResidentialPremisesUpdateESPType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseEntranceToCreate : EntranceESPType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseEntranceToUpdate : EntranceUpdateESPType { + + private string transportGUIDField; + + private string entranceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string EntranceGUID { + get { + return this.entranceGUIDField; + } + set { + this.entranceGUIDField = value; + this.RaisePropertyChanged("EntranceGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class EntranceUpdateESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private int storeysCountField; + + private bool storeysCountFieldSpecified; + + private short creationYearField; + + private bool creationYearFieldSpecified; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + private bool informationConfirmedField; + + private bool informationConfirmedFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public int StoreysCount { + get { + return this.storeysCountField; + } + set { + this.storeysCountField = value; + this.RaisePropertyChanged("StoreysCount"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StoreysCountSpecified { + get { + return this.storeysCountFieldSpecified; + } + set { + this.storeysCountFieldSpecified = value; + this.RaisePropertyChanged("StoreysCountSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public short CreationYear { + get { + return this.creationYearField; + } + set { + this.creationYearField = value; + this.RaisePropertyChanged("CreationYear"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreationYearSpecified { + get { + return this.creationYearFieldSpecified; + } + set { + this.creationYearFieldSpecified = value; + this.RaisePropertyChanged("CreationYearSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool InformationConfirmed { + get { + return this.informationConfirmedField; + } + set { + this.informationConfirmedField = value; + this.RaisePropertyChanged("InformationConfirmed"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool InformationConfirmedSpecified { + get { + return this.informationConfirmedFieldSpecified; + } + set { + this.informationConfirmedFieldSpecified = value; + this.RaisePropertyChanged("InformationConfirmedSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseResidentialPremises : object, System.ComponentModel.INotifyPropertyChanged { + + private GKN_EGRP_KeyType itemField; + + private importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToCreate[] livingRoomToCreateField; + + private importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] livingRoomToUpdateField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToCreate", typeof(importHouseESPRequestApartmentHouseResidentialPremisesResidentialPremisesToCreate), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ResidentialPremisesToUpdate", typeof(importHouseESPRequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate), Order=0)] + public GKN_EGRP_KeyType Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToCreate", Order=1)] + public importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToCreate[] LivingRoomToCreate { + get { + return this.livingRoomToCreateField; + } + set { + this.livingRoomToCreateField = value; + this.RaisePropertyChanged("LivingRoomToCreate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("LivingRoomToUpdate", Order=2)] + public importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToUpdate[] LivingRoomToUpdate { + get { + return this.livingRoomToUpdateField; + } + set { + this.livingRoomToUpdateField = value; + this.RaisePropertyChanged("LivingRoomToUpdate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseResidentialPremisesResidentialPremisesToCreate : ResidentialPremisesESPType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseResidentialPremisesResidentialPremisesToUpdate : ResidentialPremisesUpdateESPType { + + private string transportGUIDField; + + private string premisesGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PremisesGUID { + get { + return this.premisesGUIDField; + } + set { + this.premisesGUIDField = value; + this.RaisePropertyChanged("PremisesGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToCreate : RoomESPType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseResidentialPremisesLivingRoomToUpdate : RoomUpdateESPType { + + private string transportGUIDField; + + private string livingRoomGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LivingRoomGUID { + get { + return this.livingRoomGUIDField; + } + set { + this.livingRoomGUIDField = value; + this.RaisePropertyChanged("LivingRoomGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseLiftToCreate : LiftESPType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importHouseESPRequestApartmentHouseLiftToUpdate : LiftUpdateESPType { + + private string transportGUIDField; + + private string liftGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string LiftGUID { + get { + return this.liftGUIDField; + } + set { + this.liftGUIDField = value; + this.RaisePropertyChanged("LiftGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class LiftUpdateESPType : object, System.ComponentModel.INotifyPropertyChanged { + + private string entranceNumField; + + private string fIASChildHouseGuidField; + + private string factoryNumField; + + private nsiRef typeField; + + private OGFData[] oGFDataField; + + private nsiRef annulmentReasonField; + + private string annulmentInfoField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string EntranceNum { + get { + return this.entranceNumField; + } + set { + this.entranceNumField = value; + this.RaisePropertyChanged("EntranceNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FIASChildHouseGuid { + get { + return this.fIASChildHouseGuidField; + } + set { + this.fIASChildHouseGuidField = value; + this.RaisePropertyChanged("FIASChildHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FactoryNum { + get { + return this.factoryNumField; + } + set { + this.factoryNumField = value; + this.RaisePropertyChanged("FactoryNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public nsiRef Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OGFData", Order=4)] + public OGFData[] OGFData { + get { + return this.oGFDataField; + } + set { + this.oGFDataField = value; + this.RaisePropertyChanged("OGFData"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public nsiRef AnnulmentReason { + get { + return this.annulmentReasonField; + } + set { + this.annulmentReasonField = value; + this.RaisePropertyChanged("AnnulmentReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string AnnulmentInfo { + get { + return this.annulmentInfoField; + } + set { + this.annulmentInfoField = value; + this.RaisePropertyChanged("AnnulmentInfo"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseESPDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPRequest importHouseESPRequest; + + public importHouseESPDataRequest() { + } + + public importHouseESPDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPRequest importHouseESPRequest) { + this.RequestHeader = RequestHeader; + this.importHouseESPRequest = importHouseESPRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importHouseESPDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importHouseESPDataResponse() { + } + + public importHouseESPDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractRequest : BaseType { + + private importSupplyResourceContractRequestContract[] contractField; + + private string versionField; + + public importSupplyResourceContractRequest() { + this.versionField = "11.3.0.5"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Contract", Order=0)] + public importSupplyResourceContractRequestContract[] Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractRequestContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string itemField; + + private ItemChoiceType26 itemElementNameField; + + private object item1Field; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType26 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnulmentContract", typeof(AnnulmentType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("RollOverContract", typeof(importSupplyResourceContractRequestContractRollOverContract), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("SupplyResourceContract", typeof(SupplyResourceContractType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("TerminateContract", typeof(importSupplyResourceContractRequestContractTerminateContract), Order=3)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType26 { + + /// + ContractGUID, + + /// + ContractRootGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractRequestContractRollOverContract : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime rollOverDateField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime RollOverDate { + get { + return this.rollOverDateField; + } + set { + this.rollOverDateField = value; + this.RaisePropertyChanged("RollOverDate"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private object[] itemsField; + + private ItemsChoiceType25[] itemsElementNameField; + + private SupplyResourceContractTypePeriod periodField; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + private nsiRef[] contractBaseField; + + private object item1Field; + + private bool isPlannedVolumeField; + + private SupplyResourceContractTypePlannedVolumeType plannedVolumeTypeField; + + private bool plannedVolumeTypeFieldSpecified; + + private SupplyResourceContractTypeContractSubject[] contractSubjectField; + + private SupplyResourceContractTypeCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private SupplyResourceContractTypeSpecifyingQualityIndicators specifyingQualityIndicatorsField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private SupplyResourceContractTypeObjectAddress[] objectAddressField; + + private SupplyResourceContractTypeQuality[] qualityField; + + private SupplyResourceContractTypeOtherQualityIndicator[] otherQualityIndicatorField; + + private SupplyResourceContractTypeTemperatureChart[] temperatureChartField; + + private SupplyResourceContractTypeBillingDate billingDateField; + + private SupplyResourceContractTypePaymentDate paymentDateField; + + private SupplyResourceContractTypeProvidingInformationDate providingInformationDateField; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + private bool volumeDependsField; + + private bool volumeDependsFieldSpecified; + + private bool oneTimePaymentField; + + private bool oneTimePaymentFieldSpecified; + + private SupplyResourceContractTypeAccrualProcedure accrualProcedureField; + + private bool accrualProcedureFieldSpecified; + + private SupplyResourceContractTypeTariff[] tariffField; + + private SupplyResourceContractTypeNorm[] normField; + + public SupplyResourceContractType() { + this.indicationsAnyDayField = true; + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IsContract", typeof(SupplyResourceContractTypeIsContract), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IsNotContract", typeof(SupplyResourceContractTypeIsNotContract), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AutomaticRollOverOneYear", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ComptetionDate", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("IndefiniteTerm", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType25[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SupplyResourceContractTypePeriod Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractBase", Order=5)] + public nsiRef[] ContractBase { + get { + return this.contractBaseField; + } + set { + this.contractBaseField = value; + this.RaisePropertyChanged("ContractBase"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingOwner", typeof(SupplyResourceContractTypeApartmentBuildingOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingRepresentativeOwner", typeof(SupplyResourceContractTypeApartmentBuildingRepresentativeOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingSoleOwner", typeof(SupplyResourceContractTypeApartmentBuildingSoleOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseOwner", typeof(SupplyResourceContractTypeLivingHouseOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Offer", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(SupplyResourceContractTypeOrganization), Order=6)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool IsPlannedVolume { + get { + return this.isPlannedVolumeField; + } + set { + this.isPlannedVolumeField = value; + this.RaisePropertyChanged("IsPlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public SupplyResourceContractTypePlannedVolumeType PlannedVolumeType { + get { + return this.plannedVolumeTypeField; + } + set { + this.plannedVolumeTypeField = value; + this.RaisePropertyChanged("PlannedVolumeType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PlannedVolumeTypeSpecified { + get { + return this.plannedVolumeTypeFieldSpecified; + } + set { + this.plannedVolumeTypeFieldSpecified = value; + this.RaisePropertyChanged("PlannedVolumeTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", Order=9)] + public SupplyResourceContractTypeContractSubject[] ContractSubject { + get { + return this.contractSubjectField; + } + set { + this.contractSubjectField = value; + this.RaisePropertyChanged("ContractSubject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public SupplyResourceContractTypeCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public SupplyResourceContractTypeSpecifyingQualityIndicators SpecifyingQualityIndicators { + get { + return this.specifyingQualityIndicatorsField; + } + set { + this.specifyingQualityIndicatorsField = value; + this.RaisePropertyChanged("SpecifyingQualityIndicators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ObjectAddress", Order=13)] + public SupplyResourceContractTypeObjectAddress[] ObjectAddress { + get { + return this.objectAddressField; + } + set { + this.objectAddressField = value; + this.RaisePropertyChanged("ObjectAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Quality", Order=14)] + public SupplyResourceContractTypeQuality[] Quality { + get { + return this.qualityField; + } + set { + this.qualityField = value; + this.RaisePropertyChanged("Quality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OtherQualityIndicator", Order=15)] + public SupplyResourceContractTypeOtherQualityIndicator[] OtherQualityIndicator { + get { + return this.otherQualityIndicatorField; + } + set { + this.otherQualityIndicatorField = value; + this.RaisePropertyChanged("OtherQualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TemperatureChart", Order=16)] + public SupplyResourceContractTypeTemperatureChart[] TemperatureChart { + get { + return this.temperatureChartField; + } + set { + this.temperatureChartField = value; + this.RaisePropertyChanged("TemperatureChart"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public SupplyResourceContractTypeBillingDate BillingDate { + get { + return this.billingDateField; + } + set { + this.billingDateField = value; + this.RaisePropertyChanged("BillingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public SupplyResourceContractTypePaymentDate PaymentDate { + get { + return this.paymentDateField; + } + set { + this.paymentDateField = value; + this.RaisePropertyChanged("PaymentDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public SupplyResourceContractTypeProvidingInformationDate ProvidingInformationDate { + get { + return this.providingInformationDateField; + } + set { + this.providingInformationDateField = value; + this.RaisePropertyChanged("ProvidingInformationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool VolumeDepends { + get { + return this.volumeDependsField; + } + set { + this.volumeDependsField = value; + this.RaisePropertyChanged("VolumeDepends"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VolumeDependsSpecified { + get { + return this.volumeDependsFieldSpecified; + } + set { + this.volumeDependsFieldSpecified = value; + this.RaisePropertyChanged("VolumeDependsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool OneTimePayment { + get { + return this.oneTimePaymentField; + } + set { + this.oneTimePaymentField = value; + this.RaisePropertyChanged("OneTimePayment"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool OneTimePaymentSpecified { + get { + return this.oneTimePaymentFieldSpecified; + } + set { + this.oneTimePaymentFieldSpecified = value; + this.RaisePropertyChanged("OneTimePaymentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public SupplyResourceContractTypeAccrualProcedure AccrualProcedure { + get { + return this.accrualProcedureField; + } + set { + this.accrualProcedureField = value; + this.RaisePropertyChanged("AccrualProcedure"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AccrualProcedureSpecified { + get { + return this.accrualProcedureFieldSpecified; + } + set { + this.accrualProcedureFieldSpecified = value; + this.RaisePropertyChanged("AccrualProcedureSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Tariff", Order=24)] + public SupplyResourceContractTypeTariff[] Tariff { + get { + return this.tariffField; + } + set { + this.tariffField = value; + this.RaisePropertyChanged("Tariff"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Norm", Order=25)] + public SupplyResourceContractTypeNorm[] Norm { + get { + return this.normField; + } + set { + this.normField = value; + this.RaisePropertyChanged("Norm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeIsContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeIsNotContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private bool signingDateFieldSpecified; + + private System.DateTime effectiveDateField; + + private bool effectiveDateFieldSpecified; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SigningDateSpecified { + get { + return this.signingDateFieldSpecified; + } + set { + this.signingDateFieldSpecified = value; + this.RaisePropertyChanged("SigningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EffectiveDateSpecified { + get { + return this.effectiveDateFieldSpecified; + } + set { + this.effectiveDateFieldSpecified = value; + this.RaisePropertyChanged("EffectiveDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType25 { + + /// + AutomaticRollOverOneYear, + + /// + ComptetionDate, + + /// + IndefiniteTerm, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private SupplyResourceContractTypePeriodStart startField; + + private SupplyResourceContractTypePeriodEnd endField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SupplyResourceContractTypePeriodStart Start { + get { + return this.startField; + } + set { + this.startField = value; + this.RaisePropertyChanged("Start"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractTypePeriodEnd End { + get { + return this.endField; + } + set { + this.endField = value; + this.RaisePropertyChanged("End"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypePeriodStart : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte startDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public SupplyResourceContractTypePeriodStart() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypePeriodEnd : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte endDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public SupplyResourceContractTypePeriodEnd() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeApartmentBuildingOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeApartmentBuildingRepresentativeOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeApartmentBuildingSoleOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeLivingHouseOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeOrganization : RegOrgType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypePlannedVolumeType { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeContractSubject : ContractSubjectType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private ContractSubjectTypeServiceType serviceTypeField; + + private ContractSubjectTypeMunicipalResource municipalResourceField; + + private System.DateTime startSupplyDateField; + + private System.DateTime endSupplyDateField; + + private bool endSupplyDateFieldSpecified; + + private ContractSubjectTypePlannedVolume plannedVolumeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public ContractSubjectTypeServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ContractSubjectTypeMunicipalResource MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime StartSupplyDate { + get { + return this.startSupplyDateField; + } + set { + this.startSupplyDateField = value; + this.RaisePropertyChanged("StartSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime EndSupplyDate { + get { + return this.endSupplyDateField; + } + set { + this.endSupplyDateField = value; + this.RaisePropertyChanged("EndSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndSupplyDateSpecified { + get { + return this.endSupplyDateFieldSpecified; + } + set { + this.endSupplyDateFieldSpecified = value; + this.RaisePropertyChanged("EndSupplyDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ContractSubjectTypePlannedVolume PlannedVolume { + get { + return this.plannedVolumeField; + } + set { + this.plannedVolumeField = value; + this.RaisePropertyChanged("PlannedVolume"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectTypeServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectTypeMunicipalResource : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ContractSubjectTypePlannedVolume : object, System.ComponentModel.INotifyPropertyChanged { + + private decimal volumeField; + + private string unitField; + + private string feedingModeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal Volume { + get { + return this.volumeField; + } + set { + this.volumeField = value; + this.RaisePropertyChanged("Volume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string FeedingMode { + get { + return this.feedingModeField; + } + set { + this.feedingModeField = value; + this.RaisePropertyChanged("FeedingMode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeSpecifyingQualityIndicators { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeObjectAddress : ObjectAddressType { + + private string transportGUIDField; + + private SupplyResourceContractTypeObjectAddressPair[] pairField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private SupplyResourceContractTypeObjectAddressPlannedVolume[] plannedVolumeField; + + private SupplyResourceContractTypeObjectAddressCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + public SupplyResourceContractTypeObjectAddress() { + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Pair", Order=1)] + public SupplyResourceContractTypeObjectAddressPair[] Pair { + get { + return this.pairField; + } + set { + this.pairField = value; + this.RaisePropertyChanged("Pair"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVolume", Order=3)] + public SupplyResourceContractTypeObjectAddressPlannedVolume[] PlannedVolume { + get { + return this.plannedVolumeField; + } + set { + this.plannedVolumeField = value; + this.RaisePropertyChanged("PlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public SupplyResourceContractTypeObjectAddressCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeObjectAddressPair : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private System.DateTime startSupplyDateField; + + private System.DateTime endSupplyDateField; + + private bool endSupplyDateFieldSpecified; + + private SupplyResourceContractTypeObjectAddressPairHeatingSystemType heatingSystemTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime StartSupplyDate { + get { + return this.startSupplyDateField; + } + set { + this.startSupplyDateField = value; + this.RaisePropertyChanged("StartSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EndSupplyDate { + get { + return this.endSupplyDateField; + } + set { + this.endSupplyDateField = value; + this.RaisePropertyChanged("EndSupplyDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndSupplyDateSpecified { + get { + return this.endSupplyDateFieldSpecified; + } + set { + this.endSupplyDateFieldSpecified = value; + this.RaisePropertyChanged("EndSupplyDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SupplyResourceContractTypeObjectAddressPairHeatingSystemType HeatingSystemType { + get { + return this.heatingSystemTypeField; + } + set { + this.heatingSystemTypeField = value; + this.RaisePropertyChanged("HeatingSystemType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeObjectAddressPairHeatingSystemType : object, System.ComponentModel.INotifyPropertyChanged { + + private SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeOpenOrNot openOrNotField; + + private SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeCentralizedOrNot centralizedOrNotField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeOpenOrNot OpenOrNot { + get { + return this.openOrNotField; + } + set { + this.openOrNotField = value; + this.RaisePropertyChanged("OpenOrNot"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeCentralizedOrNot CentralizedOrNot { + get { + return this.centralizedOrNotField; + } + set { + this.centralizedOrNotField = value; + this.RaisePropertyChanged("CentralizedOrNot"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeOpenOrNot { + + /// + Opened, + + /// + Closed, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeObjectAddressPairHeatingSystemTypeCentralizedOrNot { + + /// + Centralized, + + /// + Decentralized, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeObjectAddressPlannedVolume : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private decimal volumeField; + + private string unitField; + + private string feedingModeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Volume { + get { + return this.volumeField; + } + set { + this.volumeField = value; + this.RaisePropertyChanged("Volume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FeedingMode { + get { + return this.feedingModeField; + } + set { + this.feedingModeField = value; + this.RaisePropertyChanged("FeedingMode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeObjectAddressCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeQuality : object, System.ComponentModel.INotifyPropertyChanged { + + private string addressObjectKeyField; + + private string pairKeyField; + + private nsiRef qualityIndicatorField; + + private SupplyResourceContractTypeQualityIndicatorValue indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AddressObjectKey { + get { + return this.addressObjectKeyField; + } + set { + this.addressObjectKeyField = value; + this.RaisePropertyChanged("AddressObjectKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef QualityIndicator { + get { + return this.qualityIndicatorField; + } + set { + this.qualityIndicatorField = value; + this.RaisePropertyChanged("QualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SupplyResourceContractTypeQualityIndicatorValue IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeQualityIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeOtherQualityIndicator : object, System.ComponentModel.INotifyPropertyChanged { + + private string addressObjectKeyField; + + private string pairKeyField; + + private string indicatorNameField; + + private object[] itemsField; + + private ItemsChoiceType26[] itemsElementNameField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AddressObjectKey { + get { + return this.addressObjectKeyField; + } + set { + this.addressObjectKeyField = value; + this.RaisePropertyChanged("AddressObjectKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string IndicatorName { + get { + return this.indicatorNameField; + } + set { + this.indicatorNameField = value; + this.RaisePropertyChanged("IndicatorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OKEI", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=3)] + [System.Xml.Serialization.XmlElementAttribute("Correspond", typeof(bool), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("EndRange", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("Number", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("StartRange", typeof(decimal), Order=3)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=4)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType26[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType26 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/base/:OKEI")] + OKEI, + + /// + Correspond, + + /// + EndRange, + + /// + Number, + + /// + StartRange, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeTemperatureChart : object, System.ComponentModel.INotifyPropertyChanged { + + private string addressObjectKeyField; + + private int outsideTemperatureField; + + private decimal flowLineTemperatureField; + + private decimal oppositeLineTemperatureField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AddressObjectKey { + get { + return this.addressObjectKeyField; + } + set { + this.addressObjectKeyField = value; + this.RaisePropertyChanged("AddressObjectKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public int OutsideTemperature { + get { + return this.outsideTemperatureField; + } + set { + this.outsideTemperatureField = value; + this.RaisePropertyChanged("OutsideTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal FlowLineTemperature { + get { + return this.flowLineTemperatureField; + } + set { + this.flowLineTemperatureField = value; + this.RaisePropertyChanged("FlowLineTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal OppositeLineTemperature { + get { + return this.oppositeLineTemperatureField; + } + set { + this.oppositeLineTemperatureField = value; + this.RaisePropertyChanged("OppositeLineTemperature"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeBillingDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractTypeBillingDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractTypeBillingDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeBillingDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypePaymentDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractTypePaymentDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractTypePaymentDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypePaymentDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeProvidingInformationDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractTypeProvidingInformationDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractTypeProvidingInformationDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeProvidingInformationDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractTypeAccrualProcedure { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeTariff : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string pairKeyField; + + private string priceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AddressObjectKey", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ForAllAddressObjects", typeof(bool), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string PriceGUID { + get { + return this.priceGUIDField; + } + set { + this.priceGUIDField = value; + this.RaisePropertyChanged("PriceGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractTypeNorm : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string pairKeyField; + + private string normGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AddressObjectKey", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ForAllAddressObjects", typeof(bool), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string NormGUID { + get { + return this.normGUIDField; + } + set { + this.normGUIDField = value; + this.RaisePropertyChanged("NormGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractRequestContractTerminateContract : TerminateType { + + private nsiRef reasonRefField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public nsiRef ReasonRef { + get { + return this.reasonRefField; + } + set { + this.reasonRefField = value; + this.RaisePropertyChanged("ReasonRef"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractRequest importSupplyResourceContractRequest; + + public importSupplyResourceContractDataRequest() { + } + + public importSupplyResourceContractDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractRequest importSupplyResourceContractRequest) { + this.RequestHeader = RequestHeader; + this.importSupplyResourceContractRequest = importSupplyResourceContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importSupplyResourceContractDataResponse() { + } + + public importSupplyResourceContractDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractRequest : BaseType { + + private object[] itemsField; + + private ItemsChoiceType27[] itemsElementNameField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", typeof(exportSupplyResourceContractRequestContractSubject), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ExportContractRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateEnd", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateStart", typeof(System.DateTime), DataType="date", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType27[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractRequestContractSubject : object, System.ComponentModel.INotifyPropertyChanged { + + private exportSupplyResourceContractRequestContractSubjectServiceType serviceTypeField; + + private nsiRef municipalResourceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportSupplyResourceContractRequestContractSubjectServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractRequestContractSubjectServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType27 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + ContractRootGUID, + + /// + ContractSubject, + + /// + ExportContractRootGUID, + + /// + FIASHouseGuid, + + /// + SigningDateEnd, + + /// + SigningDateStart, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportSupplyResourceContractDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractRequest exportSupplyResourceContractRequest; + + public exportSupplyResourceContractDataRequest() { + } + + public exportSupplyResourceContractDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractRequest exportSupplyResourceContractRequest) { + this.RequestHeader = RequestHeader; + this.exportSupplyResourceContractRequest = exportSupplyResourceContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportSupplyResourceContractDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportSupplyResourceContractDataResponse() { + } + + public exportSupplyResourceContractDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importAccountIndividualServicesRequest : BaseType { + + private object[] itemsField; + + private string versionField; + + public importAccountIndividualServicesRequest() { + this.versionField = "11.0.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DeleteIndividualService", typeof(importAccountIndividualServicesRequestDeleteIndividualService), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IndividualService", typeof(importAccountIndividualServicesRequestIndividualService), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importAccountIndividualServicesRequestDeleteIndividualService : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string accountIndividualServiceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string AccountIndividualServiceGUID { + get { + return this.accountIndividualServiceGUIDField; + } + set { + this.accountIndividualServiceGUIDField = value; + this.RaisePropertyChanged("AccountIndividualServiceGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importAccountIndividualServicesRequestIndividualService : AccountIndividualServiceType { + + private string transportGUIDField; + + private string itemField; + + private ItemChoiceType27 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("AccountIndividualServiceGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType27 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType27 { + + /// + AccountGUID, + + /// + AccountIndividualServiceGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importAccountIndividualServicesRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest importAccountIndividualServicesRequest; + + public importAccountIndividualServicesRequest1() { + } + + public importAccountIndividualServicesRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest importAccountIndividualServicesRequest) { + this.RequestHeader = RequestHeader; + this.importAccountIndividualServicesRequest = importAccountIndividualServicesRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importAccountIndividualServicesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importAccountIndividualServicesResponse() { + } + + public importAccountIndividualServicesResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportAccountIndividualServicesRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType28[] itemsElementNameField; + + private string versionField; + + public exportAccountIndividualServicesRequest() { + this.versionField = "11.0.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccountGuid", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/account-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("AccountIndividualServiceGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType28[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType28 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/account-base/:AccountGuid")] + AccountGuid, + + /// + AccountIndividualServiceGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportAccountIndividualServicesRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest exportAccountIndividualServicesRequest; + + public exportAccountIndividualServicesRequest1() { + } + + public exportAccountIndividualServicesRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest exportAccountIndividualServicesRequest) { + this.RequestHeader = RequestHeader; + this.exportAccountIndividualServicesRequest = exportAccountIndividualServicesRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportAccountIndividualServicesResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportAccountIndividualServicesResponse() { + } + + public exportAccountIndividualServicesResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportSupplyResourceContractObjectAddressRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType29[] itemsElementNameField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ExportObjectGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType29[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType29 { + + /// + ContractGUID, + + /// + ContractRootGUID, + + /// + ExportObjectGUID, + + /// + FIASHouseGuid, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportSupplyResourceContractObjectAddressDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressRequest exportSupplyResourceContractObjectAddressRequest; + + public exportSupplyResourceContractObjectAddressDataRequest() { + } + + public exportSupplyResourceContractObjectAddressDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressRequest exportSupplyResourceContractObjectAddressRequest) { + this.RequestHeader = RequestHeader; + this.exportSupplyResourceContractObjectAddressRequest = exportSupplyResourceContractObjectAddressRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportSupplyResourceContractObjectAddressDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportSupplyResourceContractObjectAddressDataResponse() { + } + + public exportSupplyResourceContractObjectAddressDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequest : BaseType { + + private string itemField; + + private ItemChoiceType28 itemElementNameField; + + private importSupplyResourceContractObjectAddressRequestObjectAddress[] objectAddressField; + + private string versionField; + + public importSupplyResourceContractObjectAddressRequest() { + this.versionField = "11.7.0.3"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType28 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ObjectAddress", Order=2)] + public importSupplyResourceContractObjectAddressRequestObjectAddress[] ObjectAddress { + get { + return this.objectAddressField; + } + set { + this.objectAddressField = value; + this.RaisePropertyChanged("ObjectAddress"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType28 { + + /// + ContractGUID, + + /// + ContractRootGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddress : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string objectGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ObjectGUID { + get { + return this.objectGUIDField; + } + set { + this.objectGUIDField = value; + this.RaisePropertyChanged("ObjectGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DeleteObject", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("LoadObject", typeof(importSupplyResourceContractObjectAddressRequestObjectAddressLoadObject), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObject : ObjectAddressType { + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPair[] pairField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQuality[] qualityField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectOtherQualityIndicator[] otherQualityIndicatorField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTemperatureChart[] temperatureChartField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPlannedVolume[] plannedVolumeField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTariff[] tariffField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectNorm[] normField; + + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObject() { + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Pair", Order=0)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPair[] Pair { + get { + return this.pairField; + } + set { + this.pairField = value; + this.RaisePropertyChanged("Pair"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Quality", Order=2)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQuality[] Quality { + get { + return this.qualityField; + } + set { + this.qualityField = value; + this.RaisePropertyChanged("Quality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OtherQualityIndicator", Order=3)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectOtherQualityIndicator[] OtherQualityIndicator { + get { + return this.otherQualityIndicatorField; + } + set { + this.otherQualityIndicatorField = value; + this.RaisePropertyChanged("OtherQualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TemperatureChart", Order=4)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTemperatureChart[] TemperatureChart { + get { + return this.temperatureChartField; + } + set { + this.temperatureChartField = value; + this.RaisePropertyChanged("TemperatureChart"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PlannedVolume", Order=5)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPlannedVolume[] PlannedVolume { + get { + return this.plannedVolumeField; + } + set { + this.plannedVolumeField = value; + this.RaisePropertyChanged("PlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Tariff", Order=8)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTariff[] Tariff { + get { + return this.tariffField; + } + set { + this.tariffField = value; + this.RaisePropertyChanged("Tariff"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Norm", Order=9)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectNorm[] Norm { + get { + return this.normField; + } + set { + this.normField = value; + this.RaisePropertyChanged("Norm"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPair : ContractSubjectObjectAdressType { + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemType heatingSystemTypeField; + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemType HeatingSystemType { + get { + return this.heatingSystemTypeField; + } + set { + this.heatingSystemTypeField = value; + this.RaisePropertyChanged("HeatingSystemType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemType : object, System.ComponentModel.INotifyPropertyChanged { + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeOpenOrNot openOrNotField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeCentralizedOrNot centralizedOrNotField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeOpenOrNot OpenOrNot { + get { + return this.openOrNotField; + } + set { + this.openOrNotField = value; + this.RaisePropertyChanged("OpenOrNot"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeCentralizedOrNot CentralizedOrNot { + get { + return this.centralizedOrNotField; + } + set { + this.centralizedOrNotField = value; + this.RaisePropertyChanged("CentralizedOrNot"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeOpenOrNot { + + /// + Opened, + + /// + Closed, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPairHeatingSystemTypeCentralizedOrNot { + + /// + Centralized, + + /// + Decentralized, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQuality : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private nsiRef qualityIndicatorField; + + private importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQualityIndicatorValue indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef QualityIndicator { + get { + return this.qualityIndicatorField; + } + set { + this.qualityIndicatorField = value; + this.RaisePropertyChanged("QualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQualityIndicatorValue IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectQualityIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectOtherQualityIndicator : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string indicatorNameField; + + private object[] itemsField; + + private ItemsChoiceType30[] itemsElementNameField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string IndicatorName { + get { + return this.indicatorNameField; + } + set { + this.indicatorNameField = value; + this.RaisePropertyChanged("IndicatorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OKEI", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Correspond", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("EndRange", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Number", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("StartRange", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=3)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType30[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType30 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/base/:OKEI")] + OKEI, + + /// + Correspond, + + /// + EndRange, + + /// + Number, + + /// + StartRange, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTemperatureChart : object, System.ComponentModel.INotifyPropertyChanged { + + private int outsideTemperatureField; + + private decimal flowLineTemperatureField; + + private decimal oppositeLineTemperatureField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public int OutsideTemperature { + get { + return this.outsideTemperatureField; + } + set { + this.outsideTemperatureField = value; + this.RaisePropertyChanged("OutsideTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal FlowLineTemperature { + get { + return this.flowLineTemperatureField; + } + set { + this.flowLineTemperatureField = value; + this.RaisePropertyChanged("FlowLineTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal OppositeLineTemperature { + get { + return this.oppositeLineTemperatureField; + } + set { + this.oppositeLineTemperatureField = value; + this.RaisePropertyChanged("OppositeLineTemperature"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectPlannedVolume : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private decimal volumeField; + + private string unitField; + + private string feedingModeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Volume { + get { + return this.volumeField; + } + set { + this.volumeField = value; + this.RaisePropertyChanged("Volume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("Unit"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string FeedingMode { + get { + return this.feedingModeField; + } + set { + this.feedingModeField = value; + this.RaisePropertyChanged("FeedingMode"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectTariff : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string priceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PriceGUID { + get { + return this.priceGUIDField; + } + set { + this.priceGUIDField = value; + this.RaisePropertyChanged("PriceGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractObjectAddressRequestObjectAddressLoadObjectNorm : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string normGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NormGUID { + get { + return this.normGUIDField; + } + set { + this.normGUIDField = value; + this.RaisePropertyChanged("NormGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractObjectAddressDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressRequest importSupplyResourceContractObjectAddressRequest; + + public importSupplyResourceContractObjectAddressDataRequest() { + } + + public importSupplyResourceContractObjectAddressDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressRequest importSupplyResourceContractObjectAddressRequest) { + this.RequestHeader = RequestHeader; + this.importSupplyResourceContractObjectAddressRequest = importSupplyResourceContractObjectAddressRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractObjectAddressDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importSupplyResourceContractObjectAddressDataResponse() { + } + + public importSupplyResourceContractObjectAddressDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractProjectRequest : BaseType { + + private importSupplyResourceContractProjectRequestContract[] contractField; + + private string versionField; + + public importSupplyResourceContractProjectRequest() { + this.versionField = "11.7.0.3"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Contract", Order=0)] + public importSupplyResourceContractProjectRequestContract[] Contract { + get { + return this.contractField; + } + set { + this.contractField = value; + this.RaisePropertyChanged("Contract"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importSupplyResourceContractProjectRequestContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string itemField; + + private ItemChoiceType29 itemElementNameField; + + private object item1Field; + + private Item1ChoiceType10 item1ElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType29 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractProject", typeof(SupplyResourceContractProjectType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("DeleteContractProject", typeof(bool), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("PlacingContractProject", typeof(bool), Order=3)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("Item1ElementName")] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public Item1ChoiceType10 Item1ElementName { + get { + return this.item1ElementNameField; + } + set { + this.item1ElementNameField = value; + this.RaisePropertyChanged("Item1ElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType29 { + + /// + ContractGUID, + + /// + ContractRootGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private object[] itemsField; + + private ItemsChoiceType31[] itemsElementNameField; + + private SupplyResourceContractProjectTypePeriod periodField; + + private bool indicationsAnyDayField; + + private bool indicationsAnyDayFieldSpecified; + + private nsiRef[] contractBaseField; + + private object item1Field; + + private bool isPlannedVolumeField; + + private SupplyResourceContractProjectTypePlannedVolumeType plannedVolumeTypeField; + + private bool plannedVolumeTypeFieldSpecified; + + private SupplyResourceContractProjectTypeContractSubject[] contractSubjectField; + + private SupplyResourceContractProjectTypeCountingResource countingResourceField; + + private bool countingResourceFieldSpecified; + + private SupplyResourceContractProjectTypeSpecifyingQualityIndicators specifyingQualityIndicatorsField; + + private bool noConnectionToWaterSupplyField; + + private bool noConnectionToWaterSupplyFieldSpecified; + + private SupplyResourceContractProjectTypeQuality[] qualityField; + + private SupplyResourceContractProjectTypeOtherQualityIndicator[] otherQualityIndicatorField; + + private SupplyResourceContractProjectTypeTemperatureChart[] temperatureChartField; + + private SupplyResourceContractProjectTypeBillingDate billingDateField; + + private SupplyResourceContractProjectTypePaymentDate paymentDateField; + + private SupplyResourceContractProjectTypeProvidingInformationDate providingInformationDateField; + + private bool meteringDeviceInformationField; + + private bool meteringDeviceInformationFieldSpecified; + + private bool volumeDependsField; + + private bool volumeDependsFieldSpecified; + + private bool oneTimePaymentField; + + private bool oneTimePaymentFieldSpecified; + + private SupplyResourceContractProjectTypeAccrualProcedure accrualProcedureField; + + private bool accrualProcedureFieldSpecified; + + private SupplyResourceContractProjectTypeRegionalSettings regionalSettingsField; + + public SupplyResourceContractProjectType() { + this.indicationsAnyDayField = true; + this.noConnectionToWaterSupplyField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("IsContract", typeof(SupplyResourceContractProjectTypeIsContract), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("IsNotContract", typeof(SupplyResourceContractProjectTypeIsNotContract), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AutomaticRollOverOneYear", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ComptetionDate", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("IndefiniteTerm", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType31[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public SupplyResourceContractProjectTypePeriod Period { + get { + return this.periodField; + } + set { + this.periodField = value; + this.RaisePropertyChanged("Period"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool IndicationsAnyDay { + get { + return this.indicationsAnyDayField; + } + set { + this.indicationsAnyDayField = value; + this.RaisePropertyChanged("IndicationsAnyDay"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IndicationsAnyDaySpecified { + get { + return this.indicationsAnyDayFieldSpecified; + } + set { + this.indicationsAnyDayFieldSpecified = value; + this.RaisePropertyChanged("IndicationsAnyDaySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractBase", Order=5)] + public nsiRef[] ContractBase { + get { + return this.contractBaseField; + } + set { + this.contractBaseField = value; + this.RaisePropertyChanged("ContractBase"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingOwner", typeof(SupplyResourceContractProjectTypeApartmentBuildingOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingRepresentativeOwner", typeof(SupplyResourceContractProjectTypeApartmentBuildingRepresentativeOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("ApartmentBuildingSoleOwner", typeof(SupplyResourceContractProjectTypeApartmentBuildingSoleOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("LivingHouseOwner", typeof(SupplyResourceContractProjectTypeLivingHouseOwner), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Offer", typeof(bool), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(SupplyResourceContractProjectTypeOrganization), Order=6)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool IsPlannedVolume { + get { + return this.isPlannedVolumeField; + } + set { + this.isPlannedVolumeField = value; + this.RaisePropertyChanged("IsPlannedVolume"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public SupplyResourceContractProjectTypePlannedVolumeType PlannedVolumeType { + get { + return this.plannedVolumeTypeField; + } + set { + this.plannedVolumeTypeField = value; + this.RaisePropertyChanged("PlannedVolumeType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PlannedVolumeTypeSpecified { + get { + return this.plannedVolumeTypeFieldSpecified; + } + set { + this.plannedVolumeTypeFieldSpecified = value; + this.RaisePropertyChanged("PlannedVolumeTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", Order=9)] + public SupplyResourceContractProjectTypeContractSubject[] ContractSubject { + get { + return this.contractSubjectField; + } + set { + this.contractSubjectField = value; + this.RaisePropertyChanged("ContractSubject"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public SupplyResourceContractProjectTypeCountingResource CountingResource { + get { + return this.countingResourceField; + } + set { + this.countingResourceField = value; + this.RaisePropertyChanged("CountingResource"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CountingResourceSpecified { + get { + return this.countingResourceFieldSpecified; + } + set { + this.countingResourceFieldSpecified = value; + this.RaisePropertyChanged("CountingResourceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public SupplyResourceContractProjectTypeSpecifyingQualityIndicators SpecifyingQualityIndicators { + get { + return this.specifyingQualityIndicatorsField; + } + set { + this.specifyingQualityIndicatorsField = value; + this.RaisePropertyChanged("SpecifyingQualityIndicators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool NoConnectionToWaterSupply { + get { + return this.noConnectionToWaterSupplyField; + } + set { + this.noConnectionToWaterSupplyField = value; + this.RaisePropertyChanged("NoConnectionToWaterSupply"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NoConnectionToWaterSupplySpecified { + get { + return this.noConnectionToWaterSupplyFieldSpecified; + } + set { + this.noConnectionToWaterSupplyFieldSpecified = value; + this.RaisePropertyChanged("NoConnectionToWaterSupplySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Quality", Order=13)] + public SupplyResourceContractProjectTypeQuality[] Quality { + get { + return this.qualityField; + } + set { + this.qualityField = value; + this.RaisePropertyChanged("Quality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OtherQualityIndicator", Order=14)] + public SupplyResourceContractProjectTypeOtherQualityIndicator[] OtherQualityIndicator { + get { + return this.otherQualityIndicatorField; + } + set { + this.otherQualityIndicatorField = value; + this.RaisePropertyChanged("OtherQualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TemperatureChart", Order=15)] + public SupplyResourceContractProjectTypeTemperatureChart[] TemperatureChart { + get { + return this.temperatureChartField; + } + set { + this.temperatureChartField = value; + this.RaisePropertyChanged("TemperatureChart"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public SupplyResourceContractProjectTypeBillingDate BillingDate { + get { + return this.billingDateField; + } + set { + this.billingDateField = value; + this.RaisePropertyChanged("BillingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public SupplyResourceContractProjectTypePaymentDate PaymentDate { + get { + return this.paymentDateField; + } + set { + this.paymentDateField = value; + this.RaisePropertyChanged("PaymentDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public SupplyResourceContractProjectTypeProvidingInformationDate ProvidingInformationDate { + get { + return this.providingInformationDateField; + } + set { + this.providingInformationDateField = value; + this.RaisePropertyChanged("ProvidingInformationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool MeteringDeviceInformation { + get { + return this.meteringDeviceInformationField; + } + set { + this.meteringDeviceInformationField = value; + this.RaisePropertyChanged("MeteringDeviceInformation"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool MeteringDeviceInformationSpecified { + get { + return this.meteringDeviceInformationFieldSpecified; + } + set { + this.meteringDeviceInformationFieldSpecified = value; + this.RaisePropertyChanged("MeteringDeviceInformationSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool VolumeDepends { + get { + return this.volumeDependsField; + } + set { + this.volumeDependsField = value; + this.RaisePropertyChanged("VolumeDepends"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VolumeDependsSpecified { + get { + return this.volumeDependsFieldSpecified; + } + set { + this.volumeDependsFieldSpecified = value; + this.RaisePropertyChanged("VolumeDependsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool OneTimePayment { + get { + return this.oneTimePaymentField; + } + set { + this.oneTimePaymentField = value; + this.RaisePropertyChanged("OneTimePayment"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool OneTimePaymentSpecified { + get { + return this.oneTimePaymentFieldSpecified; + } + set { + this.oneTimePaymentFieldSpecified = value; + this.RaisePropertyChanged("OneTimePaymentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public SupplyResourceContractProjectTypeAccrualProcedure AccrualProcedure { + get { + return this.accrualProcedureField; + } + set { + this.accrualProcedureField = value; + this.RaisePropertyChanged("AccrualProcedure"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AccrualProcedureSpecified { + get { + return this.accrualProcedureFieldSpecified; + } + set { + this.accrualProcedureFieldSpecified = value; + this.RaisePropertyChanged("AccrualProcedureSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public SupplyResourceContractProjectTypeRegionalSettings RegionalSettings { + get { + return this.regionalSettingsField; + } + set { + this.regionalSettingsField = value; + this.RaisePropertyChanged("RegionalSettings"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeIsContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private System.DateTime effectiveDateField; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeIsNotContract : object, System.ComponentModel.INotifyPropertyChanged { + + private string contractNumberField; + + private System.DateTime signingDateField; + + private bool signingDateFieldSpecified; + + private System.DateTime effectiveDateField; + + private bool effectiveDateFieldSpecified; + + private AttachmentType[] contractAttachmentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ContractNumber { + get { + return this.contractNumberField; + } + set { + this.contractNumberField = value; + this.RaisePropertyChanged("ContractNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime SigningDate { + get { + return this.signingDateField; + } + set { + this.signingDateField = value; + this.RaisePropertyChanged("SigningDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SigningDateSpecified { + get { + return this.signingDateFieldSpecified; + } + set { + this.signingDateFieldSpecified = value; + this.RaisePropertyChanged("SigningDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime EffectiveDate { + get { + return this.effectiveDateField; + } + set { + this.effectiveDateField = value; + this.RaisePropertyChanged("EffectiveDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EffectiveDateSpecified { + get { + return this.effectiveDateFieldSpecified; + } + set { + this.effectiveDateFieldSpecified = value; + this.RaisePropertyChanged("EffectiveDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractAttachment", Order=3)] + public AttachmentType[] ContractAttachment { + get { + return this.contractAttachmentField; + } + set { + this.contractAttachmentField = value; + this.RaisePropertyChanged("ContractAttachment"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType31 { + + /// + AutomaticRollOverOneYear, + + /// + ComptetionDate, + + /// + IndefiniteTerm, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypePeriod : object, System.ComponentModel.INotifyPropertyChanged { + + private SupplyResourceContractProjectTypePeriodStart startField; + + private SupplyResourceContractProjectTypePeriodEnd endField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SupplyResourceContractProjectTypePeriodStart Start { + get { + return this.startField; + } + set { + this.startField = value; + this.RaisePropertyChanged("Start"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractProjectTypePeriodEnd End { + get { + return this.endField; + } + set { + this.endField = value; + this.RaisePropertyChanged("End"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypePeriodStart : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte startDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public SupplyResourceContractProjectTypePeriodStart() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypePeriodEnd : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte endDateField; + + private bool nextMonthField; + + private bool nextMonthFieldSpecified; + + public SupplyResourceContractProjectTypePeriodEnd() { + this.nextMonthField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool NextMonth { + get { + return this.nextMonthField; + } + set { + this.nextMonthField = value; + this.RaisePropertyChanged("NextMonth"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NextMonthSpecified { + get { + return this.nextMonthFieldSpecified; + } + set { + this.nextMonthFieldSpecified = value; + this.RaisePropertyChanged("NextMonthSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeApartmentBuildingOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeApartmentBuildingRepresentativeOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeApartmentBuildingSoleOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeLivingHouseOwner : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ind", typeof(DRSOIndType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NoData", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RegOrg", typeof(DRSORegOrgType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeOrganization : RegOrgType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypePlannedVolumeType { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeContractSubject : ContractSubjectType { + + private string transportGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypeCountingResource { + + /// + R, + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypeSpecifyingQualityIndicators { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeQuality : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private nsiRef qualityIndicatorField; + + private SupplyResourceContractProjectTypeQualityIndicatorValue indicatorValueField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef QualityIndicator { + get { + return this.qualityIndicatorField; + } + set { + this.qualityIndicatorField = value; + this.RaisePropertyChanged("QualityIndicator"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public SupplyResourceContractProjectTypeQualityIndicatorValue IndicatorValue { + get { + return this.indicatorValueField; + } + set { + this.indicatorValueField = value; + this.RaisePropertyChanged("IndicatorValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeQualityIndicatorValue : IndicatorValueType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeOtherQualityIndicator : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string indicatorNameField; + + private object[] itemsField; + + private ItemsChoiceType32[] itemsElementNameField; + + private string additionalInformationField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string IndicatorName { + get { + return this.indicatorNameField; + } + set { + this.indicatorNameField = value; + this.RaisePropertyChanged("IndicatorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OKEI", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Correspond", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("EndRange", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Number", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("StartRange", typeof(decimal), Order=2)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=3)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType32[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string AdditionalInformation { + get { + return this.additionalInformationField; + } + set { + this.additionalInformationField = value; + this.RaisePropertyChanged("AdditionalInformation"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType32 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/base/:OKEI")] + OKEI, + + /// + Correspond, + + /// + EndRange, + + /// + Number, + + /// + StartRange, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeTemperatureChart : object, System.ComponentModel.INotifyPropertyChanged { + + private int outsideTemperatureField; + + private decimal flowLineTemperatureField; + + private decimal oppositeLineTemperatureField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public int OutsideTemperature { + get { + return this.outsideTemperatureField; + } + set { + this.outsideTemperatureField = value; + this.RaisePropertyChanged("OutsideTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal FlowLineTemperature { + get { + return this.flowLineTemperatureField; + } + set { + this.flowLineTemperatureField = value; + this.RaisePropertyChanged("FlowLineTemperature"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal OppositeLineTemperature { + get { + return this.oppositeLineTemperatureField; + } + set { + this.oppositeLineTemperatureField = value; + this.RaisePropertyChanged("OppositeLineTemperature"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeBillingDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractProjectTypeBillingDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractProjectTypeBillingDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypeBillingDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypePaymentDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractProjectTypePaymentDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractProjectTypePaymentDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypePaymentDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeProvidingInformationDate : object, System.ComponentModel.INotifyPropertyChanged { + + private sbyte dateField; + + private SupplyResourceContractProjectTypeProvidingInformationDateDateType dateTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SupplyResourceContractProjectTypeProvidingInformationDateDateType DateType { + get { + return this.dateTypeField; + } + set { + this.dateTypeField = value; + this.RaisePropertyChanged("DateType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypeProvidingInformationDateDateType { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum SupplyResourceContractProjectTypeAccrualProcedure { + + /// + D, + + /// + O, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeRegionalSettings : object, System.ComponentModel.INotifyPropertyChanged { + + private RegionType regionField; + + private SupplyResourceContractProjectTypeRegionalSettingsTariff[] tariffField; + + private SupplyResourceContractProjectTypeRegionalSettingsNorm[] normField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RegionType Region { + get { + return this.regionField; + } + set { + this.regionField = value; + this.RaisePropertyChanged("Region"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Tariff", Order=1)] + public SupplyResourceContractProjectTypeRegionalSettingsTariff[] Tariff { + get { + return this.tariffField; + } + set { + this.tariffField = value; + this.RaisePropertyChanged("Tariff"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Norm", Order=2)] + public SupplyResourceContractProjectTypeRegionalSettingsNorm[] Norm { + get { + return this.normField; + } + set { + this.normField = value; + this.RaisePropertyChanged("Norm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class RegionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeRegionalSettingsTariff : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string priceGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string PriceGUID { + get { + return this.priceGUIDField; + } + set { + this.priceGUIDField = value; + this.RaisePropertyChanged("PriceGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class SupplyResourceContractProjectTypeRegionalSettingsNorm : object, System.ComponentModel.INotifyPropertyChanged { + + private string pairKeyField; + + private string normGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string PairKey { + get { + return this.pairKeyField; + } + set { + this.pairKeyField = value; + this.RaisePropertyChanged("PairKey"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NormGUID { + get { + return this.normGUIDField; + } + set { + this.normGUIDField = value; + this.RaisePropertyChanged("NormGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum Item1ChoiceType10 { + + /// + ContractProject, + + /// + DeleteContractProject, + + /// + PlacingContractProject, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractProjectDataRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectRequest importSupplyResourceContractProjectRequest; + + public importSupplyResourceContractProjectDataRequest() { + } + + public importSupplyResourceContractProjectDataRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectRequest importSupplyResourceContractProjectRequest) { + this.RequestHeader = RequestHeader; + this.importSupplyResourceContractProjectRequest = importSupplyResourceContractProjectRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importSupplyResourceContractProjectDataResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importSupplyResourceContractProjectDataResponse() { + } + + public importSupplyResourceContractProjectDataResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISRequestHeader : HeaderType { + + private ISCreator[] iSCreatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ISCreator", Order=0)] + public ISCreator[] ISCreator { + get { + return this.iSCreatorField; + } + set { + this.iSCreatorField = value; + this.RaisePropertyChanged("ISCreator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportRolloverStatusCAChRequest : BaseType { + + private System.DateTime dateToField; + + private System.DateTime dateFromField; + + private string[] orgPPAGUIDField; + + private string versionField; + + public exportRolloverStatusCAChRequest() { + this.versionField = "11.12.0.7"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime DateTo { + get { + return this.dateToField; + } + set { + this.dateToField = value; + this.RaisePropertyChanged("DateTo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime DateFrom { + get { + return this.dateFromField; + } + set { + this.dateFromField = value; + this.RaisePropertyChanged("DateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=2)] + public string[] orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportRolloverStatusCAChRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest exportRolloverStatusCAChRequest; + + public exportRolloverStatusCAChRequest1() { + } + + public exportRolloverStatusCAChRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest exportRolloverStatusCAChRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportRolloverStatusCAChRequest = exportRolloverStatusCAChRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportRolloverStatusCAChResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportRolloverStatusCAChResponse() { + } + + public exportRolloverStatusCAChResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractRequest : BaseType { + + private string nextPageContractRootGUIDField; + + private string nextPageObjectGUIDField; + + private object[] itemsField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string NextPageContractRootGUID { + get { + return this.nextPageContractRootGUIDField; + } + set { + this.nextPageContractRootGUIDField = value; + this.RaisePropertyChanged("NextPageContractRootGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string NextPageObjectGUID { + get { + return this.nextPageObjectGUIDField; + } + set { + this.nextPageObjectGUIDField = value; + this.RaisePropertyChanged("NextPageObjectGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Criteria", typeof(exportBriefSupplyResourceContractRequestCriteria), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Organization", typeof(RegOrgType), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractRequestCriteria : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private object[] itemsField; + + private ItemsChoiceType33[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractSubject", typeof(exportBriefSupplyResourceContractRequestCriteriaContractSubject), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateEnd", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateStart", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType33[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractRequestCriteriaContractSubject : object, System.ComponentModel.INotifyPropertyChanged { + + private exportBriefSupplyResourceContractRequestCriteriaContractSubjectServiceType serviceTypeField; + + private nsiRef municipalResourceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public exportBriefSupplyResourceContractRequestCriteriaContractSubjectServiceType ServiceType { + get { + return this.serviceTypeField; + } + set { + this.serviceTypeField = value; + this.RaisePropertyChanged("ServiceType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public nsiRef MunicipalResource { + get { + return this.municipalResourceField; + } + set { + this.municipalResourceField = value; + this.RaisePropertyChanged("MunicipalResource"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSupplyResourceContractRequestCriteriaContractSubjectServiceType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType33 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + ContractRootGUID, + + /// + ContractSubject, + + /// + SigningDateEnd, + + /// + SigningDateStart, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefSupplyResourceContractRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest exportBriefSupplyResourceContractRequest; + + public exportBriefSupplyResourceContractRequest1() { + } + + public exportBriefSupplyResourceContractRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest exportBriefSupplyResourceContractRequest) { + this.RequestHeader = RequestHeader; + this.exportBriefSupplyResourceContractRequest = exportBriefSupplyResourceContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefSupplyResourceContractResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportBriefSupplyResourceContractResponse() { + } + + public exportBriefSupplyResourceContractResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSocialHireContractRequest : BaseType { + + private exportBriefSocialHireContractRequestCriteria[] criteriaField; + + private string versionField; + + public exportBriefSocialHireContractRequest() { + this.versionField = "11.14.0.2"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Criteria", Order=0)] + public exportBriefSocialHireContractRequestCriteria[] Criteria { + get { + return this.criteriaField; + } + set { + this.criteriaField = value; + this.RaisePropertyChanged("Criteria"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefSocialHireContractRequestCriteria : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGuidField; + + private object[] itemsField; + + private ItemsChoiceType34[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ContractGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractNumber", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ContractRootGUID", typeof(string), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateEnd", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("SigningDateStart", typeof(System.DateTime), DataType="date", Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Type", typeof(exportBriefSocialHireContractRequestCriteriaType), Order=1)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=2)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType34[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum exportBriefSocialHireContractRequestCriteriaType { + + /// + D, + + /// + M, + + /// + S, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType34 { + + /// + ContractGUID, + + /// + ContractNumber, + + /// + ContractRootGUID, + + /// + SigningDateEnd, + + /// + SigningDateStart, + + /// + Type, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefSocialHireContractRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest exportBriefSocialHireContractRequest; + + public exportBriefSocialHireContractRequest1() { + } + + public exportBriefSocialHireContractRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest exportBriefSocialHireContractRequest) { + this.RequestHeader = RequestHeader; + this.exportBriefSocialHireContractRequest = exportBriefSocialHireContractRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefSocialHireContractResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportBriefSocialHireContractResponse() { + } + + public exportBriefSocialHireContractResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class demolishHouseRequest { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Name="demolishHouseRequest", Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.DemolishHouseRequestType demolishHouseRequest1; + + public demolishHouseRequest() { + } + + public demolishHouseRequest(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.DemolishHouseRequestType demolishHouseRequest1) { + this.RequestHeader = RequestHeader; + this.demolishHouseRequest1 = demolishHouseRequest1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class demolishHouseResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public demolishHouseResponse() { + } + + public demolishHouseResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefBasicHouseRequest : BaseType { + + private ExportBriefBasicHouseRequestType[] requestItemField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("RequestItem", Order=0)] + public ExportBriefBasicHouseRequestType[] RequestItem { + get { + return this.requestItemField; + } + set { + this.requestItemField = value; + this.RaisePropertyChanged("RequestItem"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportBriefBasicHouseRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private ExportBriefBasicCriteriaType criteriaField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public ExportBriefBasicCriteriaType Criteria { + get { + return this.criteriaField; + } + set { + this.criteriaField = value; + this.RaisePropertyChanged("Criteria"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportBriefBasicCriteriaType : object, System.ComponentModel.INotifyPropertyChanged { + + private string itemField; + + private ItemChoiceType30 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("BlockUniqueNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("HouseUniqueNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("LivingRoomUniqueNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PremisesUniqueNumber", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType30 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType30 { + + /// + BlockUniqueNumber, + + /// + FIASHouseGuid, + + /// + HouseUniqueNumber, + + /// + LivingRoomUniqueNumber, + + /// + PremisesUniqueNumber, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefBasicHouseRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest exportBriefBasicHouseRequest; + + public exportBriefBasicHouseRequest1() { + } + + public exportBriefBasicHouseRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest exportBriefBasicHouseRequest) { + this.RequestHeader = RequestHeader; + this.exportBriefBasicHouseRequest = exportBriefBasicHouseRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefBasicHouseResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportBriefBasicHouseResponse() { + } + + public exportBriefBasicHouseResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefLivingHouseRequest : BaseType { + + private ExportBriefLivingHouseRequestType[] requestItemField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute("RequestItem", Order=0)] + public ExportBriefLivingHouseRequestType[] RequestItem { + get { + return this.requestItemField; + } + set { + this.requestItemField = value; + this.RaisePropertyChanged("RequestItem"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExportBriefLivingHouseRequestType : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private string houseGuidField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string HouseGuid { + get { + return this.houseGuidField; + } + set { + this.houseGuidField = value; + this.RaisePropertyChanged("HouseGuid"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefLivingHouseRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest exportBriefLivingHouseRequest; + + public exportBriefLivingHouseRequest1() { + } + + public exportBriefLivingHouseRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest exportBriefLivingHouseRequest) { + this.RequestHeader = RequestHeader; + this.exportBriefLivingHouseRequest = exportBriefLivingHouseRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefLivingHouseResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportBriefLivingHouseResponse() { + } + + public exportBriefLivingHouseResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportBriefApartmentHouseRequest : BaseType { + + private string houseGuidField; + + private string versionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string HouseGuid { + get { + return this.houseGuidField; + } + set { + this.houseGuidField = value; + this.RaisePropertyChanged("HouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefApartmentHouseRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest exportBriefApartmentHouseRequest; + + public exportBriefApartmentHouseRequest1() { + } + + public exportBriefApartmentHouseRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest exportBriefApartmentHouseRequest) { + this.RequestHeader = RequestHeader; + this.exportBriefApartmentHouseRequest = exportBriefApartmentHouseRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportBriefApartmentHouseResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportBriefApartmentHouseResponse() { + } + + public exportBriefApartmentHouseResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importExternalVotingProtocolRequest : BaseType { + + private string transportGUIDField; + + private string messageGUIDField; + + private ExternalVotingProtocolType externalVotingProtocolField; + + private string versionField; + + public importExternalVotingProtocolRequest() { + this.versionField = "13.1.8.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public ExternalVotingProtocolType ExternalVotingProtocol { + get { + return this.externalVotingProtocolField; + } + set { + this.externalVotingProtocolField = value; + this.RaisePropertyChanged("ExternalVotingProtocol"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExternalVotingProtocolType : object, System.ComponentModel.INotifyPropertyChanged { + + private string protocolNumField; + + private System.DateTime protocolDateField; + + private ExternalVotingProtocolTypeMeetingEligibility meetingEligibilityField; + + private ExternalVotingProtocolTypeDecisionList[] decisionListField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ProtocolNum { + get { + return this.protocolNumField; + } + set { + this.protocolNumField = value; + this.RaisePropertyChanged("ProtocolNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime ProtocolDate { + get { + return this.protocolDateField; + } + set { + this.protocolDateField = value; + this.RaisePropertyChanged("ProtocolDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public ExternalVotingProtocolTypeMeetingEligibility MeetingEligibility { + get { + return this.meetingEligibilityField; + } + set { + this.meetingEligibilityField = value; + this.RaisePropertyChanged("MeetingEligibility"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionList", Order=3)] + public ExternalVotingProtocolTypeDecisionList[] DecisionList { + get { + return this.decisionListField; + } + set { + this.decisionListField = value; + this.RaisePropertyChanged("DecisionList"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=4)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExternalVotingProtocolTypeMeetingEligibility { + + /// + C, + + /// + N, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class ExternalVotingProtocolTypeDecisionList : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private decimal agreeField; + + private bool agreeFieldSpecified; + + private decimal againstField; + + private bool againstFieldSpecified; + + private decimal abstentField; + + private bool abstentFieldSpecified; + + private ExternalVotingProtocolTypeDecisionListVotingResume votingResumeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public decimal Agree { + get { + return this.agreeField; + } + set { + this.agreeField = value; + this.RaisePropertyChanged("Agree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgreeSpecified { + get { + return this.agreeFieldSpecified; + } + set { + this.agreeFieldSpecified = value; + this.RaisePropertyChanged("AgreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public decimal Against { + get { + return this.againstField; + } + set { + this.againstField = value; + this.RaisePropertyChanged("Against"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AgainstSpecified { + get { + return this.againstFieldSpecified; + } + set { + this.againstFieldSpecified = value; + this.RaisePropertyChanged("AgainstSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public decimal Abstent { + get { + return this.abstentField; + } + set { + this.abstentField = value; + this.RaisePropertyChanged("Abstent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AbstentSpecified { + get { + return this.abstentFieldSpecified; + } + set { + this.abstentFieldSpecified = value; + this.RaisePropertyChanged("AbstentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public ExternalVotingProtocolTypeDecisionListVotingResume VotingResume { + get { + return this.votingResumeField; + } + set { + this.votingResumeField = value; + this.RaisePropertyChanged("VotingResume"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public enum ExternalVotingProtocolTypeDecisionListVotingResume { + + /// + M, + + /// + N, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importExternalVotingProtocolRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest importExternalVotingProtocolRequest; + + public importExternalVotingProtocolRequest1() { + } + + public importExternalVotingProtocolRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest importExternalVotingProtocolRequest) { + this.RequestHeader = RequestHeader; + this.importExternalVotingProtocolRequest = importExternalVotingProtocolRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importExternalVotingProtocolResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importExternalVotingProtocolResponse() { + } + + public importExternalVotingProtocolResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importVotingMessageRequest : BaseType { + + private string transportGUIDField; + + private string messageGUIDField; + + private object itemField; + + private string versionField; + + public importVotingMessageRequest() { + this.versionField = "13.1.8.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Annulment", typeof(AnnulmentProtocolType), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("Refuse", typeof(bool), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("VotingMessage", typeof(MessageType), Order=2)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fIASHouseGUIDField; + + private RegOrgType organizationGuidField; + + private string messageNumField; + + private System.DateTime messageDateField; + + private bool itemField; + + private ItemChoiceType31 itemElementNameField; + + private object item1Field; + + private MeetingTypeType meetingTypeField; + + private VoteInitiators[] voteInitiatorsField; + + private MessageTypeDecisionList[] decisionListField; + + private string modificationReasonField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FIASHouseGUID { + get { + return this.fIASHouseGUIDField; + } + set { + this.fIASHouseGUIDField = value; + this.RaisePropertyChanged("FIASHouseGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public RegOrgType OrganizationGuid { + get { + return this.organizationGuidField; + } + set { + this.organizationGuidField = value; + this.RaisePropertyChanged("OrganizationGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string MessageNum { + get { + return this.messageNumField; + } + set { + this.messageNumField = value; + this.RaisePropertyChanged("MessageNum"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime MessageDate { + get { + return this.messageDateField; + } + set { + this.messageDateField = value; + this.RaisePropertyChanged("MessageDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AnnualVoting", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("ExtraVoting", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType31 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AVoting", typeof(MessageTypeAVoting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("EVoting", typeof(MessageTypeEVoting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("Meeting", typeof(MessageTypeMeeting), Order=6)] + [System.Xml.Serialization.XmlElementAttribute("MeetingAVoting", typeof(MessageTypeMeetingAVoting), Order=6)] + public object Item1 { + get { + return this.item1Field; + } + set { + this.item1Field = value; + this.RaisePropertyChanged("Item1"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public MeetingTypeType MeetingType { + get { + return this.meetingTypeField; + } + set { + this.meetingTypeField = value; + this.RaisePropertyChanged("MeetingType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("VoteInitiators", Order=8)] + public VoteInitiators[] VoteInitiators { + get { + return this.voteInitiatorsField; + } + set { + this.voteInitiatorsField = value; + this.RaisePropertyChanged("VoteInitiators"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DecisionList", Order=9)] + public MessageTypeDecisionList[] DecisionList { + get { + return this.decisionListField; + } + set { + this.decisionListField = value; + this.RaisePropertyChanged("DecisionList"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public string ModificationReason { + get { + return this.modificationReasonField; + } + set { + this.modificationReasonField = value; + this.RaisePropertyChanged("ModificationReason"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType31 { + + /// + AnnualVoting, + + /// + ExtraVoting, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private System.DateTime aVotingEndDateField; + + private string resolutionPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingEndDate { + get { + return this.aVotingEndDateField; + } + set { + this.aVotingEndDateField = value; + this.RaisePropertyChanged("AVotingEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=3)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeEVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime eVotingDateBeginField; + + private System.DateTime eVotingDateEndField; + + private string disciplineField; + + private string infoReviewField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private bool firstVotingField; + + private bool firstVotingFieldSpecified; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + private string adminAddressField; + + private Attachments[] attachmentsField; + + public MessageTypeEVoting() { + this.firstVotingField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime EVotingDateBegin { + get { + return this.eVotingDateBeginField; + } + set { + this.eVotingDateBeginField = value; + this.RaisePropertyChanged("EVotingDateBegin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public System.DateTime EVotingDateEnd { + get { + return this.eVotingDateEndField; + } + set { + this.eVotingDateEndField = value; + this.RaisePropertyChanged("EVotingDateEnd"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Discipline { + get { + return this.disciplineField; + } + set { + this.disciplineField = value; + this.RaisePropertyChanged("Discipline"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string InfoReview { + get { + return this.infoReviewField; + } + set { + this.infoReviewField = value; + this.RaisePropertyChanged("InfoReview"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool FirstVoting { + get { + return this.firstVotingField; + } + set { + this.firstVotingField = value; + this.RaisePropertyChanged("FirstVoting"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FirstVotingSpecified { + get { + return this.firstVotingFieldSpecified; + } + set { + this.firstVotingFieldSpecified = value; + this.RaisePropertyChanged("FirstVotingSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string AdminAddress { + get { + return this.adminAddressField; + } + set { + this.adminAddressField = value; + this.RaisePropertyChanged("AdminAddress"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=8)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeMeeting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=2)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeMeetingAVoting : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime aVotingStartDateField; + + private System.DateTime aVotingEndDateField; + + private string resolutionPlaceField; + + private System.DateTime meetingDateField; + + private string votingPlaceField; + + private Attachments[] attachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)] + public System.DateTime AVotingStartDate { + get { + return this.aVotingStartDateField; + } + set { + this.aVotingStartDateField = value; + this.RaisePropertyChanged("AVotingStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime AVotingEndDate { + get { + return this.aVotingEndDateField; + } + set { + this.aVotingEndDateField = value; + this.RaisePropertyChanged("AVotingEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string ResolutionPlace { + get { + return this.resolutionPlaceField; + } + set { + this.resolutionPlaceField = value; + this.RaisePropertyChanged("ResolutionPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public System.DateTime MeetingDate { + get { + return this.meetingDateField; + } + set { + this.meetingDateField = value; + this.RaisePropertyChanged("MeetingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string VotingPlace { + get { + return this.votingPlaceField; + } + set { + this.votingPlaceField = value; + this.RaisePropertyChanged("VotingPlace"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Attachments", Order=5)] + public Attachments[] Attachments { + get { + return this.attachmentsField; + } + set { + this.attachmentsField = value; + this.RaisePropertyChanged("Attachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeDecisionList : object, System.ComponentModel.INotifyPropertyChanged { + + private string questionNumberField; + + private string questionNameField; + + private nsiRef decisionsTypeField; + + private MessageTypeDecisionListHomeownersDecisionsType homeownersDecisionsTypeField; + + private bool itemField; + + private ItemChoiceType32 itemElementNameField; + + private nsiRef formingFundField; + + private nsiRef managementTypeField; + + private VotingSystemDetailsType votingSystemDetailsField; + + private AdminOfGeneralMeetingType adminOfGeneralMeetingField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="nonNegativeInteger", Order=0)] + public string QuestionNumber { + get { + return this.questionNumberField; + } + set { + this.questionNumberField = value; + this.RaisePropertyChanged("QuestionNumber"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string QuestionName { + get { + return this.questionNameField; + } + set { + this.questionNameField = value; + this.RaisePropertyChanged("QuestionName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public nsiRef DecisionsType { + get { + return this.decisionsTypeField; + } + set { + this.decisionsTypeField = value; + this.RaisePropertyChanged("DecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public MessageTypeDecisionListHomeownersDecisionsType HomeownersDecisionsType { + get { + return this.homeownersDecisionsTypeField; + } + set { + this.homeownersDecisionsTypeField = value; + this.RaisePropertyChanged("HomeownersDecisionsType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CharterContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlElementAttribute("CharterNotContained", typeof(bool), Order=4)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType32 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public nsiRef FormingFund { + get { + return this.formingFundField; + } + set { + this.formingFundField = value; + this.RaisePropertyChanged("FormingFund"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public nsiRef ManagementType { + get { + return this.managementTypeField; + } + set { + this.managementTypeField = value; + this.RaisePropertyChanged("ManagementType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public VotingSystemDetailsType VotingSystemDetails { + get { + return this.votingSystemDetailsField; + } + set { + this.votingSystemDetailsField = value; + this.RaisePropertyChanged("VotingSystemDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public AdminOfGeneralMeetingType AdminOfGeneralMeeting { + get { + return this.adminOfGeneralMeetingField; + } + set { + this.adminOfGeneralMeetingField = value; + this.RaisePropertyChanged("AdminOfGeneralMeeting"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class MessageTypeDecisionListHomeownersDecisionsType : nsiRef { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemChoiceType32 { + + /// + CharterContained, + + /// + CharterNotContained, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importVotingMessageRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest importVotingMessageRequest; + + public importVotingMessageRequest1() { + } + + public importVotingMessageRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest importVotingMessageRequest) { + this.RequestHeader = RequestHeader; + this.importVotingMessageRequest = importVotingMessageRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importVotingMessageResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importVotingMessageResponse() { + } + + public importVotingMessageResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportVotingMessageRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType35[] itemsElementNameField; + + private string versionField; + + public exportVotingMessageRequest() { + this.versionField = "13.1.8.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("FIASHouseGuid", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MessageGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType35[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType35 { + + /// + FIASHouseGuid, + + /// + MessageGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportVotingMessageRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest exportVotingMessageRequest; + + public exportVotingMessageRequest1() { + } + + public exportVotingMessageRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest exportVotingMessageRequest) { + this.RequestHeader = RequestHeader; + this.exportVotingMessageRequest = exportVotingMessageRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportVotingMessageResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportVotingMessageResponse() { + } + + public exportVotingMessageResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerRefusalRequest : BaseType { + + private importOwnerRefusalRequestOwnerRefusal[] ownerRefusalField; + + private string versionField; + + public importOwnerRefusalRequest() { + this.versionField = "13.1.8.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OwnerRefusal", Order=0)] + public importOwnerRefusalRequestOwnerRefusal[] OwnerRefusal { + get { + return this.ownerRefusalField; + } + set { + this.ownerRefusalField = value; + this.RaisePropertyChanged("OwnerRefusal"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerRefusalRequestOwnerRefusal : object, System.ComponentModel.INotifyPropertyChanged { + + private string transportGUIDField; + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Annulment", typeof(importOwnerRefusalRequestOwnerRefusalAnnulment), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Edit", typeof(importOwnerRefusalRequestOwnerRefusalEdit), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("Publish", typeof(importOwnerRefusalRequestOwnerRefusalPublish), Order=1)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerRefusalRequestOwnerRefusalAnnulment : object, System.ComponentModel.INotifyPropertyChanged { + + private string ownerRefusalGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string OwnerRefusalGUID { + get { + return this.ownerRefusalGUIDField; + } + set { + this.ownerRefusalGUIDField = value; + this.RaisePropertyChanged("OwnerRefusalGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerRefusalRequestOwnerRefusalEdit : object, System.ComponentModel.INotifyPropertyChanged { + + private string ownerRefusalGUIDField; + + private OwnerRefusalType ownerRefusalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string OwnerRefusalGUID { + get { + return this.ownerRefusalGUIDField; + } + set { + this.ownerRefusalGUIDField = value; + this.RaisePropertyChanged("OwnerRefusalGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public OwnerRefusalType OwnerRefusal { + get { + return this.ownerRefusalField; + } + set { + this.ownerRefusalField = value; + this.RaisePropertyChanged("OwnerRefusal"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class OwnerRefusalType : object, System.ComponentModel.INotifyPropertyChanged { + + private Owner ownerField; + + private PropertyDetails[] propertyDetailsField; + + private Representative representativeField; + + private AttachmentType[] refusalAttachmentsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public Owner Owner { + get { + return this.ownerField; + } + set { + this.ownerField = value; + this.RaisePropertyChanged("Owner"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PropertyDetails", Order=1)] + public PropertyDetails[] PropertyDetails { + get { + return this.propertyDetailsField; + } + set { + this.propertyDetailsField = value; + this.RaisePropertyChanged("PropertyDetails"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public Representative Representative { + get { + return this.representativeField; + } + set { + this.representativeField = value; + this.RaisePropertyChanged("Representative"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RefusalAttachments", Order=3)] + public AttachmentType[] RefusalAttachments { + get { + return this.refusalAttachmentsField; + } + set { + this.refusalAttachmentsField = value; + this.RaisePropertyChanged("RefusalAttachments"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class importOwnerRefusalRequestOwnerRefusalPublish : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private OwnerRefusalType ownerRefusalField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public OwnerRefusalType OwnerRefusal { + get { + return this.ownerRefusalField; + } + set { + this.ownerRefusalField = value; + this.RaisePropertyChanged("OwnerRefusal"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importOwnerRefusalRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest importOwnerRefusalRequest; + + public importOwnerRefusalRequest1() { + } + + public importOwnerRefusalRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest importOwnerRefusalRequest) { + this.RequestHeader = RequestHeader; + this.importOwnerRefusalRequest = importOwnerRefusalRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class importOwnerRefusalResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public importOwnerRefusalResponse() { + } + + public importOwnerRefusalResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")] + public partial class exportOwnerRefusalRequest : BaseType { + + private string[] itemsField; + + private ItemsChoiceType36[] itemsElementNameField; + + private string versionField; + + public exportOwnerRefusalRequest() { + this.versionField = "13.1.8.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("MessageGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("OwnerRefusalGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType36[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", IncludeInSchema=false)] + public enum ItemsChoiceType36 { + + /// + MessageGUID, + + /// + OwnerRefusalGUID, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOwnerRefusalRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest exportOwnerRefusalRequest; + + public exportOwnerRefusalRequest1() { + } + + public exportOwnerRefusalRequest1(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest exportOwnerRefusalRequest) { + this.RequestHeader = RequestHeader; + this.exportOwnerRefusalRequest = exportOwnerRefusalRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOwnerRefusalResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest; + + public exportOwnerRefusalResponse() { + } + + public exportOwnerRefusalResponse(Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface HouseManagementPortsTypeAsyncChannel : Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class HouseManagementPortsTypeAsyncClient : System.ServiceModel.ClientBase, Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync { + + public HouseManagementPortsTypeAsyncClient() { + } + + public HouseManagementPortsTypeAsyncClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public HouseManagementPortsTypeAsyncClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public HouseManagementPortsTypeAsyncClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public HouseManagementPortsTypeAsyncClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 request) { + return base.Channel.importMeteringDeviceData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest importMeteringDeviceDataRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importMeteringDeviceDataRequest = importMeteringDeviceDataRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importMeteringDeviceData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 request) { + return base.Channel.importMeteringDeviceDataAsync(request); + } + + public System.Threading.Tasks.Task importMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest importMeteringDeviceDataRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importMeteringDeviceDataRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importMeteringDeviceDataRequest = importMeteringDeviceDataRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importMeteringDeviceDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 request) { + return base.Channel.exportMeteringDeviceData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportMeteringDeviceData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest exportMeteringDeviceDataRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportMeteringDeviceDataRequest = exportMeteringDeviceDataRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportMeteringDeviceData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 request) { + return base.Channel.exportMeteringDeviceDataAsync(request); + } + + public System.Threading.Tasks.Task exportMeteringDeviceDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest exportMeteringDeviceDataRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportMeteringDeviceDataRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportMeteringDeviceDataRequest = exportMeteringDeviceDataRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportMeteringDeviceDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.getState(Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getState(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader getState(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest getStateRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResult getStateResult) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).getState(inValue); + getStateResult = retVal.getStateResult; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.getStateAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getStateAsync(request); + } + + public System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest getStateRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.getStateRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.getStateRequest = getStateRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).getStateAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest request) { + return base.Channel.importContractData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractRequest importContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importContractRequest = importContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importContractData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest request) { + return base.Channel.importContractDataAsync(request); + } + + public System.Threading.Tasks.Task importContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractRequest importContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importContractRequest = importContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importContractDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importCharterData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest request) { + return base.Channel.importCharterData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importCharterData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterRequest importCharterRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importCharterRequest = importCharterRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importCharterData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importCharterDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest request) { + return base.Channel.importCharterDataAsync(request); + } + + public System.Threading.Tasks.Task importCharterDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterRequest importCharterRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importCharterDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importCharterRequest = importCharterRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importCharterDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportStatusCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest request) { + return base.Channel.exportStatusCAChData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportStatusCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChRequest exportStatusCAChRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportStatusCAChRequest = exportStatusCAChRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportStatusCAChData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportStatusCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest request) { + return base.Channel.exportStatusCAChDataAsync(request); + } + + public System.Threading.Tasks.Task exportStatusCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChRequest exportStatusCAChRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusCAChDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportStatusCAChRequest = exportStatusCAChRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportStatusCAChDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportHouseData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest request) { + return base.Channel.exportHouseData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportHouseData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseRequest exportHouseRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportHouseRequest = exportHouseRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportHouseData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportHouseDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest request) { + return base.Channel.exportHouseDataAsync(request); + } + + public System.Threading.Tasks.Task exportHouseDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseRequest exportHouseRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportHouseDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportHouseRequest = exportHouseRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportHouseDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest request) { + return base.Channel.importAccountData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountRequest importAccountRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importAccountRequest = importAccountRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importAccountData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest request) { + return base.Channel.importAccountDataAsync(request); + } + + public System.Threading.Tasks.Task importAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountRequest importAccountRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importAccountRequest = importAccountRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importAccountDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest request) { + return base.Channel.exportAccountData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportAccountData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountRequest exportAccountRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportAccountRequest = exportAccountRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportAccountData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest request) { + return base.Channel.exportAccountDataAsync(request); + } + + public System.Threading.Tasks.Task exportAccountDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountRequest exportAccountRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportAccountRequest = exportAccountRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportAccountDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 request) { + return base.Channel.importPublicPropertyContract(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest importPublicPropertyContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importPublicPropertyContractRequest = importPublicPropertyContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importPublicPropertyContract(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 request) { + return base.Channel.importPublicPropertyContractAsync(request); + } + + public System.Threading.Tasks.Task importPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest importPublicPropertyContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importPublicPropertyContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importPublicPropertyContractRequest = importPublicPropertyContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importPublicPropertyContractAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportStatusPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 request) { + return base.Channel.exportStatusPublicPropertyContract(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportStatusPublicPropertyContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest exportStatusPublicPropertyContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportStatusPublicPropertyContractRequest = exportStatusPublicPropertyContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportStatusPublicPropertyContract(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportStatusPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 request) { + return base.Channel.exportStatusPublicPropertyContractAsync(request); + } + + public System.Threading.Tasks.Task exportStatusPublicPropertyContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest exportStatusPublicPropertyContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportStatusPublicPropertyContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportStatusPublicPropertyContractRequest = exportStatusPublicPropertyContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportStatusPublicPropertyContractAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importNotificationData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest request) { + return base.Channel.importNotificationData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importNotificationData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationRequest importNotificationRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importNotificationRequest = importNotificationRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importNotificationData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importNotificationDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest request) { + return base.Channel.importNotificationDataAsync(request); + } + + public System.Threading.Tasks.Task importNotificationDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationRequest importNotificationRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importNotificationDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importNotificationRequest = importNotificationRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importNotificationDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 request) { + return base.Channel.importVotingProtocol(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest importVotingProtocolRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importVotingProtocolRequest = importVotingProtocolRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importVotingProtocol(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 request) { + return base.Channel.importVotingProtocolAsync(request); + } + + public System.Threading.Tasks.Task importVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest importVotingProtocolRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importVotingProtocolRequest = importVotingProtocolRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importVotingProtocolAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 request) { + return base.Channel.exportVotingProtocol(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest exportVotingProtocolRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportVotingProtocolRequest = exportVotingProtocolRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportVotingProtocol(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 request) { + return base.Channel.exportVotingProtocolAsync(request); + } + + public System.Threading.Tasks.Task exportVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest exportVotingProtocolRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportVotingProtocolRequest = exportVotingProtocolRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportVotingProtocolAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 request) { + return base.Channel.importOwnerDecision(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest importOwnerDecisionRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importOwnerDecisionRequest = importOwnerDecisionRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importOwnerDecision(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 request) { + return base.Channel.importOwnerDecisionAsync(request); + } + + public System.Threading.Tasks.Task importOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest importOwnerDecisionRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerDecisionRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importOwnerDecisionRequest = importOwnerDecisionRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importOwnerDecisionAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 request) { + return base.Channel.exportOwnerDecision(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportOwnerDecision(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest exportOwnerDecisionRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportOwnerDecisionRequest = exportOwnerDecisionRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportOwnerDecision(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 request) { + return base.Channel.exportOwnerDecisionAsync(request); + } + + public System.Threading.Tasks.Task exportOwnerDecisionAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest exportOwnerDecisionRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerDecisionRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportOwnerDecisionRequest = exportOwnerDecisionRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportOwnerDecisionAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest request) { + return base.Channel.exportCAChData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportCAChData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChAsyncRequest exportCAChAsyncRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportCAChAsyncRequest = exportCAChAsyncRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportCAChData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest request) { + return base.Channel.exportCAChDataAsync(request); + } + + public System.Threading.Tasks.Task exportCAChDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChAsyncRequest exportCAChAsyncRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportCAChDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportCAChAsyncRequest = exportCAChAsyncRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportCAChDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseUOData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest request) { + return base.Channel.importHouseUOData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importHouseUOData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUORequest importHouseUORequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseUORequest = importHouseUORequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseUOData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseUODataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest request) { + return base.Channel.importHouseUODataAsync(request); + } + + public System.Threading.Tasks.Task importHouseUODataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUORequest importHouseUORequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseUODataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseUORequest = importHouseUORequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseUODataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseOMSData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest request) { + return base.Channel.importHouseOMSData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importHouseOMSData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSRequest importHouseOMSRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseOMSRequest = importHouseOMSRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseOMSData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseOMSDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest request) { + return base.Channel.importHouseOMSDataAsync(request); + } + + public System.Threading.Tasks.Task importHouseOMSDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSRequest importHouseOMSRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseOMSDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseOMSRequest = importHouseOMSRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseOMSDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseESPData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest request) { + return base.Channel.importHouseESPData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importHouseESPData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPRequest importHouseESPRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseESPRequest = importHouseESPRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseESPData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importHouseESPDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest request) { + return base.Channel.importHouseESPDataAsync(request); + } + + public System.Threading.Tasks.Task importHouseESPDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPRequest importHouseESPRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importHouseESPDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importHouseESPRequest = importHouseESPRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importHouseESPDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest request) { + return base.Channel.importSupplyResourceContractData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractRequest importSupplyResourceContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractRequest = importSupplyResourceContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest request) { + return base.Channel.importSupplyResourceContractDataAsync(request); + } + + public System.Threading.Tasks.Task importSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractRequest importSupplyResourceContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractRequest = importSupplyResourceContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest request) { + return base.Channel.exportSupplyResourceContractData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportSupplyResourceContractData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractRequest exportSupplyResourceContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportSupplyResourceContractRequest = exportSupplyResourceContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportSupplyResourceContractData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest request) { + return base.Channel.exportSupplyResourceContractDataAsync(request); + } + + public System.Threading.Tasks.Task exportSupplyResourceContractDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractRequest exportSupplyResourceContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportSupplyResourceContractRequest = exportSupplyResourceContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportSupplyResourceContractDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 request) { + return base.Channel.importAccountIndividualServices(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest importAccountIndividualServicesRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importAccountIndividualServicesRequest = importAccountIndividualServicesRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importAccountIndividualServices(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 request) { + return base.Channel.importAccountIndividualServicesAsync(request); + } + + public System.Threading.Tasks.Task importAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest importAccountIndividualServicesRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importAccountIndividualServicesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importAccountIndividualServicesRequest = importAccountIndividualServicesRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importAccountIndividualServicesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 request) { + return base.Channel.exportAccountIndividualServices(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportAccountIndividualServices(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest exportAccountIndividualServicesRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportAccountIndividualServicesRequest = exportAccountIndividualServicesRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportAccountIndividualServices(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 request) { + return base.Channel.exportAccountIndividualServicesAsync(request); + } + + public System.Threading.Tasks.Task exportAccountIndividualServicesAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest exportAccountIndividualServicesRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportAccountIndividualServicesRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportAccountIndividualServicesRequest = exportAccountIndividualServicesRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportAccountIndividualServicesAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest request) { + return base.Channel.exportSupplyResourceContractObjectAddressData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressRequest exportSupplyResourceContractObjectAddressRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportSupplyResourceContractObjectAddressRequest = exportSupplyResourceContractObjectAddressRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportSupplyResourceContractObjectAddressData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest request) { + return base.Channel.exportSupplyResourceContractObjectAddressDataAsync(request); + } + + public System.Threading.Tasks.Task exportSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressRequest exportSupplyResourceContractObjectAddressRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportSupplyResourceContractObjectAddressDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.exportSupplyResourceContractObjectAddressRequest = exportSupplyResourceContractObjectAddressRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportSupplyResourceContractObjectAddressDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest request) { + return base.Channel.importSupplyResourceContractObjectAddressData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importSupplyResourceContractObjectAddressData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressRequest importSupplyResourceContractObjectAddressRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractObjectAddressRequest = importSupplyResourceContractObjectAddressRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractObjectAddressData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest request) { + return base.Channel.importSupplyResourceContractObjectAddressDataAsync(request); + } + + public System.Threading.Tasks.Task importSupplyResourceContractObjectAddressDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressRequest importSupplyResourceContractObjectAddressRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractObjectAddressDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractObjectAddressRequest = importSupplyResourceContractObjectAddressRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractObjectAddressDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractProjectData(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest request) { + return base.Channel.importSupplyResourceContractProjectData(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importSupplyResourceContractProjectData(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectRequest importSupplyResourceContractProjectRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractProjectRequest = importSupplyResourceContractProjectRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractProjectData(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importSupplyResourceContractProjectDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest request) { + return base.Channel.importSupplyResourceContractProjectDataAsync(request); + } + + public System.Threading.Tasks.Task importSupplyResourceContractProjectDataAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectRequest importSupplyResourceContractProjectRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importSupplyResourceContractProjectDataRequest(); + inValue.RequestHeader = RequestHeader; + inValue.importSupplyResourceContractProjectRequest = importSupplyResourceContractProjectRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importSupplyResourceContractProjectDataAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportRolloverStatusCACh(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 request) { + return base.Channel.exportRolloverStatusCACh(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportRolloverStatusCACh(Hcs.Service.Async.HouseManagement.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest exportRolloverStatusCAChRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportRolloverStatusCAChRequest = exportRolloverStatusCAChRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportRolloverStatusCACh(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportRolloverStatusCAChAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 request) { + return base.Channel.exportRolloverStatusCAChAsync(request); + } + + public System.Threading.Tasks.Task exportRolloverStatusCAChAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest exportRolloverStatusCAChRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportRolloverStatusCAChRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportRolloverStatusCAChRequest = exportRolloverStatusCAChRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportRolloverStatusCAChAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefSupplyResourceContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 request) { + return base.Channel.exportBriefSupplyResourceContract(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportBriefSupplyResourceContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest exportBriefSupplyResourceContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefSupplyResourceContractRequest = exportBriefSupplyResourceContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefSupplyResourceContract(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefSupplyResourceContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 request) { + return base.Channel.exportBriefSupplyResourceContractAsync(request); + } + + public System.Threading.Tasks.Task exportBriefSupplyResourceContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest exportBriefSupplyResourceContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSupplyResourceContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefSupplyResourceContractRequest = exportBriefSupplyResourceContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefSupplyResourceContractAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefSocialHireContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 request) { + return base.Channel.exportBriefSocialHireContract(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportBriefSocialHireContract(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest exportBriefSocialHireContractRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefSocialHireContractRequest = exportBriefSocialHireContractRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefSocialHireContract(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefSocialHireContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 request) { + return base.Channel.exportBriefSocialHireContractAsync(request); + } + + public System.Threading.Tasks.Task exportBriefSocialHireContractAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest exportBriefSocialHireContractRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefSocialHireContractRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefSocialHireContractRequest = exportBriefSocialHireContractRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefSocialHireContractAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.demolishHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest request) { + return base.Channel.demolishHouse(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader demolishHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.DemolishHouseRequestType demolishHouseRequest1, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest(); + inValue.RequestHeader = RequestHeader; + inValue.demolishHouseRequest1 = demolishHouseRequest1; + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).demolishHouse(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.demolishHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest request) { + return base.Channel.demolishHouseAsync(request); + } + + public System.Threading.Tasks.Task demolishHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.DemolishHouseRequestType demolishHouseRequest1) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.demolishHouseRequest(); + inValue.RequestHeader = RequestHeader; + inValue.demolishHouseRequest1 = demolishHouseRequest1; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).demolishHouseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefBasicHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 request) { + return base.Channel.exportBriefBasicHouse(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportBriefBasicHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest exportBriefBasicHouseRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefBasicHouseRequest = exportBriefBasicHouseRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefBasicHouse(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefBasicHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 request) { + return base.Channel.exportBriefBasicHouseAsync(request); + } + + public System.Threading.Tasks.Task exportBriefBasicHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest exportBriefBasicHouseRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefBasicHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefBasicHouseRequest = exportBriefBasicHouseRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefBasicHouseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefLivingHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 request) { + return base.Channel.exportBriefLivingHouse(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportBriefLivingHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest exportBriefLivingHouseRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefLivingHouseRequest = exportBriefLivingHouseRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefLivingHouse(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefLivingHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 request) { + return base.Channel.exportBriefLivingHouseAsync(request); + } + + public System.Threading.Tasks.Task exportBriefLivingHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest exportBriefLivingHouseRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefLivingHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefLivingHouseRequest = exportBriefLivingHouseRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefLivingHouseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefApartmentHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 request) { + return base.Channel.exportBriefApartmentHouse(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportBriefApartmentHouse(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest exportBriefApartmentHouseRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefApartmentHouseRequest = exportBriefApartmentHouseRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefApartmentHouse(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportBriefApartmentHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 request) { + return base.Channel.exportBriefApartmentHouseAsync(request); + } + + public System.Threading.Tasks.Task exportBriefApartmentHouseAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest exportBriefApartmentHouseRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportBriefApartmentHouseRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportBriefApartmentHouseRequest = exportBriefApartmentHouseRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportBriefApartmentHouseAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importExternalVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 request) { + return base.Channel.importExternalVotingProtocol(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importExternalVotingProtocol(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest importExternalVotingProtocolRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importExternalVotingProtocolRequest = importExternalVotingProtocolRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importExternalVotingProtocol(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importExternalVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 request) { + return base.Channel.importExternalVotingProtocolAsync(request); + } + + public System.Threading.Tasks.Task importExternalVotingProtocolAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest importExternalVotingProtocolRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importExternalVotingProtocolRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importExternalVotingProtocolRequest = importExternalVotingProtocolRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importExternalVotingProtocolAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 request) { + return base.Channel.importVotingMessage(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest importVotingMessageRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importVotingMessageRequest = importVotingMessageRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importVotingMessage(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 request) { + return base.Channel.importVotingMessageAsync(request); + } + + public System.Threading.Tasks.Task importVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest importVotingMessageRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importVotingMessageRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importVotingMessageRequest = importVotingMessageRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importVotingMessageAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 request) { + return base.Channel.exportVotingMessage(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportVotingMessage(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest exportVotingMessageRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportVotingMessageRequest = exportVotingMessageRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportVotingMessage(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 request) { + return base.Channel.exportVotingMessageAsync(request); + } + + public System.Threading.Tasks.Task exportVotingMessageAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest exportVotingMessageRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportVotingMessageRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportVotingMessageRequest = exportVotingMessageRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportVotingMessageAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 request) { + return base.Channel.importOwnerRefusal(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader importOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest importOwnerRefusalRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importOwnerRefusalRequest = importOwnerRefusalRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importOwnerRefusal(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.importOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 request) { + return base.Channel.importOwnerRefusalAsync(request); + } + + public System.Threading.Tasks.Task importOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest importOwnerRefusalRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.importOwnerRefusalRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.importOwnerRefusalRequest = importOwnerRefusalRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).importOwnerRefusalAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 request) { + return base.Channel.exportOwnerRefusal(request); + } + + public Hcs.Service.Async.HouseManagement.v14_5_0_1.ResultHeader exportOwnerRefusal(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest exportOwnerRefusalRequest, out Hcs.Service.Async.HouseManagement.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportOwnerRefusalRequest = exportOwnerRefusalRequest; + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalResponse retVal = ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportOwnerRefusal(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync.exportOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 request) { + return base.Channel.exportOwnerRefusalAsync(request); + } + + public System.Threading.Tasks.Task exportOwnerRefusalAsync(Hcs.Service.Async.HouseManagement.v14_5_0_1.RequestHeader RequestHeader, Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest exportOwnerRefusalRequest) { + Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1 inValue = new Hcs.Service.Async.HouseManagement.v14_5_0_1.exportOwnerRefusalRequest1(); + inValue.RequestHeader = RequestHeader; + inValue.exportOwnerRefusalRequest = exportOwnerRefusalRequest; + return ((Hcs.Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync)(this)).exportOwnerRefusalAsync(inValue); + } + } +} diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.svcmap b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.svcmap new file mode 100644 index 0000000..f3ff276 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/Reference.svcmap @@ -0,0 +1,42 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration.svcinfo b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration.svcinfo new file mode 100644 index 0000000..3db1f66 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration91.svcinfo b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration91.svcinfo new file mode 100644 index 0000000..0690b04 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + HouseManagementBindingAsync2 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + HouseManagementBindingAsync3 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://api.dom.gosuslugi.ru/ext-bus-home-management-service/services/HomeManagementAsync + + + + + + basicHttpBinding + + + HouseManagementBindingAsync2 + + + Service.Async.HouseManagement.v14_5_0_1.HouseManagementPortsTypeAsync + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + HouseManagementPortAsync1 + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-account-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-account-base.xsd new file mode 100644 index 0000000..4dd1ae1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-account-base.xsd @@ -0,0 +1,82 @@ + + + + + + + Идентификатор лицевого счета + + + + + Номер лицевого счета/Иной идентификатор плательщика + + + + + + + + + + + + Основание для обязательств по оплате + + + + + Номер договора + + + + + Дата заключения договора + + + + + Срок окончания действия договора + + + + + + + Единый лицевой счет + + + + + + + + + + Расчетный счет + + + + + + + + + + Счет + + + + + + + + Идентификатор жилищно-коммунальной услуги + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-base.xsd new file mode 100644 index 0000000..bbf262e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-base.xsd @@ -0,0 +1,861 @@ + + + + + + Строка не более 2000 символов. + + + + + + + + Строка не более 1500 символов. + + + + + + + + Строка не более 300 символов. + + + + + + + + Скалярный тип. Строка не более 255 символов. + + + + + + + + + Скалярный тип. Строка не более 100 символов. + + + + + + + + Скалярный тип. Строка не более 250 символов. + + + + + + + + Скалярный тип. Строка не более 500 символов. + + + + + + + + Строка не более 60 символов. + + + + + + + + Текстовое поле 2000 + + + + + + + + Непустая строка + + + + + + + + + Базовый тип бизнес-сообщения с подписью + + + + + + + + + Заголовок запроса + + + + + + + + + Идентификатор поставщика данных + + + + + Идентификатор зарегистрированной организации + + + + + Информация о физическом лице + + + + + + Идентификатор физического лица, зарегистрированного в ГИС ЖКХ + + + + + + СНИЛС + + + + + + + + + + Документ, удостоверяющий личность + + + + + + Вид документа, удостоверяющего личность (НСИ №95) + + + + + + Код записи справочника + + + + + + + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + + + + + + Используется подпись Оператора ИС + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164). Только для запросов размещения информации. + + + + + + + + + + Заголовок запроса + + + + + + + + + + + + + + Заголовок ответа + + + + + + + + + + Базовый тип ответа на запрос создания, редактирования, удаления + + + + + + Транспортный идентификатор, определенный постащиком информации + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + Дата модификации + + + + + Уникальный номер + + + + + + + + + + Базовый тип заголовка + + + + + Дата отправки пакета + + + + + Идентификатор сообщения + + + + + + + Вложение + + + + + + Идентификатор сохраненного вложения + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex. + +Элемент обязателен в запросах импорта + + + + + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex + + + + + + + + + + + + Базовый тип, описывающий вложение с открепленными (detached) подписями. В сервисах ГИС ЖКХ, использущих тип SignedAttachmentType, может быть наложено ограничение на максимальное количесво элементов в блоке Signature (см. контроль INT002039). + + + + + Вложение + + + + + Открепленная (detached) подпись + + + + + + + Элемент Fault (для параметра Fault в операции) + + + + Базовый тип для fault-ошибки + + + + + + + + + + + Описание ошибок контролей или бизнес-процесса + + + + + Базовый тип ошибки контроля или бизнес-процесса + + + + + Код ошибки + + + + + Описание ошибки + + + + + StackTrace в случае возникновения исключения + + + + + + + Версия элемента, начиная с которой поддерживается совместимость + + + + + Возврат квитанции приема сообщения + + + + + + Квитанция + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + Идентификатор сообщения, присвоенный поставщиком + + + + + + + + + + + Запрос статуса отправленного сообщения + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + Запрос списка обработанных сообщений + + + + + + Массив идентификаторов сообщений, присвоенных ГИС ЖКХ + + + + + + + + Ответ на запрос списка обработанных сообщений + + + + + + + + Список идентификаторов сообщений, присвоенный ГИС ЖКХ + + + + + + + + + + Базовый тип ответа на запрос статуса + + + + + + + Статус обработки + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + + Результат выполнения C_UD + + + + + Идентификатор создаваемой/изменяемой сущности + + + + + Транспортный идентификатор + + + + + + Операция выполнена успешно + + + + Уникальный реестровый номер + + + + + Дата модификации + + + + + + Описание ошибки + + + + + + + + + + + + + Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано) + + + + + + + + + + Транспортный идентификатор + + + + + GUID-тип. + + + + + + + + Дата модификации объекта + + + + + Тип, описывающий год + + + + + + + + Тип, описывающий месяц + + + + + + + + + Месяц + + + + + Год + + + + + + + + + + + Определенный месяц определенного года + + + + + + + + + Временной период (обе даты обязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Открытый временной период (даты необязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Тип объема + + + + + + + + + + Ссылка на субъект РФ (ФИАС) + + + + + Код региона (ФИАС) + + + + + + + + + + Полное наименование + + + + + + + + + + + + Ссылка на ОКТМО + + + + + Код по ОКТМО + + + + + + + + + + + Полное наименование + + + + + + + + + + + + + + + + + Код ОКЕИ + + + + + Идентификатор зарегистрированной организации + + + + + Базовый тип документа ОЧ + + + + + Наименование документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата принятия документа органом власти + + + + + Вложение + + + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164) + + + + + + Наименование ИС + + + + + Наименование Оператора ИС + + + + + + + + Код по ОКТМО + + + + + + + + + Код по ОКТМО + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-bills-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-bills-base.xsd new file mode 100644 index 0000000..7144802 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-bills-base.xsd @@ -0,0 +1,93 @@ + + + + + + Сумма + + + + + + + + + + Неотрицательная сумма + + + + + + + + + + Сумма + + + + + + + + + Неотрицательная маленькая сумма + + + + + + + + + + + Маленькая сумма + + + + + + + + + + Неотрицательная сумма + + + + + + + + + + + Сумма в копейках + + + + + + Номер платежного документа, по которому внесена плата, присвоенный такому документу исполнителем в целях осуществления расчетов по внесению платы + + + + + + + + + + + + Идентификатор платежного документа + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-service-async.wsdl b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-service-async.wsdl new file mode 100644 index 0000000..f0a4620 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-service-async.wsdl @@ -0,0 +1,1049 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Передать данные ПУ + + + + + + Получить перечень ПУ + + + + + + + + + + + Cоздание/редактирование, удаление, пролонгация, расторжение ДУ + + + + + + Cоздание/редактирование, удаление, пролонгация, расторжение устава + + + + + + Экспорт статусов договоров управления, уставов, доп. соглашений + + + + + + ВИ_ИРАО_ДОМ_ЭКСП. Экспорт данных дома. + + + + + + ВИ_ИЛС_СЗЛС. передать данные лицевых счетов + + + + + + ВИ_ИЛС_РЛС. получить перечень лицевых счетов + + + + + + Импорт ДОИ (Договор на пользование общим имуществом) + + + + + + Экспорт списка ДОИ + + + + + + ВИ_ИО_И_1. Импорт новостей для информирования граждан + + + + + + Импорт протокола ОСС + + + + + + Экспорт протокола ОСС + + + + + + Импорт решения собственника по вопросам голосования + + + + + + Экспорт решений собственников по вопросам голосования + + + + + + Экспорт договоров управления, уставов, доп. соглашений + + + + + + Импорт данных дома для полномочия УО + + + + + + Импорт данных дома для полномочия ОМС + + + + + + Импорт данных дома для полномочия ЕСП + + + + + + Импорт договора ресурсоснабжения с РСО + + + + + + Экспорт договоров ресурсоснабжения + + + + + + Импорт индивидуальных услуг лицевого счета + + + + + + Экспорт индивидуальных услуг лицевого счета + + + + + + Экспорт объектов жилищного фонда из договоров ресурсоснабжения + + + + + + Импорт информации об объектах жилищного фонда в договор ресурсоснабжения + + + + + + Импорт проекта договора ресурсоснабжения + + + + + + Экспорт статусов автопролонгации договоров управления, уставов + + + + + + Экспорт сокращенного состава информации о договоре ресурсоснабжения + + + + + + Экспорт краткой информации о договоре найма + + + + + + Операция сноса дома + + + + + + Экспорт краткой базовой информации о доме + + + + + + Экспорт краткой информации о жилом доме + + + + + + Экспорт краткой информации о многоквартирном доме + + + + + + Импорт итогов голосования, проведенного с использованием системы, отличной от ГИС ЖКХ + + + + + + Импорт сообщения о проведении ОСС + + + + + + Экспорт сообщения о проведении ОСС + + + + + + Импорт письменных отказов собственников + + + + + + Экспорт письменных отказов собственников + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Сервис управления объектами РАО + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-types.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-types.xsd new file mode 100644 index 0000000..38e4ad6 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-house-management-types.xsd @@ -0,0 +1,19555 @@ + + + + + + + + + + + + + + ???????????? ???????????? ????????. ?? ?????????? ???? ???????????? ?????????????????????? ???????????? ?????????????????? ???????????? ???????????????????????????????? ????????. ImportResult ???????????????? ?????????????????? ?????????????????? ???????????? ???????? (?? GUID ???????????????????? FIASHouseGuid ?????????????? ????????????, UniqueNumber ???????????????? ???????????????????? ?????????? ????????), ?????????????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????????), ???????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????). ???????????????? ???????????? 11.0.10.1, 13.2.3.2 + + + + + + + + + ?????????????????????????????? ?????? + + + + + + + ???????????????????? ???????????????????????????????? ???????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????????????????????????? ???????? + + + + + + + + + + + + + + + ?????????????? ?????????????????? + + + + ???????????????????? ???????????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ???????????????? ?? ?????????? ?????????????????? + + + + + ???????????????????? ???????????? ???????????????? + + + + + + + + + + + + + + ?????????????????? ???????????????? + + + + + + + + + ?????????????????????????? ???????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + ???????????????????? ???????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ?????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + ???????????????????? ???????????? ?????????? + + + + + + + + + + + + + + ?????????????????? ?????????? + + + + + + + + + ?????????????????????????? ?????????? + + + + + + + + + + + + + + + ?????????? ?????? + + + + + + + ???????????????????? ???????????? ???????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????? ???????? + + + + + + + + + + + + + + + + ?????????????? (?????? ?????????????? ????) + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ???????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + ?????????? (?????? ???? ?????????????????????????? ??????????????????) + + + + + + + ???????????????? ?????????? + + + + + + + + + + + + + + ???????????????????? ?????????? + + + + + + + + + ?????????????????????????? ?????????? ???????????? ???????? + + + + + + + + + + + ?????????????? ?? ?????????? + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ???????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ???????????? ???????????? ????????. ?? ?????????? ???? ???????????? ?????????????????????? ???????????? ?????????????????? ???????????? ???????????????????????????????? ????????. ImportResult ???????????????? ?????????????????? ?????????????????? ???????????? ???????? (?? GUID ???????????????????? FIASHouseGuid ?????????????? ????????????, UniqueNumber ???????????????? ???????????????????? ?????????? ????????), ?????????????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????????), ???????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????). ???????????????? ???????????? 11.5.0.2, 13.2.3.2 + + + + + + + + + ?????????????????????????????? ?????? + + + + + + + ???????????????????? ???????????????????????????????? ???????? + + + + + + + + C?????????? ???????????????????? ?????????? (?????? 25). ?????????????????? ?????????????????? ???????????????? ???????????? ?????? ???????????????????? ???????????????????? ???? ???????????????????? ?????? (?????????????????????? ???????????? ?? ???????? ??/?????? ???? ???????????????? ?????????????? ????????????????????/??????????): +- ???? ???????????? +- ???????????????????????????????? ????????????????????. + + + + + + + + + + + + ?????????????????? ???????????? ???????????????????????????????? ???????? + + + + + + + + + C?????????? ???????????????????? ?????????? (?????? 25). ?????????????????? ?????????????????? ???????????????? ???????????? ?????? ???????????????????? ???????????????????? ???? ???????????????????? ?????? (?????????????????????? ???????????? ?? ???????? ??/?????? ???? ???????????????? ?????????????? ????????????????????/??????????): +- ???? ???????????? +- ???????????????????????????????? ????????????????????. + + + + + + + + + + + + ?????????????? ?????????????????? + + + + ???????????????????? ???????????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ?????????????? + + + + + ???????????????????? ???????????? ???????????????? + + + + + + + + + + + + + + ?????????????????? ???????????????? + + + + + + + + + ?????????????????????????? ???????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + ???????????????????? ???????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ?????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + ???????????????????? ???????????? ?????????? + + + + + + + + + + + + + + ?????????????????? ?????????? + + + + + + + + + ?????????????????????????? ?????????? + + + + + + + + + + + + + + + ?????????? ?????? + + + + + + + ???????????????????? ???????????? ???????? + + + + + + + + + ???? ?????????????????? ?????? ???? + + + + + + + + + + ?????????????????? ???????????? ???????????? ???????? + + + + + + + + + ???? ?????????????????? ?????? ???? + + + + + + + + + + + + ?????????????? (?????? ?????????????? ????) + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ???????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + ?????????? (?????? ???? ?????????????????????????? ??????????????????) + + + + + + + ???????????????? ?????????? + + + + + + + + + + + + + + ???????????????????? ?????????? + + + + + + + + + ?????????????????????????? ?????????? ???????????? ???????? + + + + + + + + + + + ?????????????? ?? ?????????? + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ???????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ???????????? ???????????? ????????. ?? ?????????? ???? ???????????? ?????????????????????? ???????????? ?????????????????? ???????????? ???????????????????????????????? ????????. ImportResult ???????????????? ?????????????????? ?????????????????? ???????????? ???????? (?? GUID ???????????????????? FIASHouseGuid ?????????????? ????????????, UniqueNumber ???????????????? ???????????????????? ?????????? ????????), ?????????????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????????), ???????????? (UniqueNumber ???????????????? ???????????????????? ?????????? ??????????????). ???????????????? ???????????? 11.6.0.2, 13.2.3.2 + + + + + + + + ?????????????????????????????? ?????? + + + + + + + ???????????????????? ???????????????????????????????? ???????? + + + + + + + + + ?????????????????? ?????????????????? ???????????????? ???????????? ?????? ???????????????????? ???????????????????? ???? ???????????????????? ?????? (?????????????????????? ???????????? ?? ???????? ??/?????? ???? ???????????????? ?????????????? ????????????????????/??????????): +- ???? ???????????? +- ???????????????????????????????? ????????????????????. + + + + + + + + + + + ?????????????????? ???????????? ???????????????????????????????? ???????? + + + + + + + + + ?????????????????? ?????????????????? ???????????????? ???????????? ?????? ???????????????????? ???????????????????? ???? ???????????????????? ?????? (?????????????????????? ???????????? ?? ???????? ??/?????? ???? ???????????????? ?????????????? ????????????????????/??????????): +- ???? ???????????? +- ???????????????????????????????? ????????????????????. + + + + + + + + + + + + ?????????????? ?????????????????? + + + + ???????????????????? ???????????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ???????????????? ?? ?????????? ?????????????????? + + + + + ???????????????????? ???????????? ???????????????? + + + + + + + + + + + + + + ?????????????????? ???????????????? + + + + + + + + + ?????????????????????????? ???????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + ???????????????????? ???????????? ?????????????????? + + + + + + + + + + + + + + ?????????????????? ???????????? ???????????? ?????????????????? + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + ???????????????????? ?????????????? + + + + + + + + + + + + + + ?????????????????? ?????????????? + + + + + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + ???????????????????? ???????????? ?????????? + + + + + + + + + + + + + + ?????????????????? ?????????? + + + + + + + + + ?????????????????????????? ?????????? + + + + + + + + + + + + + + + + + + + + + + + + + + ???????????? ???? ?????????????? ???????????????????? ?? ????????. + +???????????????? ????????????: 11.1.0.1, 12.2.0.1 ?? 13.2.3.2 + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + + + + + ?????????? ???? ?????????????? ???????????????????? ?? ????????. + + + + + ???????????????????? ?????????? ???????? + + + + + ???????? ?????????????????????? ???????????? ???????? + + + + + + ?????????????????????????????? ?????? + + + + + + + + ?????????????? + + + + + + + + ???????? ?????????????????????? ???????????? ???????????????? + + + + + ?????????????????????????? ???????????????? + + + + + + + + + + ?????????? ?????????????????? + + + + + + + + ???????????????????? ?????????? ?????????????????? + + + + + ???????? ?????????????????????? ???????????? ?????????????????? + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + + + + + ???????????????????? ?????????? ?????????????? + + + + + ???????? ?????????????????????? ???????????? ?????????????? + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + ?????????? + + + + + + + + ???????? ?????????????????????? ???????????? ?????????? + + + + + ?????????????????????????? ?????????? + + + + + + + + + + ?????????????? ?????????????????? + + + + + + + + ???????????????????? ?????????? ?????????????????? + + + + + ???????? ?????????????????????? ???????????? ?????????????????? + + + + + ?????????????????????????? ?????????????????? + + + + + + + + + + C?????????? ???????????????????? ?????????? (?????? 25). + + + + + + + + + + ?????????? ?????? + + + + + + + + + ?????????????? (?????? ???????????????? ???????????? ????????) + + + + + + + + ???????????????????? ?????????? ?????????????? + + + + + ???????? ?????????????????????? ???????????? ?????????????? + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + ?????????? (?????? ???????????? ???????? ?????????????????????????? ??????????????????) + + + + + + + + ???????????????????? ?????????? ?????????? + + + + + ???????? ?????????????????????? ???????????? ?????????? + + + + + ?????????????????????????? ?????????? ???????????? ???????? + + + + + ?????????????? ?? ?????????? + + + + + + + + ???????????????????? ?????????? ?????????????? + + + + + ???????? ?????????????????????? ???????????? ?????????????? + + + + + ?????????????????????????? ?????????????? + + + + + + + + + + + + + + + + ???????????????????? ???????????? ???????????????? ?? ???????? + + + + + + + + + + + + + ???????? ????????. ?? ?????????? ???? ???????????? ?????????????????????? ???????????? ?????????????????? ???????????? ????????. ImportResult ???????????????? ?????????????????? ?????????????????? ???????????? ???????? (?? GUID ???????????????????? FIASHouseGuid ?????????????? ????????????, UniqueNumber ???????????????? ???????????????????? ?????????? ????????). + + + + + + + + + ??????, ?????????????????????? ???????????? ???? ???????? ???????? + + + + + + + + + + + + + ???????????????????? ?? ?????????? ???????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????? ?????????? + + + + + ?????????????????? ??????????. ?????????????????????? ?????? ??????????, ???? ???????????????????? ???????????????????? + + + + + + + + ?????????????? ?????????? + + + + + ???????????????? + + + + + ???????????????? + + + + + + + ???????????? ???? ?????????????? ?????????????? ?????????????? ???????????????????? ?? ????????. ???????????????? ???????????? 12.2.1.2, 13.2.3.2 + + + + + + + + ?????????????? ???????????????????? ??????????????. ???????? ?????????????? - ???????? ???????????????? ???????????? ???????? + + + + + + + + + + + + + + + ???????????? ???? ?????????????? ?????????????? ???????????????????? ?? ?????????? ????????. ???????????????? ???????????? 12.2.1.2, 13.2.3.2 + + + + + + + + ?????????????? ???????????????????? ??????????????. ???????? ?????????????? - ???????? ???????????????? ???????????? ???????? + + + + + + + + + + + + + + + ???????????? ???? ?????????????? ?????????????? ???????????????????? ?? ?????????????????????????????? ????????. ???????????????? ???????????? 12.2.1.2, 13.2.3.2 + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? ?????? ?? ?????? ?????? + + + + + + + + + + + ?????? ????????????, ?????????????????????? ???????????? ???? ?????????????? ?????????????? ?????????????? ???????????????????? ???? ?????????? ???????? + + + + + + ???????????????? ???????????? + + + + + + + ???????????????? ???????????? ???????? + + + + + ???????????????????? ?????????? ???????? + + + + + ???????????????????? ?????????? ?????????????????? + + + + + ???????????????????? ?????????? ?????????????? + + + + + ???????????????????? ?????????? ?????????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + ?????????????????? ?????????????? ?????????????? ?????????????? ???????????????????? ???? ?????????? ????????. + + + + + ???????????????????????? ?????????????????????????? + + + + + + ?????????????? ???????????????????? ?? ???????? + + + + + ???????????????? ???????????? + + + + + + + + ?????? ????????????, ?????????????????????? ???????????? ???? ?????????????? ?????????????? ???????????????????? ???? ?????????? ?????????? ???????? + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? ?????? ?? ?????? ?????? + + + + + + + ?????????????????? ?????????????? ?????????????? ???????????????????? ?? ?????????? ????????. + + + + + ???????????????????????? ?????????????????????????? + + + + + + ?????????????? ???????????????????? ?? ???????? + + + + + ???????????????? ???????????? + + + + + + + + ???????????? ?????????????? ???????????????????? ?? ???????? + + + + + ???????????????????? ?? ???????????????????????? ???????? + + + + + ?????????????? ???????????????????????????? ???????? ?? ?????????????? ???????????????? ???????????????? ?????? ?????? + + + + + + + ?????????????? ???????????????????? ?? ?????????????? ?????????????????????????????? ???????? ?? ?????????????? ???????????????? ???????????????? ?????? ?????? + + + + + ???????????????????? ?????????? ???????? + + + + + ?????????????????? (?????? 24) + + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????????????????? ?????????????????????? ?????????????????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????? ?????????? + + + + + ?????????????????? ?????????? (????????????????) + + + + + ?????????????? ?????????????????????? ?????????????????? - ?????? ???????? ???????????????? ?????????????????? ?????????????????????????? ?????? ???????????????????? ???????????????????? ?? ?????????? + + + + + ???????????? ?????????????????? + + + + + + + ?????????????? ???????????????????? ?? ???????????????????????? ???????? + + + + + ???????????????????? ?????????????????????????? ???????????? ????????, ?????????????????????? ?????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????????????????? ???????????????? ???????????? + + + + + + + + + + + Guid ???????????? ?????????????????????????? ?????????????? (??????????) + + + + + ?????????? ???????? + + + + + + + + + + + ?????????? ?????????????? + + + + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ?????????????? ????????????????: +0 ??? ???? ????????????????????; +1 ??? ????????????????; +2 ??? ??????; +3 ??? ????????????????????????; +4 - ??????????????; +5 - ????????????; +6 - ??????????; +7 - ????????????; +8 - ??????????????????; +9 - ????????????; +10 - ???????????? ???????????????????????????? ??????????????????????????. + + + + + + + + + + + + + + + + + + + + + + ?????????????? ????????????????: +0 ??? ???? ????????????????????; +1 ??? ????????????????; +2 ??? ????????????????????; +3 ??? ??????????. + + + + + + + + + + + + + + + ?????????????? ???????????????????? ?? ?????????? ???????? + + + + + ???????????????????? ?????????????????????????? ???????????? ????????, ?????????????????????? ?????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????????????? ?????????? ???????? + + + + + ???????? ?????????????????????? ???????????? ???????? + + + + + ?????????? ?????? ?????????????????????????? ?????????????????? + + + + + ?????????????????? ?????????? ?????????? ?? ???????????????????? ?????????????? + + + + + + ?????????? (?????? ???????????? ???????? ?????????????????????????? ??????????????????) + + + + + ?????????????? (?????? ???????????????? ???????????? ????????) + + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????? ?????????? + + + + + ?????????????????? ?????????? (????????????????) + + + + + ?????????????? ?????????????????????? ?????????????????? - ?????? ???????? ???????????????? ?????????????????? ?????????????????????????? ?????? ???????????????????? ???????????????????? ?? ?????????? + + + + + ???????????? ?????????????????? + + + + + + + ?????????????? ???????????????????? ?? ?????????????????????????????? ???????? + + + + + ???????????????????? ?????????????????????????? ???????????? ????????, ?????????????????????? ?????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????????????? ?????????? ???????? + + + + + ???????? ?????????????????????? ???????????? ???????? + + + + + ?????????????? + + + + + ?????????? ?????????????????? + + + + + ?????????????? ?????????????????? + + + + + C?????????? ???????????????????? ?????????? (?????? 25). + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????? ?????????? + + + + + ?????????????????? ?????????? (????????????????) + + + + + ?????????????? ?????????????????????? ?????????????????? - ?????? ???????? ???????????????? ?????????????????? ?????????????????????????? ?????? ???????????????????? ???????????????????? ?? ?????????? + + + + + ???????????? ?????????????????? + + + + + + + ?????????????? ???????????????????? ?? ?????????? ?? ?????????? ???????? ?????????????????????????? ?????????????????? + + + + + ?????????????????????????? ?????????? + + + + + ???????????????????? ?????????? ?????????? + + + + + ?????????? ?????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + + + + ?????????????? ???????????????????? ?? ???????????????? + + + + + ?????????????????????????? ???????????????? + + + + + ?????????? ???????????????? +(?????????? ???????? ???? ???????????????? ?????? ???????????????????????? ??????????) + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? ???????????????????? ?? ?????????????? ?????????????????? + + + + + ?????????????????????????? ?????????????????? + + + + + ???????????????????? ?????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + ?????????????? ???????????????????? ?? ?????????? ?????????????????? + + + + + ?????????????????????????? ?????????????????? + + + + + ???????????????????? ?????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ?????????????? ?? ???????????????? ?????????????????????????? ?????????????????? + + + + + + + ?????????????? ???????????????????? ?? ?????????????? + + + + + ?????????????????????????? ?????????????? + + + + + ???????????????????? ?????????? ?????????????? + + + + + ?????????? ?????????????? + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ???????????? ?????????????? ????????????. ?? ImportResult/CRUDResult/UniqueNumber ???????????????????? ???????????????????? ?????????? ??????????, ?????????????????????? ???? ?? ?????? ?????? + + + + + + + + ???????????????? ???? + + + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? (?????? ???????????????????? ???????????? ????) + + + + + ?????????????????????????? ?????????????????? ???? (?????????????????? ????????????????????????????????, ?????????????????? ?????????????????????? ??????????, ?????????????????? ???? ?????????????????? ?? ??????) + + + + + + + + + + + + + + + + + + + ???????????????? ???????????????????????? ???????????????????????????? ???? ?? ???????????? ?????????????? + + + + + + + + ?????????????? ?????????????? ???????????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????????? ???? ?? ?????? ?????? (?????? ???????????????????? ???????????? ????) + + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ?????????????? ???????????? + + + + + + + ?????????????????? ???? + + + + + + + + + + + + + + + + + + + + + + ???????????????? ?????????????? ?????????????????????????? ?? ?????????????????? ?????????????? ???????????????????????? ?????????? ???????????????????????? ?????????????? + + + + + + ?????????????????????????? ?????????????????? ?????????????? ?????????????????????????? ?? ?????????????????? ?????????????? ???????????????????????? ?????????? ???????????????????????? ?????????????? + + + + + + + + ?????????????? ?????? ?? ?????????????????? ?????????????? ???????????????????????? ?????????? ???????????????????????? ?????????????? + + + + + + ?????????????????????????? ?????????????? ?????? ?? ?????????????????? ?????????????? ???????????????????????? ?????????? ???????????????????????? ?????????????? + + + + + + + + + + + + + ?????????? ???????????????? ??????????/???????? ???????????????????????????? ?????????????????????? + + + + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? (?????? ???????????????????? ???????????? ????) + + + + + + + + + + + ???????????? ???????????????????????????? ?????????? ???? + + + + + + + + ????????????????/???????????????????? ???????????????????????????? ???????????? ???? +AccountGUID - ?????? ???????????????? ???????????????????????????? ???????????? ???? +IndividualServiceGUID - ?????? ???????????????????? ???????????????????????????? ???????????? ???? + + + + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? (?????? ???????????????????? ???????????? ????) + + + + + + + + + + + + ???????????????? ???????????????????????????? ???????????? + + + + + + + + + + + + + + + + + + + + + ?????????????? ???????????????????????????? ?????????? ???????????????? ?????????? + + + + + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ???????????????????????????? ?????????? ???????????????? ?????????? + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? (?????? ???????????????????? ???????????? ????) + + + + + ???????????? ?????????????? ?? ?????????????? ????????????? + + + + + + + + + ???????????????? ???????????? ???????????????? ?????????? +(???????????????? ???? ?????? ???????????????????? ???????????? ?? ???? (?? ?????? ?????????? ???????????? ????, ?????????????????? ????)) + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????? ?????????? + + + + + + + + ???????????? ???? ?????? ???????????????????? ?? ?????? ?????? + + + + + ?????????????????? ?????????????????????????? ?? ?????? ?????? ???? (?? ?????? ?????????? ???????????? ????, ?????????????????? ????) + + + + + + ?????????????????????????? ???????????? ???? (?????? ???????????????????? ????????????) + + + + + + ???????????????????? ?????????????????????????? ???? ???? ???????????? ???????????????? ??????????????????. ???????????????????? ???????????????? ?????? ???????????????????? ???????????????? ???? ???? + + + + + ???????????????????? ?????????????????????????? ???? ?????????? ???????????? ???????????????? ?????????????????? + + + + ???????????????? ???????????????????????? ???? + + + + + + + + ?????????????? ???? ?? ?????????????? ?????????????????????? ?? ?????? ?????? ????. ???????????????? ???????????????? ????????????, ???????? ?????? ???????????????? ???? ???????????????????? ?????????????? "?????????? ??????????????(????) ???????????????????????? ?? ?????????????? ???????????????????? ???????????????? ??????????". ???????????????????? ?????????????????? ???????????????????? ?????????????????? ?????????????????? ???? + + + + + + ?????????????????????????? ???????????? ????, ?????????????????????? ?? ?????? ??????, ?? ?????????????? ?????????????????? ???????????????????? ?????????? ???????????????? ???? + + + + + + + + ?????????????????? ???? ?????? ???????????? ???? ???????????? ???? + + + + + + ?????????????? ??????????????????. ???????????? ???? ?????? "?????????????? ?????????????????? ?????????????? ??????????" (???????????????????? ?????????? 21). + + + + + + + + ?????????????????? ???? ?? ?????????????? ???? ???????????? ???? + + + + + + ???????? ?????????????? + + + + + + ???????????? ?? ???????????? ???????????????? ?????????????? + + + + + ???????????? ?? ???????????? ???????????????????? ?????????????? - ?????????????????????? ?????????????? ???????????? ???? ???? ?????????? (?????? 224). + + + + + + ?????????????????? ???? ?????? ?????? ???????????? + + + + ?????????????????? ???? ???? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ?????????????????? ???? ???? (?????????????????????????? ??????????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ???????????? ???? ????. ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ???????????? ?????????????????????? ???? + + + + + + ???????????????? ???? ???????????????????????? (?????????????????????????? ???????????? ???? ?? ?????? ??????) + + + + + + + + + + + + + + + + + + + + + + + + + + ?????????????? ???? + + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???? + + + + + + ?????????????????? ????, ?????????????????????? ?? ?????????????????????????? ?????? ???? ???????? ???????????????? ?????????????????? ???????????? ?????????????? ?????????????????????? (???????????????? ?????????????????????? ???????????? ?????? ????????) (???????? ?????????????? ???? ????????????????????, ???? ?????????? ?????????????????? ?????? ????????, ?????????????????? ?????????????? ?????????????????????? ?????? ??????????????????) + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????? ?????????????????????? + + + + + + ?????? ?????????????? ?????????? (?????? 27) + + + + + ???????????????????????? ???????????? (?????? 2) + + + + + + ???????? ?????????????????? ???????? + + + + + ???????? ?????????????????? ?????? + + + + + ?????????????????? ???????????????????????????? + + + + + ???????? ?????????? ?? ???????????????????????? ???????? + + + + + ???????? ?????????? ?? ???????????????????????? ?????? + + + + + + + ???????????????? ?? ???????????????? ?????? ?????? ?? ???? ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ???? + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? + + + + + ???????????? ???????????????? +???????????????????? ????????????????: +Active-???????????????? +Archival-???????????????? + + + + + + + + + + + ?????????????????????????? ???????????? ???? + + + + + ?????????? ???????????? + + + + + ???????????? ???????????? + + + + + ???????? ?????????????????????? + + + + + ??????????????????????, ?? ?????????????? ???????????? ?????????? ?????????????????? ???? ?????????? ?????????????????????????? ?????? ???? ???????? ???????????????? ?????????????????? + + + + + + + + + + ?????????? ?????????????? ?????????? ?? ?????? ?????? + + + + + + + + + ???????????? ???????????????? ?? ???? + + + + + + + + + + + + + + + ???????????????? ???? + + + + + + + + + ???????????? ???????????????????? + + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + + + + + + + + + + + ???????????????? ?????????????????? ?? ???????????? ???? + + + + + + + + ?????????????????????? ???????????? ???? ???????????????? ???????????????? ?????? ?????? ?????? ?????????????????????????? ???????????????????? ???????????????? ???? ?????????????????????? ???????????????? ?? ???????????????? ????????????????/???????????????? ???????????????????? ?? ???????????????? ???????????????????? ?????? + + + + + ?????????????????????? ???????????? + + + + + + + + ???????????????????? + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + + + + + + ?????????????????? + + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + + + + + + ?????????????????????????? + + + + + + + + + + + + + + + ?????????????????? (true) ?????? ?????????????????? (false) ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. ???????? ?????????????? ???? ??????????????, ?????????????????????? ???????????????? ???????????????????? ?????????????????? "?????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????? ???????? ???????????? ???? ???????? ??????????????????". ?????????? ???????? ?????????????? ???????????? ???????? ???????? ???????? ???? ???????? ???????????? ???????????????????? ?? ?????????????? "??????????????????". + + + + + + + + + + ?????????????????????? ????, ?? ?????????????????? ???????????????? ???????? ???????????????? ???????????? ???? ?????????????????? ?????????????????????? ???????????????? ?? ???? + + + + + + + + + + + + + + ?????????????????????? ???? + + + + + + + + + + ???????????????????????????? ???? ????????. ???????? ???? ??????????????, ???? ?????????????? ???????????????????????????? ???? ????????, ???????????? ???????? ?????????????????? ???????????????? - ???????? ???????????????????? ?? ????????. + + + + + + + + + + ?????????????????????? ???? + + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ??????????????" (???????????????????? ?????????? 54) + + + + + ?????????????????? + + + + + + + + + + + ?????????????????????????? ???? + + + + + + + + + + + + + + + ???????????????????? ???????????????? ?? ?????????????? ?????????? + + + + + + + + + + + + + + ?????????????????????????? ???????????????? ?? ?????????????? ?????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ???????????? ???????????????? ???????????? + + + + + + + + + + + + ???????????????? ???????????? + + + + + + + + ???????????? ????????????????????. ???????? ?????????? ???????????????? ???????????????????? ?????????????? ???????? ?????????????????? ???????????????????????????? ???????????????? ?????????? ???????????????????? ?????????????????? ?????????????????? "5000" + + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ???????????????????????? ???? ???????????????? ???????????????????? + + + + + + + + + + + + + + + ???????????????? ?????????????????? ?? ???????????? ???????????? + + + + + + + + ???????????? ????????????????????. ???????? ?????????? ???????????????? ???????????????????? ?????????????? ???????? ?????????????????? ???????????????????????????? ???????????????? ?????????? ???????????????????? ?????????????????? ?????????????????? "5000" + + + + + + + + ???????????????????? + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ???????????????????????? ???? ???????????????? ???????????????????? + + + + + + + + + + ?????????????????? + + + + + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ???????????????????????? ???? ???????????????? ???????????????????? + + + + + + + + + + ?????????????????????????? + + + + + + + + + + + + + + + + + + + + ?????????????????? ?????????? ???????????????? ?????????? + + + + + + + + + ???????????????????????????? ???? ????????. ???????? ???? ??????????????, ???? ???????? ?????????????????? ???????????????????? ???????????? ???????????? ?? ???????? ?????????? ?????????????????????????? ???? 1 ??????. + + + + + + + + + + ?????????????????????? ???????????????? ???????????? + + + + + + + + ?????????????? ?????????????????????? ???????????????? ???????????? + + + + + + + + + + + + + + + + ?????????????????????????? ???????????? + + + + + + + + + + + + + + ???????????????????? ???????????????? ?? ?????????????? ?????????? + + + + + + + + + + + + + + ?????????????????????????? ???????????????? ?? ?????????????? ?????????? + + + + + + + + + + + + + + + + + + + + + ?????????????? ????/?????????????? + + + + + + + + + + + + + + + + + ???????????????????????????? ???????????????? ?????????????? ???? ?????????????????????? ???????????????? + + + + + + ?????????????????? ???????????? ?? ?????????????????? ?????????????????????? ?? ???????????????? ???????????????????? ???? ???????????????????? ?????? + + + + + ?????????????????? ???????????? ?? ?????????????????? ???????????????????????????????? ???????? + + + + + + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ????/?????????????? + + + + + + + + + ???????????? ????: + Project - ???????????? + ApprovalProcess - ???? ?????????????????????? + Approved - ?????????????????? + Rejected- ???????????????? + Terminated - ????????????????????/???????????? + Reviewed - ???????????????????? + Annul - ???????????????? ???????????????????????? + + + + + + + + + + + + +?????????????????? ??????????????????: + Running - ?????????????????????? + NotRunning - ???? ?????????????????????? + Expired - ?????????? ???????? ???????????????? + + + + + + + + + + + + ?????????????????????? ???????????? + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????? ???????????????????????? ??????????????: + Project - ???????????? + ApprovalProcess - ???? ?????????????????????? + Approved - ?????????????????? + Rejected- ???????????????? + Terminated - ???????????????????? + Reviewed - ???????????????????? + Locked - ???????????????????????? + + + + + + ?????????????? ?????????????????????? ?? ???????????????? ???????????????????? ???? ???????????????????? ?????? + + + + + ?????????????? ???????????????????????????????? ???????? + + + + + + + + ?????????? ???????????? + + + + + + + ?????????????? ?????????????? ?????????????????????? ????/?????????????? + + + + + + + + ?????????????????? ???????????????? ?? ?????????????????????? ???? ?????????????????? ???????? + + + + + ?????????????????? ???????????????? ?? ?????????????????????? ???? ?????????????????? ???????? + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ????/?????????????? + + + + + + + + + ???????????????????????????????? ????/?????????? + + + + + + + + + + ???????????? ????: + Project - ???????????? + ApprovalProcess - ???? ?????????????????????? + Approved - ?????????????????? + Rejected- ???????????????? + Terminated - ????????????????????/???????????? + Reviewed - ???????????????????? + Annul - ???????????????? ???????????????????????? + + + + + ?????????????????????????? ???????????????????? ???????????? ???????????????? + + + + + + + + + + ?????????????????????????? ???????????????????? ???????????? ???????????? ?? ?????? ?????? + + + + + + + +?????????????????? ??????????????????: + Running - ?????????????????????? + NotRunning - ???? ?????????????????????? + Expired - ?????????? ???????? ???????????????? + + + + + + + + + + + + ?????????????????????? ???????????? + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????? ???????????????????????? ??????????????: + Project - ???????????? + ApprovalProcess - ???? ?????????????????????? + Approved - ?????????????????? + Rejected- ???????????????? + Terminated - ???????????????????? + Reviewed - ???????????????????? + Locked - ???????????????????????? + + + + + + ?????????????? ?????????????????????? ?? ???????????????? ???????????????????? ???? ???????????????????? ?????? + + + + + ?????????????? ???????????????????????????????? ???????? + + + + + ?????????????????????????? ???????????????????? ???????????? ?????????????? ???????????????????? ?? ?????? ?????? + + + + + + + + ?????????? ???????????? + + + + + true, ???????? ????/?????????? ?????? ??????????????????????????, false ???????? ???? ?????? + + + + + ???????????????? ?????????????? ?????????????????????? + + + + + + + + + + + + + + ?????????????? ????/??????????????. + +?????????????????? ???????????? ?????????????? ????????????????: 10.0.1.1, 13.0.0.1 ?? 13.1.2.1 + + + + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ????/?????????????? + + + + + ???? + + + + + + + + ???????????????????? ?? ?????????????????????? ???? + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ??????????????" (???????????????????? ?????????? 54) + + + + + + + + + + ???????????? ???? ?? ?????? ??????: +Project - ???????????? +ApprovalProcess - ???? ?????????????????????? +Approved - ?????????????????? +Rejected - ???????????????? +Reviewed - ???????????????????? +Terminated - ????????????????????/???????????? +Annul - ???????????????? ???????????????????????? + + + + + + + ???????????? ???????????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????? ???????????????????? ?? ?????? ?????? + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????? ???? ???????????????????? ?????????????? ???????????????????? ???? ???? + + + + + + ?????????????????? + + + + + ???????? ???????????????????? + + + + + + + + ???????????? ?? ?????? ?????? +???????????????????? ????????????????: +Project-???????????? +ApprovalProcess-???? ?????????????????????? +Rejected-???????????????? +Approved-?????????????????? +Locked-???????????????????????? + + + + + + + + + + ???????????????? ?? ?????????????? ?????????? + + + + + + + + + ???????????? ????????????: +(P)laced - ???????????????????? ?????????????????? +(A)nnulled - ???????????????????? ???????????????????????? + + + + + + + + + + + + + + + + + + + + + + ?????????? + + + + + + + + ???????????????????? ?? ?????????????????????? ???????????????? ???????????? + + + + + + + + ?????????????? ?????????????????????? ???????????????? ???????????? + + + + + + + + + + + + + + + ???????????? ???????????? ?? ?????? ??????: + Project - ???????????? + Reviewed - ???????????????????? + ApprovalProcess - ???? ?????????????????????? + Approved - ?????????????????? + Terminated - ????????????????????/???????????? + Rejected - ???????????????? + Annul - ?????????????????????? + + + + + + + + ???????????? ???????????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????? ???????????????????? ?? ?????? ?????? + + + + + ?????????????????? + + + + + ???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 1) + + + + + + + + ?????????????????? + + + + + + + + + + ???????????????? ???? ???????????????????? ?????????????? ???????????????????? ???? ???????????? + + + + + + ?????????????????? + + + + + ???????? ???????????????????? + + + + + + + + ???????????? ?? ?????? ?????? +???????????????????? ????????????????: +Project-???????????? +ApprovalProcess-???? ?????????????????????? +Rejected-???????????????? +Approved-?????????????????? +Locked-???????????????????????? + + + + + ???????????????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ???????????????????????? ???? ???????????????? ???????????????????? + + + + + + + + + + ???????????????? ?? ?????????????? ?????????? + + + + + + + + + ???????????? ????????????: +(P)laced - ???????????????????? ?????????????????? +(A)nnulment - ???????????????????? ???????????????????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ?????????????????????????? ???? ?? ?????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????? ???????????????????? ???? + + + + + ?????????????????? ?????? ???????????????? ???????????? ?????????????? ???????????? ????/????????????. ???????? ?????????????? ???? ????????????, ???????????????? ???????????????? ?????? ???????????? ?????????????????? + + + + + + + + ???????????? ???????????? (?????????????? ???? ?????????????????????? ?????????? ???????????????????? ) + + + + + + + + + + + + + ?????????????????????????? ???????????? ???????????? ?? ?????? ?????? + + + + + + + ????????????????\?????????????????? ???????????? + + + + + + + + ???????????? ???????????????? ?????????? ???? ???????????????? ?? ???????????????????????????? ?? ?????????????????????? ?????????? ???????????? ?????????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + ???????????? ?????????????? + + + + + ?????????????????? ?????????????? + + + + + + ???????? + + + + + + + + + + + + + + + + + + ?????????????????????????? ???????? + + + + + + + + + ???????????????????? ???????????????? ?? ???????????????? ?????????? + + + + + + + + ?????????????????????????? ???????????? ???????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ?? ???????????????? ?????????? ?? ?????? ?????? + + + + + + ???????????? + + + + + + + + + + + ?????????????????? ???? ???????????? + + + + + ???????????? ?????????????????????????? (-)/?????????????????? (+) ???? ???????????? + + + + + ???????????????? ???? ???????????? + + + + + + + + ?????????????????????????? ???????????????? ?? ???????????????? ?????????? + + + + + + + + + ?????????????????????????? ???????????? ???????????????? ?? ???????????????? ?????????? ?? ?????? ?????? + + + + + + + + + + ???????????????? ???????????????? ?? ???????????????? ?????????? + + + + + + + ?????????????????????????? ???????????? ???????????????? ?? ???????????????? ?????????? ?? ?????? ?????? + + + + + + + + + + + + + + + + + + ?????????????? ???????????? + + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? + + + + + ???????? ???????????? ???????????????? ???????????????? + + + + + ???????? ?????????????????? ???????????????? ???????????????? + + + + + + + ???????????????? ?????????????????????????? ???????????? (???? ???????????????? ???? ???????????? ?? ????????????) + + + + + ?????????????????????????? ???????????? ???????????? + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ???????????? + + + + + ?????? + + + + + + + + + ?????????????????? ???????????????? + + + + + + ?????????? ???????????? + + + + + ???????????? ???????????? + + + + + ???????????? ???????????????? ?????????? ???? ???????????????? ?? ???????????????????????????? ?? ?????????????????????? ?????????? ???????????? ?????????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + ???????????? ?????????????? + + + + + ?????????????????? ?????????????? + + + + + + ???????? + + + + + + + + + + + + + ???????????????? ?? ???????????????? ?????????? ?? ?????????????????????????? ???? ?????????? ?????????? + + + + + + ?????????????????????????? ???????????? ???????????????? ?? ???????????????? ?????????? ?? ?????? ?????? + + + + + ???????????? + + + + + + + + + + + ?????????????????? ???? ???????????? + + + + + + + + + + + ???????????? ?????????????????????????? (-)/?????????????????? (+) ???? ???????????? + + + + + + + + + + + ???????????????? ???? ???????????? + + + + + + + + + + + + + + ?????????????? ???????????????? ???? ?????????????????????????? ????????????? + + + + + + + + + + + + ???????????? ???????????????? ???????????????????????????????? + + + + + + + + ?????????????? ???????????????????????????????? + + + + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? ???????????????????? ?????????????? ?????????????????????????? ?????????????????? ???????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + ????????????????/?????????????????? + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????????????????? ?????????????? ?? ???????????? ???????????????? + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????? ???? ???????????????????????? ?????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?????? + + + + + + + + + + + + + + + + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ?? ???????????????????????????????????? ???????? ???????????? + + + + + + + + ???????????? ???? ?????? ?? ???????????? + + + + + + + ???????????? ???? ?????? ?? ???????????????????? ?????????????????????? + + + + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ?? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + + + + ?????????????????????? + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ????????????????" (???????????????????? ?????????? 54) + + + + + + + + + + ?????????????????????? + + + + + + ???????? ?????????????????? ?????????????????????? + + + + + + + + ?????????????????????????? + + + + + + + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ?????????????????? ???????????????????????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + + ???????????? ?????????????? ???????????????? ???????????????????????????????? + + + + + + + + ?????????????? ???????????????????????????????? + + + + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? ???????????????????? ?????????????? ?????????????????????????? ?????????????????? ???????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + ????????????????/?????????????????? ?????????????? ???????????????? ???????????????????????????????? + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????? ???? ???????????????????????? ?????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????????????????? ?????????????? ?? ???????????? ???????????????? + + + + + + + + + ???????????????? ?????????????? ???????????????? ????????????????????????????????. ?? ?????????????????????? ?????????????????? ???????????????????????????????? ?????????????????? ?????????????????? ???????????? ???????????????? ?? ?????????????? "????????????" + + + + + ???????????????????? ?????????????? ???????????????? ???????????????????????????????? + + + + + + + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ?????????????????? ???????????????????????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + + ???????????? ???? ?????????????? ?????????????????? ????????????????????????????????. + +?????????????????? ???????????? ?????????????? ????????????????: 11.11.0.2 ?? 13.1.1.1 + + + + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + ???????????????? ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? ?????? ?????????????????? ???????????????? ?????????????????? 1000 ?????????????????? ?????? ?????????????????? ???????????????? ???? ?????????????????????? + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? "??" + + + + + ???????? ???????????????????? "????" + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????? ???????????????? + + + + + + ?????????????? ???????????????? +???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + + + + + + ???????????? ???????????????? ?????????????????? ?????????? ?? ?????????????? ???????????????????????????????? + + + + + + + + + ???????????????????? ?????????????? ?????????????????????????? ?????????????????? ???????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? + + + + + + + ????????????????????/?????????????????? ???????????????????? ???? ?????? + + + + + + + + ???????????????????????? ???????????? ?? ???????????????????????? ????????????, ???????????????????????? ?? ???????????? ?????????????????? ?????????? + + + + + + + + ?????? ?????????????? ???????????????????????????? (?????????????????????? ?????? ???????????????????????? ???????????????? "???????????????? ??????????????" ?? "?????????????? ????????") + + + + + + ????????????????/???????????????? + + + + + + + + + + + ????????????????????????????????/???????????????????????????????????? + + + + + + + + + + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ?????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????". ?????????? ???????? ????????????, ???????????? ???????? ???????????????????? ???????????????? ???????????????????????? ???????????????? ?????????????? ?? ?????????????? ???????????????? ?????????????????? ?????????? ?? ?? ?????????? ???????????????????????? ?? ???????????? ?????????????????? ?????????? ???????????????????????? ?????????? ???????????? "???????????????? ??????????????????????????" ??/?????? "?????????????? ??????????????????????????" + + + + + ???????????????????? ???????????????? (???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ?????????????????????? ?????? ????????????????????, ???????? ???????????????????? ???????????????? ?????????????? ?? ?????????????? ?????? ?????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ????????" ?????????????????????? ???????????????????? ????????????????????, ???????????????????????? ?????? ???? "?????????????? ????????" ?? ?????????????????????? ?????????????????????? ???????????????? ???????????????????????? ???????????????? ?????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ??????????????" ???????????????????? ?? ?????????????????????? ???????????????? ???? ?????????????????????? ???????????? ?? ?????? ????????????, ???????? ?????? ???????????????? (???????? ???????????????????? ?????????????? ?? ?????????????? ????????????????) ?????? ?????? ?? ???????????????? (???????? ???????????????????? ?????????????? ?? ?????????????? ??????) ?????????? ?????????????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ????????" + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????? ????????????????. ???????????? ???? ?????? "???????????????????? ???????????????? ???????????????????????? ????????????????" (???????????????????? ?????????? 276) + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????? ???????????????????? ???????????????? ?????????????????????????? ?????????????? (???? ???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ?????????? ???????? ?????????????? ????????????, ???????? ???????????????????? ???????????????? ?????????????? ?? ?????????????? ?????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????????? ???????????????????? + + + + + + + ?????????????????????????? ???????????????? ???????????????????? ???????????????? + + + + ?????????? + + + + + ???????????????? + + + + ???????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + ???????????????? ?????????????????????????? + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????????????????? ?? ?????????????????????????? ??????????????. ???????????????? ?????? ????????????????????, ???????? ?? ???????????? ?????? ???????? ???? ?????? ?????????????????????? ???????????? "???????????????? ??????????????". + + + + + + ?????????????????????? ?????????????????? ?????????????? + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + + + + ???????????????? ?????????? ?? ?????????? ???????????? ???? ??????. ?????????? ???????? ?????????????????? ???????????? ???????? ???????????????? ?????????? ?? ?????????? ???????????? ?????????????? ?? ?????????????? ?????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????? ?????????? + + + + + ?????????????? ??????????????????. +?????????????????????? ?????? ???236 "?????????? ???????? ???????????????????????? ????????????, ?????????????????????????????? ?????????????? ?? ???????????? ?????????????????? ???????????? ????????????" + + + + + ?????????? ???????????? + + + + + + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. ??????????????????????, ???????? ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? ?? ?????????????? ?????? + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?? tns:CountingResource ??????????????"??????" . ?? ?????????????????? ?????????????? ???? ??????????????????????. + + + + + ???????????????????? ?? ?????????????????????? ???????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ???????????????????????????????????? ???????? ???????????? + + + + + + + + ???????????????????? ?? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + + + + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????????????????? ?????????????? ?? ???????????? ?????? + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????? ???? ???????????????????????? ?????????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ?? ???????????????????????????????????? ???????? ???????????? + + + + + + + + + ???????????????? ?????? ???? ???????????????? ???????????????????????????????? + + + + + + + + + + + + + + ???????????????? ???????????????????????? ?????????????????????????? ???????????????????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????????????? ?????????????? ?????????????????? ?????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + ???????????????? ???????????????????????? ?????????????????? ???????????????????????????? ???????????????? ?? ???????????? ?????????????? + + + + + + + + ???????????? ???? ?????????????? ???????????????? ?????????????????? ?????????? ???? ???????????????? ????????????????????????????????. + +?????????????????? ???????????? ?????????????? ????????????????: 11.6.0.1 ?? 13.1.1.1 + + + + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? ?????? ?????????????????? ???????????????? ?????????????????? 1000 ?????? ?????? ?????????????????? ???????????????? ???? ?????????????????????? + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + + + + + + ???????????? ???? ?????????????? ???????????????????????? ?????????????? ???????????????????? ?? ???????????????? ????????????????????????????????. + +?????????????????? ???????????? ?????????????? ????????????????: 11.14.0.1 ?? 13.1.1.1 + + + + + + + + + ???????????????? ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? ?????? ?????????????????? ???????????????? ?????????????????? ???????????????? ?? ????????????????????. ?????? ?????????????????? ???????????????? ???? ?????????????????????? + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? ?????? ?????????????????? ???????????????? ?????????????????? ???????????????? ?? ?????? ???????????? ???????????????? ?? ??????????????????????????????, ?????????????????? ?? NextPageContractRootGUID. ?????? ?????????????????? ???????????????? ???? ?????????????????????? + + + + + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? "??" + + + + + ???????? ???????????????????? "????" + + + + + ?????????????? ???????????????? + + + + + + ?????????????? ???????????????? +???????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + + + + ??????????????????????, ?????????????????????? ?????????????? + + + + + + + + + + + + ?????????????????? ???????????????? ?????????????????? ???????????????????????????????? + + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????????????? ???????????????? + + + + + + ???? ?????????????? ?? ???????? + + + + + ?????????????????????? + + + + + ?????????? ???????? ???????????????? + + + + + + + + ?????????? ???????????? ???????????????? + + + + + + + + ???????????? ???????????? ???????????????? + + + + + + ???????????????? + + + + + ???????????????????? + + + + + ???????????? + + + + + ???????????????????? ???????????????????????? + + + + + + + + ???????????????????? ?? ?????????????????????? + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ????????????????" (???????????????????? ?????????? 54) + + + + + + + + + + ?????????????????????????? + + + + + + + + + ?????????????? ???????????????????????????????? + + + + + + ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?????????????????????? ??????????) ??/?????? ???? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + ?????????????? ???????????????? ?????????????????? ??/?????? ?????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?? ?????????????????????? ??????????) ??/?????? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + + + ?????????????? ???????????????? ???? ???????????????????????????? ???????? + + + + + + ?????????????????????????? ???????????????????????????? ?????????????? ???? ???????? ?????? ?????? ?????????????????????? ???????? ?????????????????? ????????????????. + + + + + ???????? ?????????????????? ????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?????????????? ???????????????? ?? AutomaticRollOverOneYear + + + + + + + ???????????? ???????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ??????????. ???????????????????? ?????? ????????????????????, ???????? ?? ???????? VolumeDepends = true ?????? ???????? ???????? MeteringDeviceInformation = ??true?? + + + + + + ???????????? ?????????????? + + + + + + ???????? ???????????? + + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + ?????????? ?????????????? + + + + + + ???????? ??????????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + ?????????????????? ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. +???????????????????? ???????????????? ???????????? ????????: ?? ???????????????????? ?????????????????????? ?????????????????????? ?????????????????? ???????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????? ???????? ?????????????? ?????? ?? ???????????????????? ?????????????????????? ?????????????????????? ?????????????????? ???????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ???????????? ?? ??????????, ?????????????????????????? ?? ????????????????, ?????? ?? ?????????? ???????? ????????????, ???????? ?? ???????????????? ???????????????????? ?????????????? ???????????????????? ???????????????? ?????????????????? ???????????????? ?????????? ?? ?????????? ???????? ?????????????? ?? ???????????????? Period + + + + + +???????????? ???? ?????? "?????????????????? ???????????????????? ????????????????" (???????????????????? ?????????? 58). + + + + + ???????????? ?????????????? ???????????????? + + + + ?????????????? ???????????? + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? (????????????????) ?????????????????? ?? ?????? + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? ???????? (????????????????????????) + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????????????????????? + + + + + + + + + + ?????????????????????????? ?????????????????????????? ???????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + ?????????????????????? ?????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????? ???????????? ?? ???????????? ???????????? ???????????????? ???????????????? + + + + + ?????? ?????????????? ?????????????????? ???????????? ?? ???????????? ????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. ?????????????????????? ?????? ?????????????? ?? ???????????????? ?????????????????? ???????????? ?? ???????????? ???????????????? ????????????????. + + + + + + + + + + + ?????????????? ???????????????? + + + + + + + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. ??????????????????????, ???????? ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? ?? ?????????????? ???????????????? + + + + + + + + + + + ???????????????????? ???????????????? ???????????????????????? ???????????????? ?? ?????????????????????????? ???????????? ??????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ???????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????". ?????????? ???????? ????????????, ???????????? ???????? ???????????????????? ???????????????? ???????????????????????? ???????????????? ?????????????? ?? ?????????????? ???????????????? ?? ?????????????? ???????????????? ???????????????? ???????????????????????? ???????????? "???????????????? ??????????????????????????" ??/?????? "?????????????? ??????????????????????????" + + + + + ???????????? ???? ?????????????? ?????????????????? ??????????. ?????? ?????????????? ???????????????? ???????????? ???????? ???????????????? ?????? ?????????????? ???????? ?????????? ?????????????? ?????????????????? ?????????? + + + + + + + + + ???????????????????????? ???????????? ?? ???????????????????????? ????????????, ???????????????????????? ?? ???????????? ?????????????????? ?????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????? ???????????? ???????????????? ?????????????? + + + + + ???????? ?????????????????? ???????????????? ??????????????. ???????????????? ????????????????????????, ???????? ?????????????? ???????????????? ?? AutomaticRollOverOneYear + + + + + ?????? ?????????????? ???????????????????????????? (?????????????????????? ?????? ???????????????????????? ???????????????? "???????????????? ??????????????" ?? "?????????????? ????????") + + + + + + ????????????????/???????????????? + + + + + + + + + + + ????????????????????????????????/???????????????????????????????????? + + + + + + + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ?????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????". ?????????? ???????? ????????????, ???????????? ???????? ???????????????????? ???????????????? ???????????????????????? ???????????????? ?????????????? ?? ?????????????? ???????????????? ?????????????????? ?????????? ?? ?? ?????????? ???????????????????????? ?? ???????????? ?????????????????? ?????????? ???????????????????????? ?????????? ???????????? "???????????????? ??????????????????????????" ??/?????? "?????????????? ??????????????????????????" + + + + + ???????????????? ?????????? ?? ?????????? ???????????? ???? ??????. ?????????? ???????? ?????????????????? ???????????? ???????? ???????????????? ?????????? ?? ?????????? ???????????? ?????????????? ?? ?????????????? ?????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????? ?????????? + + + + + ?????????????? ??????????????????. +?????????????????????? ?????? ???236 "?????????? ???????? ???????????????????????? ????????????, ?????????????????????????????? ?????????????? ?? ???????????? ?????????????????? ???????????? ????????????" + + + + + ?????????? ???????????? + + + + + + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. ??????????????????????, ???????? ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? ?? ?????????????? ?????? + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?? tns:CountingResource ??????????????"??????" . ?? ?????????????????? ?????????????? ???? ??????????????????????. + + + + + + + + + + + + + + ???????????????????? ???????????????? (???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ???????? ???????????????????? ?????????????????????? ?? ?????????????? ????????????????, ???? ???????????? ???? ?????? ???? ??????????????????????. ???????? ???????????????????? ?????????????????????? ?? ?????????????? ??????, ???? ???????????? ???? ?????? ??????????????????????. + + + + + + ???????????? ???? ??????, ?????????????????????? ??????????????????????, ???????? ???????????????????? ???????????????? ?????????????? ?? ?????????????? ?????? + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????? ????????????????. ???????????? ???? ?????? "???????????????????? ???????????????? ???????????????????????? ????????????????" (???????????????????? ?????????? 276) + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????? ???????????????????? ???????????????? ?????????????????????????? ?????????????? (???? ???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ???????? ???????????????????? ?????????????????????? ?? ?????????????? ????????????????, ???? ???????????? ???? ?????? ???? ??????????????????????. ???????? ???????????????????? ?????????????????????? ?? ?????????????? ??????, ???? ???????????? ???? ?????? ??????????????????????. + + + + + + ???????????? ???? ??????, ?????????????????????? ??????????????????????, ???????? ???????????????????? ???????????????? ?????????????? ?? ?????????????? ?????? + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????????? ???????????????????? + + + + + + + ?????????????????????????? ???????????????? ???????????????????? ???????????????? + + + + ?????????? + + + + + ???????????????? + + + + ???????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + ???????????????? ?????????????????????????? + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????????????????? ?? ?????????????????????????? ??????????????. ???????? ???????????????????? ???????????????? ?????????????????????? ?? ?????????????? ????????????????, ???? ???????????? ???? ?????? ?? ???????????? ???????????????? ???? ?????????????????????? ?? ?????????????? ?????????? ?????????????????????? ???????????? ???????? ???????????????? ???????????????? ???????? ???? ?????? ?????????????????????? ???????????? "???????????????? ??????????????". ???????? ???????????????????? ???????????????? ?????????????????????? ?? ?????????????? ??????, ???? ???????????? ???? ?????? ?????????????????????? ?? ?????????????? ?????????????????????? ???????????? ???????? ?? ???????????? ?????? ?????????????????????? ???????????? "???????????????? ??????????????". + + + + + + ???????????? ???? ??????, ?????????????????????? ??????????????????????, ???????? ???????????????????? ???????????????? ?????????????? ?? ?????????????? ?????? + + + + + ?????????????????????? ?????????????????? ?????????????? + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + + + + ???????????????????? ?? ???????????? ???????????? + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ????????????????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ?????????????? ???????????????? ???????????????????? ???? "?????????????????????? ??????????????????????" ?????? ???????? ?????????????????? ???????? tns:MeteringDeviceInformation ???? ??????????????????????, ???????? OneTimePayment = true + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????? ??????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ?????????????? ???????????????? ???????????????????? ???? "?????????????????????? ??????????????????????" ?? ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ?????????? ?? ?? ???????? OneTimePayment = false. ???? ??????????????????????, ???????? OneTimePayment = true + + + + + + ???????? ???????????????? ?????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ????????????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ???????????????? ???????????????? ???????????????? ???????????????????????? ????????????????????????, ?????????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????????????????? = ?????????? ?? ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ??????????. + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ???????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?? tns:CountingResource ??????????????"??????" . ?? ?????????????????? ?????????????? ???? ??????????????????????. + + + + + ?????????? ???????????????? ??????????????(????) ???????????????????????? ???? ?????????????????? ?????????????? ??????????. ???????? ???? ??????????????????????, ???????? ???????????? ?????????????? ???????????????? = ?????????????????????? ?????????????????????? ?????? ?? ???????? OneTimePayment = true + + + + + ???????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ?????? ???????????????? ?????????????????? ???????????????? ?????? ?????????????????? ?????????????? ???????????? ?????? ????????????????????????. ???????????????? ?????? ????????????????????, ???????????? ???????? ???????????? ?????????????? ???????????????? ?????????????? ???? ?????????????????????? ??????????????????????. + + + + + ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. +??????????????????????, ???????? ???????????? ???????????????? ???????????????? ???????????????? ?????????????????????? ???????????????????????? ?????????? + + + + + + + + + + + ???????????????????? ?? ?????????????????????? ???????????? + + + + + + + ???????????? ???? ?????? + + + + + ?????????? ?????????????????????? ?????? ???????? ?????? ???????????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ???????????????????????????????????? ???????? ???????????? + + + + + + + + ???????????????????? ?? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + + ???????????? ???? ?????? + + + + + ???????????????? ?????????????????????? ?????? ???????? ?????? ???????????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + + + + + + + + + ???????????????????????????? ?????????????? ???????????????????????????????? + + + + + + ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?????????????????????? ??????????) ??/?????? ???? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + ?????????????? ???????????????? ?????????????????? ??/?????? ?????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?? ?????????????????????? ??????????) ??/?????? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + + + ?????????????? ???????????????? ???? ???????????????????????????? ???????? + + + + + + ?????????????????????????? ???????????????????????????? ?????????????? ???? ???????? ?????? ?????? ?????????????????????? ???????? ?????????????????? ????????????????. + + + + + ???????? ?????????????????? ???????????????? + + + + + + + ?????????? ???????????????? ??????????????(????) ???????????????????????? ???? ?????????????????? ?????????????? ??????????. + + + + + ???????????? ???????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ??????????. + + + + + + ???????????? ?????????????? + + + + + + ???????? ???????????? + + + + + ???????????????????? ???????????? + + + + + + + + ?????????? ?????????????? + + + + + + ???????? ??????????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + ???????????????????? ???????????? + + + + + + + + + + + ?????????????????? ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ???????????? + + + + + +???????????? ???? ?????? "?????????????????? ???????????????????? ????????????????" (???????????????????? ?????????? 58). + + + + + ???????????? ?????????????? ???????????????? + + + + ?????????????? ???????????? + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? (????????????????) ?????????????????? ?? ?????? + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? ???????? (????????????????????????) + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????????????????????? + + + + + + + + + + ?????????????????????????? ?????????????????????????? ???????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + ?????????????????????? ?????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????? ???????????? ?? ???????????? ???????????? ???????????????? ???????????????? + + + + + ?????? ?????????????? ?????????????????? ???????????? ?? ???????????? ????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. + + + + + + + + + + + ?????????????? ???????????????? + + + + + + ?????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + ???????? ???????????? ???????????????? ?????????????? + + + + + ???????? ?????????????????? ???????????????? ?????????????? + + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. + + + + + ???????????????????? ???????????????? ???????????????????????? ???????????????? ?? ?????????????????????????? ???????????? ??????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ???????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????" + + + + + ???????????????????? ???????????????? (???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ???????????????????? ??????????????????????, ???????? ???????????????????? ?????????????? ?? ?????????????? ????????????????. + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????? ????????????????. ???????????? ???? ?????? "???????????????????? ???????????????? ???????????????????????? ????????????????" (???????????????????? ?????????? 276) + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + ?????????? + + + + + + ???????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + ???????????????? ?????????????????????????? + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????? ???????????????????? ???????????????? ?????????????????????????? ?????????????? (???? ???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ???????????????????? ??????????????????????, ???????? ???????????????????? ?????????????? ?? ?????????????? ????????????????. + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????????? ???????????????????? + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????????????? ?????????? ?? ?????????? ???????????? ???? ??????. ???????????????????? ??????????????????????, ???????? ???????????????? ?????????? ?? ?????????? ???????????? ?????????????? ?? ?????????????? ????????????????. + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????? ?????????? + + + + + ?????????????? ??????????????????. +?????????????????????? ?????? ???236 "?????????? ???????? ???????????????????????? ????????????, ?????????????????????????????? ?????????????? ?? ???????????? ?????????????????? ???????????? ????????????" + + + + + ?????????? ???????????? + + + + + + + + ???????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ?????? ???????????????? ?????????????????? ???????????????? ?????? ?????????????????? ?????????????? ???????????? ?????? ????????????????????????. + + + + + ???????????????????? ?? ???????????? ???????????? + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ????????????????????, ???? ??????????????. + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????? ??????????, ???? ??????????????. + + + + + + ???????? ???????????????? ?????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ????????????????, ???? ??????????????. + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ???????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + + + + ?????????????? ???????????????? ?????????????????? ?????????? ???? ???????????????? ???????????????????????????????? + + + + + + + ???????????????????? ?? ???? ?? ???? ???? ?????? + + + + + + + + ?????? ?????????????? ???????????????????????????? (?????????????????????? ?????? ???????????????????????? ???????????????? "???????????????? ??????????????" ?? "?????????????? ????????") + + + + + + ????????????????/???????????????? + + + + + + + + + + + ????????????????????????????????/???????????????????????????????????? + + + + + + + + + + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ?????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????" + + + + + ???????????????????? ???????????????? (???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????????? ?? ???? ?? ???? ???? ?????? + + + + + ???????????????????? ????????????????. ???????????? ???? ?????? "???????????????????? ???????????????? ???????????????????????? ????????????????" (???????????????????? ?????????? 276) + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????? ???????????????????? ???????????????? ?????????????????????????? ?????????????? (???? ???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????????? ?? ???? ?? ???? ???? ?????? + + + + + ???????????????????????? ???????????????????? + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????????????? ?????????? ?? ?????????? ???????????? ???? ??????. + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????????? ?? ???? ?? ???? ???? ?????? + + + + + ???????????????? ?????????? + + + + + ?????????????? ??????????????????. +?????????????????????? ?????? ???236 "?????????? ???????? ???????????????????????? ????????????, ?????????????????????????????? ?????????????? ?? ???????????? ?????????????????? ???????????? ????????????" + + + + + ?????????? ???????????? + + + + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????? ???????????? ???????????????? + + + + + + + + ???????????? ???????????? ???????????????? + + + + + + ???????????????? + + + + + ???????????????????? + + + + + ???????????? + + + + + ???????????????????? ???????????????????????? + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. ??????????????????????, ???????? ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? ?? ?????????????? ?????? + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?? tns:CountingResource ??????????????"??????" . ?? ?????????????????? ?????????????? ???? ??????????????????????. + + + + + + + + + ?????????????? ???????????????????????????????? (????????????) + + + + + + ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?????????????????????? ??????????) ??/?????? ???? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + ?????????????? ???????????????? ?????????????????? ??/?????? ?????????????????????? ?????????????????????? ???? ???????????????? ???????????????? (?? ?????????????????????? ??????????) ??/?????? ???????????????? ?? ?????????????????? ?????????????? ?????????????????? ?? ?????????????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????? ???????????????????????????????? ?? ???????????????????? ?? ???????????????? + + + + + + + + + + ?????????????? ???????????????? ???? ???????????????????????????? ???????? + + + + + + ?????????????????????????? ???????????????????????????? ?????????????? ???? ???????? ?????? ?????? ?????????????????????? ???????? ?????????????????? ????????????????. + + + + + ???????? ?????????????????? ????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?????????????? ???????????????? ?? AutomaticRollOverOneYear + + + + + + + ???????????? ???????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ??????????. ?????????? ???????? ???????????? ????????????, ???????? ???????? VolumeDepends = true -??????- ???????? MeteringDeviceInformation = ??true?? + + + + + + ???????????? ?????????????? + + + + + + ???????? ???????????? + + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + ?????????? ?????????????? + + + + + + ???????? ??????????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + ?????????????????? ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. +???????????????????? ???????????????? ???????????? ????????: ?? ???????????????????? ?????????????????????? ?????????????????????? ?????????????????? ???????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????? ???????? ?????????????? ?????? ?? ???????????????????? ?????????????????????? ?????????????????????? ?????????????????? ???????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ???????????? ?? ??????????, ?????????????????????????? ?? ????????????????, ?????? ?? ?????????? ???????? ????????????, ???????? ?? ???????????????? ???????????????????? ?????????????? ???????????????????? ???????????????? ?????????????????? ???????????????? ?????????? ?? ?????????? ???????? ?????????????? ?? ???????????????? Period + + + + + +???????????? ???? ?????? "?????????????????? ???????????????????? ????????????????" (???????????????????? ?????????? 58). + + + + + ???????????? ?????????????? ???????????????? + + + + ?????????????? ???????????? + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? (????????????????) ?????????????????? ?? ?????? + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????? ???????????????????????? ???????????? ???????? (????????????????????????) + + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + + + + ?????????????????????? ?????????????????????? + + + + + + + + + + ?????????????????????? ?????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + ?????????????????????????? ?????????????????????????? ???????????????????????????????? ???????? + + + + + + ???? ?????????????????? ???????????????????????? ?????? ???????????????????????? + + + + + ?????????????????????? (?????????????????????? ???????? ?????? ???????????????????????????? ??????????????????????????????) + + + + + ???????????????????? ???????? + + + + + + + + + ?????????????? ?? ???????????????? ?????????????????? ???????????? ?? ???????????? ???????????? ???????????????? ???????????????? + + + + + ?????? ?????????????? ?????????????????? ???????????? ?? ???????????? ????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. ?????????????????????? ?????? ?????????????? ?? ???????????????? ?????????????????? ???????????? ?? ???????????? ???????????????? ????????????????. + + + + + + + + + + + ?????????????? ???????????????? + + + + + + + + + + + + + + ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. +??????????????????????, ???????? ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? ?? ?????????????? ???????????????? + + + + + + + + + + + ???????????????????? ???????????????? ???????????????????????? ???????????????? ?? ?????????????????????????? ???????????? ??????????????: +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ???????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????". ?????????? ???????? ????????????, ???????????? ???????? ???????????????????? ???????????????? ???????????????????????? ???????????????? ?????????????? ?? ?????????????? ???????????????? ?? ?????????????? ???????????????? ???????????????? ???????????????????????? ???????????? "???????????????? ??????????????????????????" ??/?????? "?????????????? ??????????????????????????" + + + + + ???????????????????? ???????????????? (???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). ?????????????????????? ?????? ????????????????????, ???????? ???????????????????? ???????????????? ?????????????????????? ?? ?????????????? ????????????????. ?????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ????????" ?????????????????????? ???????????????????? ????????????????????, ???????????????????????? ?????? ???? "?????????????? ????????" ?? ?????????????????????? ?????????????????????? ???????????????? ???????????????????????? ???????????????? ?????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ??????????????" ???????????????????? ?? ?????????????????????? ???????????????? ???? ?????????????????????? ???????????? ?? ?????? ????????????, ???????? ?????? ???????????????? (???????? ???????????????????? ?????????????? ?? ?????????????? ????????????????) ?????? ?????? ?? ???????????????? (???????? ???????????????????? ?????????????? ?? ?????????????? ??????) ?????????? ?????????????? ???????? ???? ?? ???? "?????????????? ??????????????????????????" ?? "???????????????? ????????" + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????? ????????????????. ???????????? ???? ?????? "???????????????????? ???????????????? ???????????????????????? ????????????????" (???????????????????? ?????????? 276) + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????? ???????????????????? ???????????????? ?????????????????????????? ?????????????? (???? ???????????????????????? ?? ?????????????????????? ?????????????????????? ????????????????). + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ???????????????????????? ???????????????????? + + + + + + + ?????????????????????????? ???????????????? ???????????????????? ???????????????? + + + + ?????????? + + + + + ???????????????? + + + + ???????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + ???????????????? ?????????????????????????? + + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ???????????????????? ?? ?????????????????????????? ??????????????. ???????????????? ?????? ???????????????????? ????????????, ???????? ?? ???????????????? ???????????????? ???????? ???? ?????? ?????????????????????? ???????????? "???????????????? ??????????????". + + + + + + ?????????????????????? ?????????????????? ?????????????? + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????? ?????????????????????????? ?? ???????????????? ???????????????????????? + + + + + + + + + + + + + + ???????????????????? ?? ???????????? ???????????? + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ????????????????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ?????????????? ???????????????? ???????????????????? ???? "?????????????????????? ??????????????????????" ?????? ???????? ?????????????????? ???????? tns:MeteringDeviceInformation ???? ??????????????????????, ???????? OneTimePayment = true + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????? ??????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ?????????????? ???????????????? ???????????????????? ???? "?????????????????????? ??????????????????????" ?? ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ?????????? ?? ?? ???????? OneTimePayment = false. ???? ??????????????????????, ???????? OneTimePayment = true + + + + + + ???????? ???????????????? ?????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ????????????????, ???? ??????????????. ???????????????? ????????????????????????, ???????? ???????????? ???????????????? ???????????????? ???????????????? ???????????????????????? ????????????????????????, ?????????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????????????????? = ?????????? ?? ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ??????????. + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ???????????????? (??????????), ???? ??????????????. ???????? ?????????? ?????????????? ???????????????? "?????????????????? ???????? ????????????", ???? ???????? ?????????????????????? ?????????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + + ???????????????????? ???????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ???? ???????????????????? ???????????????????????? ?????????????????????????????????? ??????????????????????. ?????????????????????? ?????? ????????????????????, ???????? ?? tns:CountingResource ??????????????"??????" . ?? ?????????????????? ?????????????? ???? ??????????????????????. + + + + + ?????????? ???????????????? ??????????????(????) ???????????????????????? ???? ?????????????????? ?????????????? ??????????. ???????? ???? ??????????????????????, ???????? ???????????? ?????????????? ???????????????? = ?????????????????????? ?????????????????????? ?????? ?? ???????? OneTimePayment = true. + + + + + ???????????? ?????????????????????????????? ?????????? ???????????????????????????? ?????????????????????? ?????? ???????????????? ?????????????????? ???????????????? ?????? ?????????????????? ?????????????? ???????????? ?????? ????????????????????????. ???????????????? ?????? ????????????????????, ???????????? ???????? ???????????? ?????????????? ???????????????? ?????????????? ???? ?????????????????????? ??????????????????????. + + + + + ?????????????? ???????????????????? ???????????????????? ?? ?????????????????????? ???? ???????????????????????? ???????????? ?????????????? +D - ?? ?????????????? ????????????????. +O - ?? ?????????????? ???????????????? ?????????????????? ??????????. +??????????????????????, ???????? ???????????? ???????????????? ???????????????? ???????????????? ?????????????????????? ???????????????????????? ?????????? + + + + + + + + + + + ???????????? ?? ?????????????? ??/?????? ???????????????????? ?????????????????????? ???????????????????????? ??????????, ?????????????????????? ?????? ???????? ???????????????? ?????????????????? ?????????? ???????????????? ?? ???????????????? ????. ?????????????????????? ?????? ?????????????? ???????? ???? ???????????? ???????????? ???????????? / ?????????????????? ?? ???????????????? ???? + + + + + + ?????????????? ????, ?? ?????????????? ?????????????????????? ???????????? ??/?????? ?????????????????? ?????????????????????? ???? (?? ???????????????????? ???????????? ???????????? ???????? ???????????????????????????? ?????????????? ?????? ?? ???????? ???????????????? ????) + + + + + ???????????????????? ?? ?????????????????????? ???????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ???????????????????????????????????? ???????? ???????????? + + + + + + + + ???????????????????? ?? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + ???????????? ???? ???????? ???? ???????????????????????? ???????????? ?? ?????????????? ???? ???????????????? ???????????????? + + + + + ?????????????????????????? ?????????????????? ?????????????????????? ???????????????????????? ???????????? + + + + + + + + + + ???????????????? ???????????????????????? ???????? ???? ?????????????????????????????? ?????????????? ?? ???????????????????????????????????? ???????? ???????????? ?? ???????????? ???????????? ???????????????? ???? + + + + + + + + ???????????????? ???????????????????????? ???????? ???? ?????????????????????????? ?????????????? ?? ?????????????????? ?????????????????????? ?? ???????????? ???????????? ???????????????? ???? + + + + + + + + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ?????????? ???????????? ???????????????? + + + + + + + + ???????????? ???????????? ???????????????? + + + + + + ???????????????? + + + + + ???????????????????? + + + + + ???????????? + + + + + ???????????????????? ???????????????????????? + + + + + + + + ?????????????????? ???????????????? + + + + + + ???? ?????????????? ?? ???????? + + + + + ?????????????????????? + + + + + ?????????? ???????? ???????????????? + + + + + + + + + ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + + + + ?????????????? ???????????????? ?????????????????? ??/?????? ?????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ?????????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + + + + + + ???????????? ?????????????? ???????????????? (??????) + + + + + + + + + + ???????????? ?????????????? ???????????????? + + + + + + ?????????????????????? ?????????????????????? + + + + + + + + + + ?????????????? ???????????? + + + + + ?????????????? ???????????????? ?? ???????????????????????????? + + + + + + + + + ?????????????? ???????????????? + + + + + + ?????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + ???????? ???????????? ???????????????? ?????????????? + + + + + ???????? ?????????????????? ???????????????? ?????????????? + + + + + + + + + ???????????????????????? ???????? ?????????????? ????????????????????????: +R(SO)- ??????. +P(roprietor)-?????????????????????? ???????????????????????? ??????????. + + + + + + + + + + + ???????????????????? ?? ???????????? ???????????? + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ????????????????????, ???? ??????????????. + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? (??????????), ???? ??????????????. ???????? ???????????? "?????????????????? ???????? ????????????", ???? ?? ???????? ?????????????????????? ???????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????? ??????????, ???? ??????????????. + + + + + + ???????? ???????????????? ?????????? (??????????), ???? ??????????????. ???????? ???????????? "?????????????????? ???????? ????????????", ???? ?? ???????? ?????????????????????? ???????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ????????????????, ???? ??????????????. + + + + + + ???????? ???????????????????????????? ???????????????????? ?? ?????????????????????? ???????????????? (??????????), ???? ??????????????. ???????? ???????????? "?????????????????? ???????? ????????????", ???? ?? ???????? ?????????????????????? ???????????????? "-1". + + + + + + + + + + + + ?????? ??????????: +C (urrrent) - ???????????????? ???????????????????? ????????????. +N (ext) - ???????????????????? ???????????? ???? ??????????????????. + + + + + + + + + + + + + + + ???????????? ?????????? ?????????????? ?????????????????? ???? ????. + + + + + + ???????????? ?????????????? + + + + + + ???????? ???????????? + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + ?????????? ?????????????? + + + + + + ???????? ??????????????????. ???????? "?????????????????? ???????? ????????????", ???? ?? ???????? ?????????????????????? ???????????????? "-1". + + + + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ???????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????". ?????????? ???????? ????????????, ???????????? ???????? ???????????????????? ???????????????? ???????????????????????? ???????????????? ?????????????? ?? ?????????????? ???????????????? ?? ?????????????? ???????????????? ???????????????? ???????????????????????? ???????????? "???????????????? ??????????????????????????" ??/?????? "?????????????? ??????????????????????????" + + + + + ???????????????????? ?? ?????????????????????? + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ????????????????" (???????????????????? ?????????? 54) + + + + + + + + + + ???????????????????? ???? ?????????????????????????? + + + + + ???????????? ?????????????????? ?????????? ?? ???????????????? ???????????????????????????????? + + + + + + + ?????????????? ???????????????? + + + + + ?????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + ???????? ???????????? ???????????????? ?????????????? + + + + + ???????? ?????????????????? ???????????????? ??????????????. ???? ??????????????????????, ???????? ??????????????, ?????? ?????????????? ???????????????? ???? ???????????????????????????? ???????? (IndefiniteTerm = true) + + + + + ???????????????? ?????????? ?? ?????????? ???????????? ???? ?????? + + + + + + ???????????????? ?????????? + + + + + ?????????????? ??????????????????. +?????????????????????? ?????? ???236 "?????????? ???????? ???????????????????????? ????????????, ?????????????????????????????? ?????????????? ?? ???????????? ?????????????????? ???????????? ????????????" + + + + + ?????????? ???????????? + + + + + + + + + + + + + + + ?????????????? ???????????????? ?????????????????? ?????????? ???? ???????????????? ???????????????????????????????? + + + + + ?????? ????????: MKD - ?????????????????????????????? ?????? ZHD - ?????????? ?????? ZHDBlockZastroyki - ?????????? ?????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? (??????????????????) / ?????????? ?????????? + + + + + ?????????? ?????????????? + + + + + ?????????????????????????? ?????????????????? + + + + + ?????????????????????????? ?????????? ???????????? ???????? + + + + + ?????????????????????????? ?????????????? + + + + + ???????????????????? ?? ???? ?? ???? ???? ?????? + + + + + + + + + + + + + + ?????????????? "???????????????????? ?????????????????????????? ?????????? ?????????????? ?????????????????? ?????????? ?? ???????????????????????????????? ?????????????? ??????????????????????????" + + + + + + + ???????????? ?????????????? ?????? ???????????????????????????? ??????????????. ???????????????? ???????????? 11.6.0.2, 13.2.2.0 + + + + + + + + + + + + + ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + + + ????????????????, ???????????????????????????? ?????????????? + + + + + + + ???????? + + + + + + + + + + + ????????. ?????????????????????? ???? ?????????????????????? ???364 "???????? ?????????????????? ??????????????????" + + + + + + ?????????????? ???????????????? ?????????????? + + + + + ?????????? ?????????????? + + + + + + + + + + + ???????????????? + + + + ?????? ???????? (?? ??????????????????) + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????? ?????????????????? ?? ?????? + + + + + + ?????????????????????????? ?????????????????? ?????????????????????????? + + + + + + ?????????????? ???????? + + + + + + ?????????? ?????????????????????????? + + + + + + + + + + + + ???????????????? ?????????????? ?? ???????????? ???????????? ?????????????????? ?????????????????????? + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + + ???????????????? ???????????????? ???? ???????????????? ???????????? ???????????????????????? ?????????? + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + + + + + + ?????????????????????????? ??????????????????????-?????????????????? ???????????????????????? ?????????? + + + + + ?????????????????????????? ??????????????????????-???????????? ???????????????????????????????? ?????????????? + + + + + + ???????????? ???????????????????????? + + + + ???? ???????????????????? + + + + + + ?? ???????????? "??" + + + + + ?? ???????????? "????" + + + + + + + ?????????????????? ?????????????? + + + + + ?????????????????? ?????????????? ?????????????????? + + + + + ?????????????? "?????? ???????????????????? ?? ?????????????????? ????????????????????" + + + + + ???????????????????? ?????? ??????????????, ?????????????????????? ?? ?????????????????? ???????????????????? + + + + + + ??????????????, ?????? ?????????? ?????????????? ???? ?????????? 500 ???????????????? + + + + + ?????????????? ?????????????????????? ???????????????????? ?????????????????? ?? ?????????? + + + + + ???????????? ?????? ???????????????? ???? ???????????????????? ?????????????????????????? ?????????????? ???? ???????????????????????? web-???????????????? + + + + + + + + + + + + + + + + + ?????????????????? ?????????????? ?????????????????? + + + + + ???????????????? ?????????????? + + + + + ?????????? ?????????????? + + + + + + ?????????????? ???????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + ???????????? ?????????????????? ?????? (???????????????? ???????????? ???????????????? ??????????????????????????) + + + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????? ?? ?????? ?????? + + + + + + + ???????????????? ?????? + + + + + + + + ???????????????????? ???????????????? + + + + + + + + + + + + + + + + + + ???????????????????? ???????????????? ?????? + + + + + ???????????????? ?????????????????? ?????????????????? + + + + + ?????????????? ???????????????? ?????? + + + + + ???????????????????????? ?????????????????????? ?? ?????? ?????????????????? ???????????????????? + + + + + + + + + + + + + + + + ???????????? ???????????? ??????????????????????, ???????????????????????? ?? ???????????????????????????? ??????????????, ???????????????? ???? ?????? ?????? + + + + + + + + + + ?????????????????????????? ?????????????????? ?? ???????????????????? ???????????? ???????????????? ?? ?????? ?????? + + + + + + ???????????????????? ?????????? ??????????????????????, ???????????????????????? ?? ???????????????????????????? ??????????????, ???????????????? ???? ?????? ?????? + + + + + + + + + + + + + + + ?????????????? ???????????????????? ?????? + +???????????????? ???????????? 11.11.0.6, 12.2.3.1, 13.1.0.4 ?? 13.1.8.1 + + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????? ???????????? ?????????????????? ?????? +???????????????????? ????????????????: +-Created-???????????? +-Posted-???????????????? +-Edited-???? ?????????????????? +-Annuled-?????????????????????? +-PostedFromAnotherSystem-???????????????? ???? ?????????????????????? ?? ???????????? ?????????????? + + + + + + + + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????????? ?????????????????????? + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ???????????????????? ?????? + + + + + + + ???????????? ?????????????????? ?????? +???????????????????? ????????????????: +-Created-???????????? +-Posted-???????????????? +-Edited-???? ?????????????????? +-Annuled-?????????????????????? +-PostedFromAnotherSystem-???????????????? ???? ?????????????????????? ?? ???????????? ?????????????? + + + + + + + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????????? ?????????????????????? + + + + + ???????????? ???????????? ?????????????????? ?????? +???????????????????? ????????????????: +-Created-???????????? +-Posted-???????????????? +-Edited-???? ?????????????????? +-Annuled-?????????????????????? +-PostedFromAnotherSystem-???????????????? ???? ?????????????????????? ?? ???????????? ?????????????? + + + + + + + + + + + + + + ?????????? ???????????? ?????????????????? + + + + + ???????? ?? ?????????? ???????????????????? ?????????????????? ???????????? ?????????????????? + + + + + ???????? ?? ?????????? ???????????????????? ???????????? ?????????????????? + + + + + + + + + ???????????? ?????????????????? ?? ?????????????????????? ?????? + + + + + + + + + + ?????????????????????????? ?????????????????? ?? ???????????????????? ?????? ?? ?????? ?????? + + + + + + + ???????????????????? ?????? ???????????????? ?????????????????? ?? ???????????????????? ?????? + + + + + ???????????????? ?????????????????????? ???? ?????????????? ???????????????????? 50% ?????????????? + +???????????????? ???????????????? ???????????? ?????? ?????????????????????? ?? ?????????? "?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????" + + + + + ???????????????????????? ?????????????????????? ?? ?????? ?????????????????? ???????????????????? + + + + + + + + + + + + + + + + ?????????????? ?????????????????? ?? ???????????????????? ?????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????????? ?????????????????????????? ?????????????????? ?? ???????????????????? ?????????????????????? + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ?????????????????? ?? ???????????????????? ?????? + + + + + + + ?????????????????????????? ?????????????????? ?? ???????????????????? ?????????????????????? + + + + + ???????????? ?????????????????? ?? ???????????????????? ?????? +???????????????????? ????????????????: +- Posted - ?????????????????? +- Goes - ?????????????????????? ???????? +- Finished - ?????????????????????? ?????????????????? +- MeetingCancelled - ???????????????? ???? ???????????????????? +- Cancelled - ?????????????????????? + + + + + ???????? ?? ?????????? ???????????????????? ???????????? ?????????????????? + + + + + ???????? ?? ?????????? ???????????????????? ?????????????????? ???????????? ?????????????????? + + + + + + + + + ???????????? ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + + + + ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????? ?? ?????? ?????? + + + + + ?????????????????????????? ?????????????????? ?? ???????????????????? ?????? ?? ?????? ?????? + + + + + + ???????????????? ?????????????????????????? ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + + ????????????????/?????????????????? ?????????????? + + + + + ???????????????????????? ?????????????? + + + + + + + + + + + + + + + + + + + + + + + ?????????????? ?????????????? ?????????????????????????? ???? ???????????????? ?????????????????????? +???????????????? ???????????? 13.0.0.2 ?? 13.1.8.1 + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????????? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + ?????????????????????????? ?????????????????? ?? ???????????????????? ?????? + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ?????????????? ???????????????????????? ???? ?????????????? ?????????????????????? + + + + + ???????????????? ?????????????????????????? ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + + ???????????????????????????? ???????????????? ?? ?????????????????????????? + + + + + + ???????????? ???????????????? + + + + + ?????????????????????? ?????????? ?????????????? ???????????????????????? + + + + + ?????????????? ???????????????????????? + + + + + + + ???????????? ???????????????????? ?????????????? ?????????????????????????? + + + + + + + + ???????????????????? ???????????? ?????????????????????????? + + + + + + + + + + ???????????????????? ???????????????????? ?????????? ???????????????????????? + + + + + + ???????????????? ?????????????????????????? ?????????????????? ?? ???????????????????? ???????????? ???????????????? ?????????????????????????? + + + + + ???????????????????? ?????????? ???????????????????????? + + + + + + + + ???????????? ?????????????????? ?? ?????????? ?????????????????????? ???????????????????? ?????????? ???????????????????????? + + + + + + ???????????????? ?????????????????????????? ?????????????????????? ???????????? ???????????????????????? ?? ?????? ?????? + + + + + ???????????????????? ?????????? ???????????????????????? + + + + + + + + ???????????????????????? ???????????????????? ?????????? ???????????????????????? + + + + + + ???????????????? ?????????????????????????? ?????????????????????? ???????????? ???????????????????????? ?? ?????? ?????? + + + + + + + + + + + + + + + + + + + + + + ?????????????? ???????????????????? ?????????????? ?????????????????????????? + + + + + + + + ???????????????? ???????????????????????????? ?????????????????? ?? ???????????????????? ???????????? ????????????????, ???????????????????? ???????????? ???? ?????????????? ???????????? ???????? ???????????????????????????? + + + + + ???????????????? ???????????????????????????? ?????????????? ?????????????????????????? + + + + + + + + + + + ???????????? ???? ?????????????? ?????????????? ???????????????????? ?? ???????????????? ?????????? + + + + + + + + ?????????? ???? + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + ?????????????????????????? ???????????????? ?????????????????????? ???????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ?????????????????????? ???????????? ?? ?????? ?????? + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? "??" + + + + + ???????? ???????????????????? "????" + + + + + ??????: +(D)WELLING_APARTMENT - ?????????????? ?????????????????????? ?????????? ???????????? ?????????????????? +STATE_(M)UNICIPAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ???????????????????????????????? ?????? ???????????????????????????? ?????????????????? ?????????? +(S)OCIAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ?????????????????? ?????????? ?????????????????????? ?????????????????????????? + + + + + + + + + + + + + + + + + + + + + + + + + ?????????? ???? ???????????? ???????????????? ?????????????? ???????????????????? ?? ???????????????? ?????????? + + + + + ?????????????????????????? ???????????????? ?????????????????????? ???????????? ?? ?????? ?????? + + + + + ?????????????????????????? ???????????? ???????????????? ?????????????????????? ???????????? ?? ?????? ?????? + + + + + ?????????????????? ????????????????. ?????????????????????? ?????? ???????????????? ?? ?????????????? "??????????????????" + + + + + + ???? ?????????????? ?? ???????? + + + + + ?????????????????????? + + + + + ?????????? ???????? ???????????????? + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????????????????? ?? ?????????????????????? + + + + + + + + ???????????? ???? ?????? "54 ?????????????? ?????????????????????? ????????????????" (???????????????????? ?????????? 54) + + + + + + + + + + ?????????????????????????? + + + + + ??????: +(D)WELLING_APARTMENT - ?????????????? ?????????????????????? ?????????? ???????????? ?????????????????? +STATE_(M)UNICIPAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ???????????????????????????????? ?????? ???????????????????????????? ?????????????????? ?????????? +(S)OCIAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ?????????????????? ?????????? ?????????????????????? ?????????????????????????? + + + + + + + + + + + + + + ???????????? ???? ?????????????? ?????????????????? ?????????? + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? (??????????????????) + + + + + ?????????? ?????????????? (?????????????????????? ?? ???????????? ???????????????? ?????????????????????????? ??????????????????) + + + + + + + + ?????????????????????????? ???????????????????????????????????? ?????????????????????? ?????????????????????? ?????????????? (???????????? ?????????????? ????????????????) + + + + + + + ?????? ?????????????? ???????????????????? ???? ?? ?????? ?????? + + + + + + + ???????????????? ???????????? + + + + + + + + + ?????? ?????????????? ???????????????????? ???????????? ?? ?????? ?????? + + + + + + + ???????????????? ???????????? + + + + + + + + + ?????????????? ?????????????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + + + + + + + ?????????????????????? ?????????? ???? ?????????????? ?????????????? ?????????????????? ?????????? ?????? ???? + + + + + ?????????????????????? ?????????? ???? ?????????????? ?????????????? ?????????????????? ?????????? ?????? ?????? + + + + + ?????????????????????? ?????????? ???? ?????????????? ?????????????? ?????????????????? ?????????? ?????? ?????? + + + + + ?????????????????????? ?????? ???????????????? importContract ???????????????? ???????????????????? ???? ?? ?????? ?????? + + + + + ?????????????????????? ?????? ???????????????? importCharter ???????????????? ???????????????????? ???????????? ?? ?????? ?????? + + + + + ?????????????????????? ?????? ???????????????? importMeteringDevice + + + + + + ?????????????????????????? ???? + + + + + + + + ?????????????????????? ?????? ???????????????? importAccount + + + + + + + + + + + ?????????????????????? ?????? ???????????????? importSuppleResourceContractObjectAddress + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + ?????????????????????? ?????? ???????????????? importSuppleResourceContract + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + ???????????????? ?????????????????????????? ???????????????? ???????????????????????????????? (???? ???????????????? ???? ???????????? ?? ????????????) + + + + + + + + ?????????????????????? ?????? ???????????????? importSupplyResourceContractProject + + + + + + ?????????????????????????? ???????????? ???????????????? ???????????????????????????????? ?? ?????? ?????? + + + + + + + + + + + + + + + + + + ???????????? ???? ?????????????? ?????????????? ?????????????? ???????????????????? ?? ???????? + + + + + + ?????????????????? ???????????? ???????? ???? ????????????????. + + + + + + + + ???????????? ???? ?????????????? ?????????????? ?????????????? ???????????????????? ?? ???????? + + + + + + ?????????????? ???????????????????? ?? ?????? + + + + + + + + ???????????? ???? ?????????????? ?????????????? ?????????????? ???????????????????? ?? ???????? + + + + + + ?????????????????? ???????????? ???????? ???? ????????????????. + + + + + + + + + + + + + + + + + + ?????????????? ???????????????????????????????? + + + + + + ?????????????????? ???????????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?????? ???????????????? ?????????????????? 1000 ?????????????????? + + + + + + + + + ???????????? ?????????????????? ?????????? ?? ???????????????? ???????????????????????????????? + + + + + + ???????????? ?????????????????? ?????????? ?? ???????????????? ???????????????????????????????? + + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? ?????? ?????????????????? ???????????????? ?????????????????? 1000 ?????? + + + + + ?????????????????? ???????????????? ???????????????? + + + + + + + + + ?????????????????? ???????????????? ???????????????????????? ?????????????? ???????????????????? ?? ???????????????? ???????????????????????????????? + + + + + + + + + ?????????????????????????? ???????????????? ???????????????????????????????? ?????? ???????????????? ?????????????????? ???????????????? ?????????????????? + + + + + ?????????????????????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? ?????? ???????????????? ?????????????????? ???????????????? ?????? + + + + + + ?????????????????? ???????????????? ???????????????? + + + + + + + + + + ???????????? ?????????????????????? ????/?????????????? + + + + + + ?????????????? ???????????????????????? ???? ???????????????? ?????????????????????? + + + + + ???????????????????? ???????????? ?????????????????????????? + + + + + + + + + + + ???????????????? ???? ?????? ?????? ???? ?? ?????? + + + + + ?????????????????????? ?????????? ?????????????? ????????????????????????. ?????? ???????????????? ???????????????????????????? ???????????????? ?? ?????? ?? ???????? (?????????? ?? ?????? ?? ???????? ?????????????????????? ???? ???????????????????????? ????????????). ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????/????????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. ?????????????? ?? ???????????????? ?????????????????? ???? ?????????????????????????? ?????????? ?? ??????/???????? ???? ?????????? ????????????????. + + + + + ???????????????????? ???? ?????????????? ???????????????????????? ???? ???????????????????? ???? ?????????????????? ?? ?????? ??????. ?????? ???????????????? ?? ?????? ?????? ???? ?????????????????????? ???????????????????? ???? ?? ?????????????????????? ????????????, ???? ?? ?????? ????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ?????? ?????? ????????, ?????????????????????? ??????????????. ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. + + + + + + ?? ?????????????? ?????????????????????? ?????????????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ?????????????????????? ???????????????????? ???? ???????????????????? ???????????????????????? ????????????, ???????????????? ?? ?????? ?? ???????? ???? ??????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ??????, ?????????????????????? ?????????????? ???? ?????? ?? ????????. ?????? ?????????????????? ??????????????, ???????????????????????? ???????????? ?? ????????, ?????????????? ???? ??????????????????????. + + + + + + ???????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ?????????????????????? ???? ?????????????????? ????????????). + + + + + ?????????????????????????????? ???????????? ?????????? ?????? ??????????????????????/?????????????????????? ????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ???? ?????????????????????????????? ???????????? ???????? ?????? ??????????????????????/?????????????????????? ????????). + + + + + + + + + ???????????????? ???? ?????? ?????? ?????? + + + + + ?????????????????????? ?????????? ?????????????? ????????????????????????. ?????? ???????????????? ???????????????????????????? ???????????????? ?? ?????? ?? ???????? (?????????? ?? ?????? ?? ???????? ?????????????????????? ???? ???????????????????????? ????????????). ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????/????????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. ?????????????? ?? ???????????????? ?????????????????? ???? ?????????????????????????? ?????????? ?? ??????/???????? ???? ?????????? ????????????????. + + + + + ???????????????????? ???? ?????????????? ???????????????????????? ???? ???????????????????? ???? ?????????????????? ?? ?????? ??????. ?????? ???????????????? ?? ?????? ?????? ???? ?????????????????????? ???????????????????? ???? ?? ?????????????????????? ????????????, ???? ?? ?????? ????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ?????? ?????? ????????, ?????????????????????? ??????????????. ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. + + + + + ?????????????? ???????????????????? ?? ??????, ???????????????????????????? ??????, ???????????????? ?? ?????????????????????? ???????????? ?? ???????????? ????????????, ?????????????????????? ???????????????????? ?????????? ?? ??????/????????. ?????? ???????????????? ?? ?????? ?????? ???? ?????????????????????? ???????????????????? ???? ?? ?????????????????????? ????????????, ???? ?? ?????? ????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ?????? ?????? ????????, ???????????? ???? ????????????????????????. + + + + + + ?? ?????????????? ?????????????????????? ?????????????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ?????????????????????? ???????????????????? ???? ???????????????????? ???????????????????????? ????????????, ???????????????? ?? ?????? ?? ???????? ???? ??????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ??????, ?????????????????????? ?????????????? ???? ?????? ?? ????????. ?????? ?????????????????? ??????????????, ???????????????????????? ???????????? ?? ????????, ?????????????? ???? ??????????????????????. + + + + + + ???????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ?????????????????????? ???? ?????????????????? ????????????). + + + + + ?????????????????????????????? ???????????? ?????????? ?????? ??????????????????????/?????????????????????? ????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ???? ?????????????????????????????? ???????????? ???????? ?????? ??????????????????????/?????????????????????? ????????). + + + + + + + + + ???????????????? ???? ?????? ?? ???????? ?????? ???????????????? + + + + + ???????????? ?? ?????? ?????? ???????????????? ?? ??????. + + + + + ???????????? ?? ?????? ?????? ???? ???????????????? ?? ?????? (?? ?????????????? ?????????????????????? ?????????????????????? ?????????? ?????? ???????????????????? ???? ???????????????????? ???? ?????????????? ???? ?????????????????? ?? ?????? ??????). ???????????? ?????????? ???????? ???????????????? ?? ????????. + + + + + ???? ????????????????????????, ???????????????? ?????? ??????????????????????????. + + + + + + + + + + + + + + + + + + + + + + + + + + ?????? ??????????: +(R)ight - ?????????? +(E)ncumbrance - ??????????????????????/?????????????????????? ?????????? + + + + + + + + + + + ?????????? ?????????????????????????????? ?????????????????????? + + + + + + + + + + ???????? ?????????????????????????????? ?????????????????????? + + + + + + + + + + + + ???????????? ?????????? ?????????????? ?? ??????: +(C)reated - ?????????? ?? ?????? ?????????????????????? +(D)roped - ?????????? ?????????????????? +(N)o relationship - ?????????? ?? ?????? ???? ?????????????????????????????? + + + + + + + + + + + + + + ???????????????????????????????? ???????????????? ??????, ???????????????? ?????? ?????? ?????????? ???????????????????????? ?????????? ?? ?????? + + + + + ???????????????????????????????? ???????????????? ????, ???????????????? ?????? ?????? ?????????? ???????????????????????? ?????????? ?? ?????? + + + + + ???????????????????????????????? ???????????????? ???????????????? ??????????????????, ???????????????? ?????? ?????? ?????????? ???????????????????????? ?????????? ?? ?????? + + + + + ???????????????????????????????? ???????????????? ???????????? ??????????????????, ???????????????? ?????? ?????? ?????????? ???????????????????????? ?????????? ?? ?????? + + + + + ???????????????????????????????? ???????????????? ??????????????, ???????????????? ?????? ?????? ?????????? ???????????????????????? ?????????? ?? ?????? + + + + + + + + + + ???????????? ?????????? ?????????????? ?? ????????: +(C)reated - ?????????????? ???????????? ?? ????????, ????????(??)/??????????????????????????(??) ??????????????(??) +(D)roped - ?????????? ?? ??????????/???????????????????????????? ?????????????????? +(N)o relationship - ?????????? ?? ??????????/???????????????????????????? ???? ?????????????????????????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ?????????????? ???????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? (?????? ??????????????) + + + + + ?????????????????????? ?????? ???????????????? importHouseUO, importHouseOMS, ImportHouseESP + + + + + + + + + + + + + ?????????????? ???????????? ?????????????? ?????????????????? ?????????? ?? ?????? ?????? (?????? ????????????????) + + + + + + + + ???????????????? ???????????????????????????? ???????? (?????? ?????????????? ???? ????) + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? ???????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ???????????????? ???????????????????? ?????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? (???????????????????? ???????????? ?????? ????) + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ??????????. ???????????? ?????? ?????????? ???? ???? ???????? + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ???????????????? ???? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? (???????????????????? ????????????) + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ??????????. ???????????? ?????? ?????????? ???? ???? ???????? + + + + + ?????????????? ???????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ??????????.???????????? ?????? ?????????? ???? ???? ???????? + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ???????????? ?????????????????? ?????? ?????????????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ??????????.???????????? ?????? ?????????? ???? ???? ???????? + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? c???????????????????????? ???????????????? ???? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + + + + ???????????????? ???????????????????????????? ???????? (?????? ????????????????). ???? ?????????? ?????????????? ?? ??????/???????? ?????????????????? + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ???????????? ?????????????????? ?????? ???????????????? + + + + + + + + + ?????????????????????????????? ?????? (?????? ?????????????? ???? ????) + + + + + ???????????????? ???????????????????????????? + + + + + + + + + ?????????????????????? ?????????? ?????????????? ????????????????????????. ?????? ???????????????? ???????????????????????????? ???????????????? ?? ?????? ?? ???????? (?????????? ?? ?????? ?? ???????? ?????????????????????? ???? ???????????????????????? ????????????). ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????/????????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. ?????????????? ?? ???????????????? ?????????????????? ???? ?????????????????????????? ?????????? ?? ??????/???????? ???? ?????????? ????????????????. + + + + + ???????????????????? ???? ?????????????? ???????????????????????? ???? ???????????????????? ???? ?????????????????? ?? ?????? ??????. ?????? ???????????????? ?? ?????? ?????? ???? ?????????????????????? ???????????????????? ???? ?? ?????????????????????? ????????????, ???? ?? ?????? ????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ?????? ?????? ????????, ?????????????????????? ??????????????. ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ???????????????????? ?? ??????, ?????????? ???????????????? ?? ?????????????????? ?????? ??????. + + + + + + ?? ?????????????? ?????????????????????? ?????????????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ?????????????????????? ???????????????????? ???? ???????????????????? ???????????????????????? ????????????, ???????????????? ?? ?????? ?? ???????? ???? ??????????????????????. ?????? ?????????????????? ??????????????, ???????????????????????? ?? ??????, ?????????????????????? ?????????????? ???? ?????? ?? ????????. ?????? ?????????????????? ??????????????, ???????????????????????? ???????????? ?? ????????, ?????????????? ???? ??????????????????????. + + + + + + ???????????????? ??????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ?????????????????????? ???? ?????????????????? ????????????). + + + + + ?????????????????????????????? ???????????? ?????????? ?????? ??????????????????????/?????????????????????? ????????. ?????? ???????????????? ?? ?????? ?????? ???????????????????????????? ???????????????? ?? ???????? (?????????? ?? ???????? ???? ?????????????????????????????? ???????????? ???????? ?????? ??????????????????????/?????????????????????? ????????). + + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? ???????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ???????????????? ???????????????????? ?????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (?????? ?????????????? ???? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + ?????????????????????????????? ?????? (?????? ?????????????? ???? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ???????????? ?????????????????? ?????? ?????????????? + + + + + + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (?????? ?????????????? ???? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? c???????????????????????? ???????????????? ???? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (???????????????????? ???????????? ?????? ????) + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (???????????????????? ???????????? ?????? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + ?????????????????????????????? ?????? (???????????????????? ???????????? ?????? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (???????????????????? ???????????? ?????? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ???????????????????? ????????????, ???????????????????? (???????????????? ???????????????????????? ?????? ??????????????????) + + + + + + + + + + + + ?????????????????????????????? ?????? (?????? ????????????????) + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?????????????????? ???????????? + + + + + ?????? ??????????\???????????? ???????????????????????? ?????????? (?????? 62) + + + + + + + ???????? (?????? ?????????????? ???? ????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + + + ???????? (?????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + + + ???????? (?????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + + + ???????? (???????????????????? ???????????? ???? ????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + ???????? (?????????????????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + ???????? (?????????????????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + ???????? (?????? ????????????????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? ?????????? + + + + + ?????? ??????????. ???????????? ???? ?????? "?????? ??????????" (???????????????????? ?????????? 192) + + + + + ???????????? ?????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + ?????????? ?????? (?????? ?????????????? ???? ????) + + + + + ???????????????? ???????????????????????????? + + + + + ?????????? ?????? ?????????????????????????? ?????????????????? +(???????? ???? ???????????? - ???????????? false). + + + + + ?????????????????? ?????????? ?????????? ?? ???????????????????? ?????????????? +(???????? ???? ???????????? - ???????????? false) + + + + + + + ?????????? ?????? (?????? ?????????????? ???? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + ?????????? ?????? ?????????????????????????? ?????????????????? (???????? ???? ???????????? - ???????????? false). + + + + + ?????????????????? ?????????? ?????????? ?? ???????????????????? ?????????????? +(???????? ???? ???????????? - ???????????? false) + + + + + + + ?????????? ?????? (?????? ?????????????? ???? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ?????????????? + + + + + ?????????????????? (?????? 24) + + + + + ???????????? ???????????????????? ?????????? (?????? 338) + + + + + ?????? ?????????? ?? ???????????????????????? + + + + + ???????????????????? ???????????? + + + + + ?????????? (???????????????????????? ?????? ???????? ????????????????????, ???? ?????????????????????? ???????????? ?? ???????????????????? "????????????????"). ???????????????? ???? ???????? ?????? ??????????????. + + + + + ?????????????? ???????? + + + + + ?????????????? ?? ???????? ?????????????? ?????????????? ?????????????????????? ???????????????? + + + + + ???????????? ?????? + + + + + ???????????? ?????????????????? ?????? ?????????????? + + + + + + + + + + ?????????? ?????? ?????????????????????????? ?????????????????? (???????? ???? ???????????? - ???????????? false). + + + + + ?????????????????? ?????????? ?????????? ?? ???????????????????? ?????????????? +(???????? ???? ???????????? - ???????????? false) + + + + + + + ?????????? ?????? (???????????????????? ???????????? ?????? ????) + + + + + ???????????????? ???????????????????????????? + + + + + + + ?????????? ?????? (???????????????????? ???????????? ?????? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + ?????????? ?????? (???????????????????? ???????????? ??????) + + + + + ???????????????? ???????????????????????????? + + + + + + + ?????????? ?????? (?????? ????????????????) + + + + + ???????????????? ???????????????????????????? + + + + + ?????????? ?????? ?????????????????????????? ?????????????????? + + + + + ?????????????????? ?????????? ?????????? ?? ???????????????????? ?????????????? +(???????? ???? ???????????? - ???????????? false) + + + + + + + ?????????????? (?????? ?????????????? ???? ????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ?????????????? (?????? ????????????????) + + + + + ?????????? ???????????????? +(?????????? ???????? ???? ???????????????? ?????? ???????????????????????? ??????????) + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????????????? + + + + + + + + + + + ?????? ?????????????????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (?????? ?????????????? ???? ????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (???????????????????? ???????????? ?????? ????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ???????? ???????? ?????????????????????????? ?????????????????? (?????? ????????????????) + + + + + + + ?????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + ?????????????????? ?????????????????? +(???????? ???? ????????????, ?????????????????? ?????? ??????????) + + + + + + + + + ?????????????? ?????? ?????????????????? (?????? ?????????????? ???? ????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (???????????????????? ???????????? ?????? ????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? ?????? ?????????????????? (?????? ????????????????) + + + + + + + ?????????? ?????????????????? + + + + + ???????? + + + + + ???????????? ?????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????? ?????????????????? (?????? ?????????????? ???? ????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + + + + ?????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + + + + ?????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + + + ?????????????? ???????????????????? ?????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + + + + ?????????? ?????????????????? (???????????????????? ???????????? ?????? ????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + + + + ?????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + + + ?????????????? ???????????????????? ?????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????? ?????????????????? (?????? ????????????????) + + + + + + + + + ?????????????? ???????????????????? ???????????????? + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ???????????????????????????? ?????????????????? (?????? 30) + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + ?????????? ?????????????? ???????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ?????????????????????? ???????????????? ?????????? ?????????????? + + + + + + + + + + ?????????????? ?????????????????? (?????? ?????????????? ???? ????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????????? ?????????????????? (?????? ?????????????? ???? ??????, ????????????????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (?????? ?????????????? ???? ??????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (???????????????????? ???????????? ?????? ????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + + + + + ?????????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? ?????????????????? (?????? ????????????????) + + + + + + + ???????? ?????????????????? ???????? ???? ????????, ?? ???????????????? ?????????????????? ?????????????? ?????? ???????????????????????? ?????????? + + + + + ?????????? ?????????????? ???????????????? ?????????????????? ???? ???????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????? ?????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + + ?????????????? (?????? ?????????????? ???? ????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (?????? ?????????????? ???? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (???????????????????? ???????????? ?????? ??????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????????? ?????? + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????? (?????? ????????????????) + + + + + + + ?????????? ?????????????? + + + + + ?????????????? + + + + + ???????? + + + + + ???????????? ?????? + + + + + + ?????????????? ?????????????????????????? ?????????????? ?????????????????? ?????????? (?????? 330) + + + + + ?????????????? ??????????????????????????.???????????????????????????? ???????????????????? + + + + + ???????????????????? ???????????????????????? ?????????????????????? + + + + + + + + + ?????????????????? ?????????????????? ?????? ?????????? + + + + + ?????????? + + + + + ?????????????? + + + + + + + ???????????????????? ???????????? (??????) + + + + + + + + + ???????????????????? ?????????????????? ???????????? (??????) + + + + + + + + + ?????? ?????????? ?? ???????????????????????? (??????) + + + + + + + + ?????????? ??????????????????, ?????????????? (??????) + + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????? ???????????? ?????? ?????????????? ?? ?????????????????????? ????????????, ???? ?????????????????????????? ?? ???????????? ???????????????? ?????????? ???????????????????? ???? ???????????????????? ???????????? ????????????????. ?? ?????????????????? ???????????? ?????????????????????????? ???????????????? ?????????? ???????????????? ?? NULL. + + + + + ???????? ?????????????????????????? ?????????????? ?? ?????? ?????? + + + + + ???????????? ???????????? ?????? ?????????????? ???? + + + + + ?????? ???????????? ?? ?????????????????????? ?????????? ???????????????? ???????????????? ???? + + + + + ???????????????? ???????????????????? + + + + + + + ???????????????? ???????????? ???????????? ?????? ?????????????? ???? + + + + + ???????????? + + + + + ???????????????????????? + + + + + ???????? + + + + + ?????????? + + + + + ???????????????????? + + + + + ???????????????????????? (???????????? ???? ?????? ???????????? ??????????????????????) + + + + + ???????? (???????????? ???? ????????) + + + + + + + + + + ?????????????? ???????? ?????? ???????????? ???? ?????????? ?????????????????? ?? ???????????????????????? ???????????? + + + + + ?????????????? ???????? ?????? ???????????? ???? ???????????????????????? ????????????. + + + + + ?????????????? ???????? ?????? ???????????? ???????????????????????? ?????????????? + + + + + ?????????????? ???????? ?????? + + + + + ?????????????? ???????? ??????/?????? + + + + + ?????????????? ???????? ?????? + + + + + + ???????? ???????????????? ???? ?? ?????? ?????? (???????????????????????? ?????? ??????????????, ?????????????????? ?????? ??????????????????????????) + + + + + ???????????????????? ?????????????????????? + + + + + + + + + + ?????????? ?????????????? ?????? ???? + + + + + ?????????? ?????????????? + + + + + ???????????????????????? ?????????????? + + + + + ???????? ???????????? + + + + + ?????????????????? + + + + + + + ?????????????????????????? ?????????????????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????????? ?????????????? + + + + + + ???????? ???????????????? ??????????, ???????????? ???????? ?? % + + + + + + + + + + + + + + + ???????????????? ?? ?????????????????????? + + + + + + ???????????????? ??????????????????????? + + + + + ?????????????? ?????????? ???? ??????????????????(??) ??????????????????? + + + + + ?? ???????????? ???????????????????? ??????????/?????????????????????????? ????????????????/???????????? ???? ???????????? ??????????????????????, ???????????? ?????????????? ?????????????????????? ???? ?????????? ?????????????????????????? ?????????????????? ?? ???????????????? ??????????. + + + + ???????????????????? ????????/???????????????????????????? ??????????????????????????????. + + + + + ??????????????????????. ????/????/????. ???????????? ???? ???????????? ?????????????????????? + + + + + + + + + + + + + + ?????????????? ???????? ?????? ???????????? ???? ?????????? ?????????????????? ?? ???????????????????????? ???????????? + + + + + ?????????????? ???????? ?????? ???????????? ???? ???????????????????????? ????????????. + + + + + ?????????????? ???????? ?????? ???????????? ???????????????????????? ?????????????? + + + + + ?????????????? ???????? ?????? + + + + + ?????????????? ???????? ??????/?????? + + + + + ?????????????? ???????? ?????? + + + + + + ???????? ???????????????? ???? ?? ?????? ?????? + + + + + ???????????????????? ?????????????????????? + + + + + ?????????? ?????????????? ?????? ???? + + + + + ?????????? ?????????????? + + + + + ???????????????????????? ?????????????? + + + + + ???????? ???????????? + + + + + ?????????????????? + + + + + + + ?????????????????????????? ?????????????????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????????????????????? ?????????????? + + + + + + ???????? ???????????????? ??????????, ???????????? ???????? ?? % + + + + + + + + + + + + + + ???????????????? ?? ?????????????????????? + + + + + + ???????????????? ??????????????????????? + + + + + ?????????????? ?????????? ???? ??????????????????(??) ??????????????????? + + + + + ?? ???????????? ???????????????????? ??????????/?????????????????????????? ????????????????/???????????? ???? ???????????? ??????????????????????, ???????????? ?????????????? ?????????????????????? ???? ?????????? ?????????????????????????? ?????????????????? ?? ???????????????? ??????????. + + + + ???????????????????? ????????/???????????????????????????? ??????????????????????????????. + + + + + ??????????????????????. ????/????/????. ???????????? ???? ???????????? ?????????????????????? + + + + + + + + + + + ???????????????????? ???????? + + + + + + + ?????? (M- ??????????????, F-??????????????) + + + + + + + + + + + + + ???????? ???????????????? + + + + + + + + + + + + + ???????????????????? ???????? + + + + + + + ?????? (M- ??????????????, F-??????????????) + + + + + + + + + + + + + ???????? ???????????????? + + + + + + + ?????????????????????????? ???????????????? + + + + + + ????????????????, ???????????????????????????? ???????????????? (?????? 95) + + + + + ?????????? ?????????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + + + + + + ???????????????????????????? ???? + + + + + ???????????????????? ?????????????????????? + + + + + + + + + + ???????????????????? + + + + ?????????????????????? ????. ???????????? ???? ?????????????? ?? ?????????????? ???????????? + + + + + ?????????????????????? ????/????/????. ???????????? ???? ???????????? ?????????????????????? + + + + + ???? ???? ???????????????? ?????????????????????? ??????????. ???????????? ???? ?????????????? ?? ?????????????? ???????????? + + + + + ?????????????????????? ????/????/????. ???????????? ???? ???????????? ?????????????????????? + + + + + + ?????????????? ?????????????? + + + + + ?????????????? ?????????????? + + + + + ?????????????? ?????????????? + + + + + ???????? ???????????? + + + + + + + ?????????????????? ?????????????????? ???? + + + + + ?????????????? ???????????????? (?????? 22) + + + + + ???????? ???????????????? + + + + + ???????????????????? + + + + + + + + + + + + + ?????? ?????????????? ?????????????????? ???? + + + + + ?????????????? ???????????????????????????????? + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + True, ???????? ?????????????? ???? ???????????????? ?????????????????? ??/?????? ???????????????????????? ?????????????????????? ???? ???????????????? ???????????????? ?????? ?? ?????????????????????? ??????????. + + + + + + + + + ?????????????? ?????????? ???????????? ?????????????????? + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ??????: +(D)WELLING_APARTMENT - ?????????????? ?????????????????????? ?????????? ???????????? ?????????????????? +STATE_(M)UNICIPAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ???????????????????????????????? ?????? ???????????????????????????? ?????????????????? ?????????? +(S)OCIAL_FUND - ?????????????? ?????????? ???????????? ?????????????????? ?????????????????? ?????????? ?????????????????????? ?????????????????????????? + + + + + + + + + + + + + + + + + + ?????????????? ???? ???????????????? ?????????? ???? ?????????????????? ?? ???????????????? ?????????????????????????? ???????????????? + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + + + + + + + ???????????????????????????? ???????????? ???? + + + + + ???????? ???????????? ?????????????????????????? ???????????? + + + + + ???????? ?????????????????? ?????????????????????????? ???????????? + + + + + ???????????? ???? ???????????????????? ???????????????????????????? ?????????? (?????? ???1) + + + + + ?????????????????? + + + + + + + ?????????????????????????? ???????????????????????????? ???????????? ???? + + + + + ???????????????? ?????????????????????????? ???????????????? (???? ???????????????? ???? ???????????? ?? ????????????) + + + + + ?????????????????????????? ???????????? ???????????????? + + + + + ???????????????? ?????????????????????????? ???????????? (???? ???????????????? ???? ???????????? ?? ????????????) + + + + + ?????????????????????????? ???????????? ???????????? ?? ?????? ?????? + + + + + + + ?????????? ?????????????????? + + + + + + + + + + + + + + ?????????? ???????????????? ?????????????????? ???????????????????????????? ?? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????????????? ???????? ???????????? ?? ???????? ?????????????????? ?????????????? ???????????????? ?????????????????? + + + + + + ???????????? ?????????????? ?????????? ?????????????????? ???? + + + + + ?????????????????? ?????????????? ?????????? ?????????????????? ???? + + + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? ?????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + ???????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + + + + ?????????? ???????????????? ?????????????????? ???????????????????????????? ?? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????????????? ???????? ???????????? ?? ???????? ?????????????????? ?????????????? ???????????????? ?????????????????? + + + + + + ???????????? ?????????????? ?????????? ?????????????????? ???? + + + + + ?????????????????? ?????????????? ?????????? ?????????????????? ???? + + + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? ?????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + ???????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + + ?????? ???????????? ?????? + + + + + + ???????? ???????????? + + + + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + ???????????????????? ????????????? + + + + + + + ?????? ???????????? ?????? ?????? ???????????????? + + + + + + ???????? ???????????? + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + ???????????????????? ????????????? + + + + + + + + + ?????????? ???????????????? ?????????????????? ???????????????????????????? ?? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????????????? ???????? ???????????? ?? ???????? ?????????????????? ?????????????? ???????????????? ?????????????????? + + + + + + ???????????? ?????????????? ?????????? ?????????????????? ???? + + + + + ?????????????????? ?????????????? ?????????? ?????????????????? ???? + + + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? ?????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + ???????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + + + + ?????????? ???????????????? ?????????????????? ???????????????????????????? ?? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????????????? ???????? ???????????? ?? ???????? ?????????????????? ?????????????? ???????????????? ?????????????????? + + + + + + ???????????? ?????????????? ?????????? ?????????????????? ???? + + + + + ?????????????????? ?????????????? ?????????? ?????????????????? ???? + + + + + + + + ???????? ?????????????????????????? (??????????????????????) ?????????????????? ???????????????????? ?????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + ???????? ???????????????? ?????????? ???? ?????????? ?????????????????? ?? (??????) ???????????????????????? ???????????? + + + + + + + ???????? ???????????? (???? 1-30) + + + + + + + + ?????????????????? ???????? ???????????? + + + + + + + ???????????????? ???????????? + + + + + + + ???????????????????? ???????????? + + + + + + + + + + + + ?????? ???????????? ?????? ????????????/?????????????????? ?????????????? ?????????? ?????????????????? ???? ???? + + + + + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + + ???????? ???????????? ???????????????????????????? ?????????? + + + + + ???????? ?????????????????? ???????????????????????????? ?????????? + + + + + + + + + + ?????????????????????????? ?? ?????? ?????? (???????????? ???? ???????????????????? ??????????????????????) + + + + + ?????????????????????? ???????????????? + + + + + + + + + ?????????????? ?????????????????????? + + + + + + + + + ???????? ??????????????????????, ?????????????????????? ???????????????? ???????????? + + + + + + + + + ?????????????? ???????????? ?????????????????? + + + + + + + + + ???????????? ???? ?????? + + + + + ???????? ???????????? ???????????????????????????? ???????????? + + + + + ???????? ?????????????????? ???????????????????????????? ???????????? + + + + + + + + + ?????????? + + + + + + + + + + ???????? + + + + + + + + + ?????????? + + + + + + + + + + ???????? + + + + + + + + + ?????????????? ?????????????????????? ???? + + + + + + + + + ?????????????? ???? + + + + + ???????????? ???? ???????????????????????????? ???????????????????? + + + + + + + + + ?????????????? ?????????? + + + + + ???????????? ???? ???????????????? ???????????????? ?????????????????????????? + + + + + + + ?????????? + + + + + ???????? ???????????????????? ???????? TC??/??????/ ?????????????????????? (?????????????????????? ???????????????????? ????????????) + + + + + ???????????????????? ?? ???????????? + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + ????????????????, ???????????????????? ?????????????? ???? ?????????????????????? ????????????, ?????????????????????? (?????? ?????????????????? True MeetingProtocol ??????????????????????????) + + + + + ?????????????????? ???????????? + + + + + ?????????????????????????? ???????????????? ???????? ???????????????? ?????????? ???? ???????? ??????. ?????? ?????????????????????????????? ?????????????????? ?????????????????????? ???????????????? true. + + + + + ?????????????????? (true) ?????? ?????????????????? (false) ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. ???????? ?????????????? ???? ??????????????, ?????????????????????? ???????????????? ???????????????????? ?????????????????? "?????????????????? ???????????????? ?????????????????? ?????????????????? ???????????????????????????? ?????? ?????????? (????????????????????) ???????????????? ?????????? ?? ?????????? ???????? ???????????? ???? ???????? ??????????????????". + + + + + + + ?????????? (?????? ????????????????) + + + + + ???????? ?????????????????????? TC??/??????/?????????????????????? (?????????????????????? ???????????????????? ????????????) + + + + + ???????????????????? ?? ???????????? + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + ????????????????, ???????????????????? ?????????????? ???? ?????????????????????? ????????????, ?????????????????????? (?????? ?????????????????? True MeetingProtocol ??????????????????????????) + + + + + ?????????????????? ???????????? + + + + + ?????????????????????????? ???????????????? ???????? ???????????????? ?????????? ???? ???????? ??????. ?????? ?????????????????????????????? ?????????????????? ?????????????????????? ???????????????? true. + + + + + ?????????????????? (true) ?????? ?????????????????? (false) ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. + + + + + + + ???? + + + + + ?????????? ?????????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????????????? ???????? ?????????????????? + + + + + ???????? ???????????????? (?????????????????????? ?????? ????????????????) + + + + + + ?????????? + + + + + + + + + + ??????/?????? + + + + + + + + + + + + + ???????????? ?????????????? ???????????????? + + + + ?????????????????????? ?????????????? ?????????????????? ?????????? (?????????? ?????????????? ???????????? ???????? ???????????????????? ?????????????????????? ????????????) + + + + + ??????/???????????????????? + + + + + ?????????????????????? ???????????????????????????? ?????????? + + + + + ???????????????????? + + + + + ??????????, ???????????????????????????? ???? ???????????????? ?????????????? ???? ?????????????????????? ?????????????????????? ?????????????????????? + + + + + + ???????????????? ?? ?????????????????? ?????????????????? ????????????????/???????????????? ?????????????????????????? + + + + + + ???????????????? ?????????????????? ????????????????/???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + + + + ?????????????? ???? ????????????????????????, ???????????????? ?? ?????????? ?????? ?????????????????????? ?????????????????????????? ?????????????????????????????? ???????????????????????????? + + + + + + + + + + ???????????????? ?????????????????? ???????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ?????????????????? ?????????????????? + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????? ?????????????? ???????????????????? ?????????????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + +???????????? ???? ?????? "?????????????????? ???????????????????? ????????????????" (???????????????????? ?????????? 58). + + + + + ???????????????? ?? ????????????. ?????? EditContract ?????????????????????? ?????????????????? ????????????, ???????????????? ?????????? ?????????????????????? ???? ???????????????????? ????????????. + + + + + ?????????????? ???? ???????????????????? ?? ???????????????????? + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ?????????????????? ?????????????????????????????? ???????????????????? + + + + + + + + + + ???????????? ??????????????????????????, ?????????????????????? ??????????????. + +?????????????? ????????????????????, ???????? ???????????????? ???????????????? ???????????????? ???????????????????????? ?????????????? ?????????????????? ?????????? ?? ???????????????????? ???????????????????? ???????????????? ?????????????? "?????????????? ???????????? ???????????????? ??????????????????????????". ?? ?????????????????? ?????????????? ?????????????? ???? ?????????????????????? + + + + + ???????????????????? ???? ???????? ?? ????????????????????????. ????????????????????, ???????? ?? "?????????????????? ???????????????????? ????????????????" ?????????????? "???????????????????? ???? ???????? ?? ????????????????????????". + + + + + ??????????. ????????????????????, ???????? ?? "?????????????????? ???????????????????? ????????????????" ?????????????? "??????????". + + + + + ?????????????? ???????????? ???????????????? ????????????????????????????. + +?????????? ?????????????????????? ???????????? ?? ?????? ????????????, ???????? ?? "?????????????????? ???????????????????? ????????????????" ?????????????? "?????????????? ???????????? ???????????????? ????????????????????????????" + + + + + ?????????????????????????? ?????????????? ???? ?????????????? ?????????????? ???? ?????????????????????? ?????????????????????? ??????????????????????. ????????????????????, ???????? ?? ???????????????? "?????????????????? ???????????????????? ????????????????" ?????????????? "?????????????? ???????????? ???????????????? ????????????????????????????". + + + + + ?????????????????????????? ???????????????????????????? ?????????????? ???? ???????? ?????? ?????? ?????????????????????? ???????? ?????????????????? ???????????????? ????????????????. ?????? ?????????????????????????????? ?????????????????????????????? ?????????????????????? ???????????????? true. + + + + + + + ???? (?????? ????????????????) + + + + + ?????????? ?????????????????? + + + + + + + + + + + ???????? ???????????????????? + + + + + ???????? ???????????????????? ?? ???????? + + + + + ?????????????????????? ???????? ?????????????????? + + + + + ???????? ???????????????? (?????????????????????? ?????? ????????????????) + + + + + + ?????????? + + + + + + + + + + ??????/?????? + + + + + + + + + + + + + ???????????? ?????????????? ???????????????? + + + + ?????????????????????? ?????????????? ?????????????????? ?????????? (?????????? ?????????????? ???????????? ???????? ???????????????????? ?????????????????????? ????????????) + + + + + ??????/???????????????????? + + + + + ?????????????????????? ???????????????????????????? ?????????? + + + + + ???????????????????? + + + + + ??????????, ???????????????????????????? ???? ???????????????? ?????????????? ???? ?????????????????????? ?????????????????????? ?????????????????????? + + + + + + ???????????????? ?? ?????????????????? ?????????????????? ????????????????/???????????????? ?????????????????????????? + + + + + + ???????????????? ?????????????????? ????????????????/???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + + + + ?????????????? ???? ????????????????????????, ???????????????? ?? ?????????? ?????? ?????????????????????? ?????????????????????????? ?????????????????????????????? ???????????????????????????? + + + + + + + + + + ???????????????? ?????????????????? ???????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ?????????????????? ?????????????????? + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????? ?????????????? ???????????????????? ?????????????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + +???????????? ???? ?????? "?????????????????? ???????????????????? ????????????????" (???????????????????? ?????????? 58). + + + + + ???????????????? ?? ????????????. ?????? EditContract ?????????????????????? ?????????????????? ????????????, ???????????????? ?????????? ?????????????????????? ???? ???????????????????? ????????????. + + + + + ?????????????? ???? ???????????????????? ?? ???????????????????? + + + + + ???????????????????????????? ???????????????????? + + + + + + + + ?????????????????? ?????????????????????????????? ???????????????????? + + + + + + + + + + ???????????? ??????????????????????????, ?????????????????????? ??????????????. + + + + + ???????????????????? ???? ???????? ?? ????????????????????????. ????????????????????, ???????? ?? "?????????????????? ???????????????????? ????????????????" ?????????????? "???????????????????? ???? ???????? ?? ????????????????????????". + + + + + ??????????. ????????????????????, ???????? ?? "?????????????????? ???????????????????? ????????????????" ?????????????? "??????????". + + + + + ?????????????? ???????????? ???????????????? ????????????????????????????. + + + + + ?????????????????????????? ?????????????? ???? ?????????????? ?????????????? ???? ?????????????????????? ?????????????????????? ??????????????????????. + + + + + ?????????????????????????? ???????????????????????????? ?????????????? ???? ???????? ?????? ?????? ?????????????????????? ???????? ?????????????????? ???????????????? ????????????????. ?????? ?????????????????????????????? ?????????????????????????????? ?????????????????????? ???????????????? true. + + + + + ?????????????????? (true) ?????? ?????????????????? (false) ???????????????? ?????????????????? ?????????????? ?????????????????? ???? ???????????????????????????? ???????????????? ?????????? ?? ?????????? ???????? ????????????. + + + + + + + ???????????? ???? ?? ?????? ??????: +Project - ???????????? +ApprovalProcess - ???? ?????????????????????? +Rejected - ???????????????? +Approved - ?????????????????? +Terminated - ???????????????????? +Reviewed - ???????????????????? +Annul - ???????????????? ???????????????????????? + + + + + + ???????????? ???????????? ?? ?????? ??????: + Project - ???????????? + Approved - ?????????????????? + Terminated - ????????????????????/???????????? + Annul - ?????????????????????? + Reviewed - ???????????????????? + ApprovalProcess - ???? ?????????????????????? + Rejected - ???????????????? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ?????????????????????????? ???????????? ?????????????? ???????????????????? ?? ?????? ?????? + + + + + ???????????? ?????????????? ???????????????????? + + + + + + + + + + + + + ???????????? ???????????????????????? ??????????????: +Project-???????????? +ApprovalProcess-???? ?????????????????????? +Rejected-???????????????? +Approved-?????????????????? +Locked-???????????????????????? +Annul-???????????????? ???????????????????????? + + + + + + ?????????????????????????? ???????????????? + + + + + ?????????????? ???????????????????????? + + + + + + + + + + + + ?????? ???????????????????? ?? ?????????????? ?????????? ???? ?????????? ?????????????????? ???? ???? + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????????? ?????????? (????????) ???? ????????????, ???????????? ???? ???????????????????? ?????? (???????? ???????????????????? ???????????????????? ???????????? ???????????????? ??????????????????????????)/???????????? ?????????? ???? ???????????????????? ???????????? ??????????????????, ?????????????????????????? ???? ?????????????????????? ?????????????????? ???????????????? (???????? ???????????????????? ???????????????????? ?????????????????? ????????????????) + + + + + ???????? ?????????????? ???? ????????????, ?????????????????????? ?????????????? ???????????????? ?? ???????????? ???? ????????????????????, ???????????????????????? ?? ???? + + + + ???????????????? ???????????? ???????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? ???? ???????????????????????? ?????????????? ?????????? ???? ???????????????????? ???????????? ?????????????????? + + + + + ?????????????????????????? ???????????? ?????????????????? ?????????????????????? ?? ???????????????? ?? ?????????? 12.1 ???????????????? ???????????? ???????????? ???????????????????? ??(??????) ?? ?????????? 15.1 ?????????????? ???????????????? ?????????????? ?????????????? ????????????????????. + + + + + + ???????????????????? ?? ?????????????? ?????????? (????????, ????????????) ???? ???????????????????? ?? ?????????????? ???????????? ???????????? ?????????????????? ?? ?????????????????????????????? ????????/???????????????????? ?? ?????????????? ?????????? ???? ???????????????????? ???????????? ??????????????????, ?????????????????????????? ???? ?????????????????????? ?????????????????? ???????????????? ???? ???????????? ?????????????????????? ?????????????????????? ?????? ???????????????????? ?????????????????????????????? ?????????? + + + + + + ????????????/???????????? ?????????????????????? (?????? ???59) + + + + + ???????????? ?????????? (????????, ????????????) ???? ???????????? (????????????)/???????????? ?????????? ???? ???????????? (????????????), ?? ?????????? ?????????? ?????????????????????? ??????????, ?? ???????????????????????? - ???? ?????????? ?????????? ????????????. + + + + + + + + ?????? ?????????????? ??????????: +(P)rotocol - ???????????????????????? ???????????????????? ???????????? ???????????????? ?????????????????????????? +(??)ompetition - ?????????????????????????? ???? ?????????????????????? ?????????????????? ???????????????? +(A)uthority - ?????????????????????????? ?????????????? ???????????????? ???????????????????????????? + + + + + + + + + + + + + + + + ?????? ???????????????????? ?? ?????????????? ?????????? ???? ?????????? ?????????????????? ???? ???????????? + + + + + ???????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ?????????????? + + + + + ???????????????????? ?? ?????????????? ???????????????????????? ???????????????? ?? (??????) ?????????????? ???????????? ????????????????????????, ??????????????????????, +?????????????????? ?? ?????????????? ???????????????? ???? ???????????????????? ?? ?????????????? ???????????? ???????????? ?????????????????? ?? ?????? + + + + + + ???????????? ???????????????????????? ???????????????? ?? (??????) ?????????????? ???????????? ????????????????????????, ?????????????????????? + + + + + ???????????????? ???????????? ???????????????? ???????????? ????????????????????????, ?????????????????????? ???? ?????????????????????? ???????????????????????? ???????????????? ?? (??????) ?????????????? ???????????? ????????????????????????, ?????????????????????? + + + + + + + + ???????????????????? ?? ?????????????? ?????????? ???? ???????????????????? ?? ???????????? ???????????? ?????????????????? ?????? ???????????????????????? +?????????????????? ?? ??????, ???? ?????????????????????? ???????????? ????????????????????????, ?????????????????????? + + + + + + ???????????? ?????????? ???? ???????????????????? ?? ???????????? ???????????? ?????????????????? ?????? ???????????????????????? ?????????????????? ?? ?????? + + + + + ???????????????? ???????????? ???????????????? ???????????? ????????????????????????, ?????????????????????? ???? ?????????????????????? ?????????????? ?????????? ???? ???????????????????? ?? ???????????? ???????????? ?????????????????? ?????? ???????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + + + ???????????????????? ?? ?????????????? ?????????? (????????, ????????????) ???? ???????????????????? ?? ?????????????? ???????????? ???????????? ?????????????????? ?? ?????????????????????????????? ???????? + + + + + + ????????????/???????????? ?????????????????????? (?????? ???59) + + + + + ???????????? ?????????? (????????) ???? ????????????, ???????????? ???? ???????????????????? ??????. ?? ?????????? ?????????? ?????????????????????? ??????????, ?? ???????????????????????? ?????????? ?????????? ????????????. + + + + + + + + + + ?????? ???????? ?????????????????????? ???????????????? + + + + + + + + ?????????????????????????? ???????????? ???????????????? ?? ?????????????? ?????????? ???? ???? + + + + + ?????????????????????????? ???????????? ???????????????? ?? ?????????????? ?????????? ???? ???????????? + + + + + ?????????????????????? ???????????? ?? ???????????? ????????????????, ???????? ???????????????? ???? ?????????????????????? ?????????????? ?? ???????????????? ???????????????????? ?????????????????????? ?? ???????????????? ???????????????? + + + + + ?????????????????????? ???????????? ?? ???????????? ???????????????????? ?? ???????????????? ???????????????????? ?????? (????????), ???????? ???????????????? ???? ?????????????????????? ?????????????? ???????????? ?????????????????????? ?? ???????? + + + + + ?????????????????????????????? ?????????????????? ?????????? + + + + + + + + + + + + + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + + + ???????????????? ???? ?????????????????????? ???????????????? + + + + + + ???????????????????? ???????? (?????????????????????? ??????????????????) + + + + + ?????????????????????? ?????????????????? ???????????????? ???? ?????? ????. ???????? (????) + + + + + + + + ?????????????????????????? ?????????? + + + + + + + + + + ???????????????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" ?? ???? ?????????????????? ??????/???????????????????? + + + + + ???????????????????????? ?????????????????????????? ??????????/ ???????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ?????????? ???????????????????? + + + + ?????????????? ?????????????????????? (???????????????? ??????????) + + + + + + ???????? ???????????? ???????????? ?????????????? ??????????????????????????. +?????????????????????? ?????? ????????????????????, ???????? ???????????????? ?????????????? tns:Placing. + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + ?????????? ?????????????????????? + + + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + + + + + + + ?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????. ???? ???????????????????????? ?????? ?????????????? ???????????????????? + + + + + + ???????? ?? ?????????? ???????????? ???????????????????? ?????????????????????? + + + + + ???????? ?? ?????????? ?????????????????? ???????????????????? ?????????????????????? + + + + + ?????????????? ???????????? ?????????????????????? ?? ???????????????????? ?????????? ?????????????? ?????????????????????????? + + + + + + + + + + ?????????????? ???????????????????????? ?? ?????????????????????? ?? (??????) ??????????????????????, ?????????????? ?????????? ???????????????????????? ???? ???????????? ???????????????? + + + + + + + + + + + + + + ??????????-?????????????? ?????????????????????? + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + ???????? ???????????? ???????????? ?????????????? ??????????????????????????. +?????????????????????? ?????? ????????????????????, ???????? ???????????????? ?????????????? tns:Placing. + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + + ?????? ???????????????? + +???????????????? ?????????????????? ????????????????: +-Owners - ???????????????? ?????????????????????????? +-Homeowners - ???????????????? ?????? +-Cooperative - ???????????????? ?????????????????????? + +???? ?????????????????? ?????????????????????????????? ???????????????? "???????????????? ??????????????????????????", ???????? ???? ?????????????????? + + + + + ?????? ???????????????? + + + + ???????????????????????? ???????????????? + + + + + ?????????????????? ???????????????? + + + + + + + ?????????????????????????? ???????????????? +???????????????????? ???????????????? +(C)OMPETENT - ???????????????????? (?????????? ????????????) +(N)OT_COMPETENT- ???? ???????????????????? (???????????? ??????????????????????) + + + + + + + + + + + + ???????????????? + + + + + + + ?????????? ?????????????? + + + + + ???????????? + + + + + + + + + + + ?????? ?????????????? (?????? ???63) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" + + + + + ?????? ?????????????? ?????? ?????? (?????? ???341) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????" + + + + + + + + + + ?????? ?????????????? ?????? ?????????????????????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????" + + + + ???????? ?? ???????????? + + + + + ?????? ?? ???????????? + + + + + + ???????????????????? ?????????????????????? + + + + ???????????????????? ?????????????????????? ???????? + + + + + ???????????????????? ?????????????????????? ???????????????? + + + + + ???????????????????? ?????????????????????? ?????????????????????????? + + + + + + ?????????????????? ???????????? ???????????????????????? ?????????? (???????????????????? ???????? ??????????\???????????? ???????????????????????? ???????????? ?????? 62). ?????? ?????????????? ???????????? ?????????????????? "???????????????? ???? ??????????????". + + + + + ?????????????????? ???????????? ???????????????????? ?????? (???????????????????? ?????????????? ?????????????????????? ?????? 25) + + + + + ??????????????, ?? ?????????????? ???????????????????? ??????????????????????. ?????????????????????? ???????????? ?????? ?????????????? "?????????????????????????? ???????? ???????????????????????????? ?????????????? ?????? ???????????????????? ???????????? ???????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? ?? ?????????? ???????????????? ??????????????????????" + + + + + ???????????????? ?? ???????????????????? ???????? + +?????????????????????? ???????????? ?????? ???????????????? ?? ?????????? "?????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ?????????????????? ?????????? ??(??????) ????????" + + + + + + ???????? ?????????????????????? +???????????????????? ????????????????: +DECISION_IS_(M)ADE - ?????????????? ?????????????? +DECISION_IS_(N)OT_MADE - ?????????????? ???? ?????????????? + + + + + + + + + + + + + + ?????????????????? ??????????????????. ?????????????????????? ?????? ???????????????????? ?????? ?? ?????????????? "????????????????" + + + + + + + + + + + + ?????????????????? ?? ???????????????????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" ?? ???? ?????????????????? ??????/???????????????????? + + + + + ???????????????????????? ?????????????????????????? ??????????/ ???????????????????? + + + + + ?????????? ?????????????????? + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ?????? ???????????????? + + + + ???????????????????????? ???????????????? + + + + + ?????????????????? ???????????????? + + + + + + ?????????? ???????????????????? + + + + ?????????????? ?????????????????????? (???????????????? ??????????) + + + + + + ???????? ???????????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + ?????????? ?????????????????????? + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + + + + + ????????-?????????????? ?????????????????????? + + + + + + ???????? ???????????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + + + + + ?????????????? ?????????????????????? ?? ???????????????????????????? ?????????????? + + + + + + ???????? ?? ?????????? ???????????? ???????????????????? ?????????????????????? + + + + + ???????? ?? ?????????? ?????????????????? ???????????????????? ?????????????????????? + + + + + ?????????????? ???????????? ?????????????????????? ?? ???????????????????? ?????????? ?????????????? ?????????????????????????? + + + + + + + + + + ?????????????? ???????????????????????? ?? ?????????????????????? ?? (??????) ??????????????????????, ?????????????? ?????????? ???????????????????????? ???? ???????????? ???????????????? + + + + + + + + + + ??????????????, ?? ?????????????? ???????????????????? ?????????????????????? + + + + + ???????????? ?????? + +?????????????????????? ???????????? ???????? ?? tns:VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" ?????? "????????" + + + + + ???????????????? ???? ???????? + + + + + ?????????? ?????? ?????????????????????? ?????????? ???????????????????????????? ???????????? ???????????????? + + + + + + + + + + + + + + + + ?????? ???????????????? + +???????????????? ?????????????????? ????????????????: +-Owners - ???????????????? ?????????????????????????? +-Homeowners - ???????????????? ?????? +-Cooperative - ???????????????? ?????????????????????? + +???? ?????????????????? ?????????????????????????????? ???????????????? "???????????????? ??????????????????????????" + + + + + + ???????????????? + + + + + + ?????????? ?????????????? + + + + + ???????????? + + + + + + + + + + + ?????? ?????????????? (?????? ???63) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" + + + + + ?????? ?????????????? ?????? ?????? (?????? ???341) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????" + + + + + + + + + + ?????? ?????????????? ?????? ?????????????????????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????" + + + + ???????? ?? ???????????? + + + + + ?????? ?? ???????????? + + + + + + ?????????????????? ???????????? ???????????????????????? ?????????? (???????????????????? ???????? ??????????\???????????? ???????????????????????? ???????????? ?????? 62). ?????? ?????????????? ???????????? ?????????????????? "???????????????? ???? ??????????????". + + + + + ?????????????????? ???????????? ???????????????????? ?????? (???????????????????? ?????????????? ?????????????????????? ?????? 25) + + + + + ??????????????, ?? ?????????????? ???????????????????? ??????????????????????. ?????????????????????? ???????????? ?????? ?????????????? "?????????????????????????? ???????? ???????????????????????????? ?????????????? ?????? ???????????????????? ???????????? ???????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? ?? ?????????? ???????????????? ??????????????????????" + + + + + ???????????????? ?? ???????????????????? ???????? + +?????????????????????? ???????????? ?????? ???????????????? ?? ?????????? "?????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ?????????????????? ?????????? ??(??????) ????????" + + + + + + + + ?????????????????? ??????????????????. ?????????????????????? ?????? ?????????????????? ?? ?????????????? "?????????????????? ??????????????????" ?? ?? ???????????? ???????????????????? ???????????????? ???? "?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????" + + + + + + + + + + + + ?????????????? ?????????????????? ?? ???????????????????? ?????? + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" ?? ???? ?????????????????? ??????/???????????????????? + + + + + ???????????????????????? ?????????????????????????? ??????????/ ???????????????????? + + + + + ?????????? ?????????????????? + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ?????? ???????????????? + + + + ???????????????????????? ???????????????? + + + + + ?????????????????? ???????????????? + + + + + + ?????????? ???????????????????? + + + + ?????????????? ?????????????????????? (???????????????? ??????????) + + + + + + ???????? ???????????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + ?????????? ?????????????????????? + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + + + + + ????????-?????????????? ?????????????????????? + + + + + + ???????? ???????????? ???????????? ?????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + + + + + ?????????????? ?????????????????????? ?? ???????????????????????????? ?????????????? + + + + + + ???????? ?? ?????????? ???????????? ???????????????????? ?????????????????????? + + + + + ???????? ?? ?????????? ?????????????????? ???????????????????? ?????????????????????? + + + + + ?????????????? ???????????? ?????????????????????? ?? ???????????????????? ?????????? ?????????????? ?????????????????????????? + + + + + + + + + + ?????????????? ???????????????????????? ?? ?????????????????????? ?? (??????) ??????????????????????, ?????????????? ?????????? ???????????????????????? ???? ???????????? ???????????????? + + + + + + + + + + ??????????????, ?? ?????????????? ???????????????????? ?????????????????????? + + + + + ???????????? ?????? + +?????????????????????? ???????????? ???????? ?? tns:VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" ?????? "????????" + + + + + ???????????????? ???? ???????? + + + + + ?????????? ?????? ?????????????????????? ?????????? ???????????????????????????? ???????????? ???????????????? + + + + + + + + + + + + + + + + ?????? ???????????????? + +???????????????? ?????????????????? ????????????????: +-Owners - ???????????????? ?????????????????????????? +-Homeowners - ???????????????? ?????? +-Cooperative - ???????????????? ?????????????????????? + +???? ?????????????????? ?????????????????????????????? ???????????????? "???????????????? ??????????????????????????" + + + + + + ???????????????? + + + + + + ?????????? ?????????????? + + + + + ???????????? + + + + + + + + + + + ?????? ?????????????? (?????? ???63) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????????" + + + + + ?????? ?????????????? ?????? ?????? (?????? ???341) + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????" + + + + + + + + + + ?????? ?????????????? ?????? ?????????????????????? + +?????????????????????? ?? ????????????????????, ???????? "?????? ????????????????" = "???????????????? ??????????????????????" + + + + ???????? ?? ???????????? + + + + + ?????? ?? ???????????? + + + + + + ?????????????????? ???????????? ???????????????????????? ?????????? (???????????????????? ???????? ??????????\???????????? ???????????????????????? ???????????? ?????? 62). ?????? ?????????????? ???????????? ?????????????????? "???????????????? ???? ??????????????". + + + + + ?????????????????? ???????????? ???????????????????? ?????? (???????????????????? ?????????????? ?????????????????????? ?????? 25) + + + + + ??????????????, ?? ?????????????? ???????????????????? ??????????????????????. ?????????????????????? ???????????? ?????? ?????????????? "?????????????????????????? ???????? ???????????????????????????? ?????????????? ?????? ???????????????????? ???????????? ???????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? ?? ?????????? ???????????????? ??????????????????????" + + + + + ???????????????? ?? ???????????????????? ???????? + +?????????????????????? ???????????? ?????? ???????????????? ?? ?????????? "?????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ?????????????????? ?????????? ??(??????) ????????" + + + + + + + + ?????????????????? ??????????????????. ?????????????????????? ?????? ?????????????????? ?? ?????????????? "?????????????????? ??????????????????" ?? ?? ???????????? ???????????????????? ???????????????? ???? "?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????" + + + + + + + + + + + + ???????????????? ???? ???????? + + + + + ???????????????????? ???????? (?????????????????????? ??????????????????) + + + + + + ???????????????????? ???????? (?????????????????????? ??????????????????) + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + +?????????? ???????????????????? ???????????????????? ???? ???????? + + + + + ?????????? ?????????????????????? ???????????????????? + + + + + + + + + + + ?????????? ?????????????????????? ???????????????? + + + + + + + + + + + ?????????? ?????????????????????? ?????????? + + + + + + + + + + + + + + ?????????????????????? ?????????????????? ???????????????? ???? ?????? ????. ???????? (????) + + + + + + + ?????????????????????????? ?????????????????? ?????? + + + + + ?????????????????? ?????????????????????????? ?????????????????? + + + + + + + + + + + ??????????????????????, ?????????????????? ?????????????? ???? ?????????????????????????? + + + + + ?????????????????????? ?????? ???????????????????? ????????, ?????????????????? ?????????????? ???? ?????????????????????????? + + + + + + ???????? ?????????????? ???? ??????????????????????????. ???? ?????????????????? ?????????????????????? ???????? ???????????????????? ?????????????????????????? + + + + + ?????????? ?????????????? ???? ?????????????????????????? + + + + + + + + + + ?????????????? ?????????????????????????? ???? ?????? (?????????271). ???? ?????????????????? ???????????? ?? ?????????? 3 "???????????? ??????????" + + + + + ?????????????????????? ?????????? ?????????????????? ???? ??????????????????????????. ?????????????????????? ???????????????????? ???????? ???? ???????????? ??????????, ???????? ?????????????? ?????????????????????????? ???? ?????? "?????????????? ????????" (?????? ???????????? 1) + + + + + + + ?????????? ?????? ?????????????????????? ?? ???????????????????????????? ?????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ?????????????????????????? ???????????????? +???????????????????? ???????????????? +(C)OMPETENT - ???????????????????? (?????????? ????????????) +(N)OT_COMPETENT- ???? ???????????????????? (???????????? ??????????????????????) + + + + + + + + + + + + ???????????????? + + + + + + ?????????? ?????????????? + + + + + ???????????????????? ?????????????????????? + + + + ???????????????????? ?????????????????????? ???????? + + + + + ???????????????????? ?????????????????????? ???????????????? + + + + + ???????????????????? ?????????????????????? ?????????????????????????? + + + + + + ???????? ?????????????????????? +???????????????????? ????????????????: +DECISION_IS_(M)ADE - ?????????????? ?????????????? +DECISION_IS_(N)OT_MADE - ?????????????? ???? ?????????????? + + + + + + + + + + + + + + + + + ???????????????? ?????? (?????? ????????????????) + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ???????????????????????? ?????????????????????????? ??????????/ ???????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ?????????? ???????????????????? + + + + ?????????????? ?????????????????????? (???????????????? ??????????) + + + + + + ???????? ???????????? ???????????? ?????????????? ?????????????????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + ?????????? ?????????????????????? + + + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + + + + + + + ?????????????? ?????????????????????? ?? ???????????????????????????? ?????????????? + + + + + + ???????? ?? ?????????? ???????????? ???????????????????? ?????????????????????? + + + + + ???????? ?? ?????????? ?????????????????? ???????????????????? ?????????????????????? + + + + + ?????????????? ???????????? ?????????????????????? ?? ???????????????????? ?????????? ?????????????? ?????????????????????????? + + + + + + + + + + ?????????????? ???????????????????????? ?? ?????????????????????? ?? (??????) ??????????????????????, ?????????????? ?????????? ???????????????????????? ???? ???????????? ???????????????? + + + + + + + + + + ??????????????, ?? ?????????????? ???????????????????? ?????????????????????? + + + + + ???????????? ?????? + +?????????????????????? ???????????? ???????? ?? tns:VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" ?????? "????????" + + + + + + + + + ??????????-?????????????? ?????????????????????? + + + + + + + ???????? ?? ?????????? ???????????????????? ???????????????? + + + + + ?????????? ???????????????????? ???????????????? + + + + + + + + + + + ???????? ???????????? ???????????? ?????????????? ?????????????????????????? + + + + + ???????? ?????????????????? ???????????? ?????????????? + + + + + ?????????? ???????????? ?????????????? + + + + + + + + + + + + + + + + ?????? ???????????????? + +???????????????? ?????????????????? ????????????????: +-Owners - ???????????????? ?????????????????????????? +-Homeowners - ???????????????? ?????? +-Cooperative - ???????????????? ?????????????????????? + + + + + ?????? ???????????????? + + + + ???????????????????????? ???????????????? + + + + + ?????????????????? ???????????????? + + + + + + ???????????????? ???? ?????????????????????? ???????????????? + + + + + + ???????????????????? ???????? (?????????????????????? ??????????????????) + + + + + ?????????????????????? ?????????????????? ???????????????? ???? ?????? ????. ???????? (????) + + + + + + + + ?????????????????????????? ???????????????? +???????????????????? ???????????????? +(C)OMPETENT - ???????????????????? (?????????? ????????????) +(N)OT_COMPETENT- ???? ???????????????????? (???????????? ??????????????????????) + + + + + + + + + + + + ???????????????? + + + + + + + ?????????? ?????????????? + + + + + ???????????? + + + + + + + + + + + ?????? ?????????????? (?????? ???63) + + + + + ?????? ?????????????? ?????? ?????? (?????? ???341) + + + + + + + + + + ?????? ?????????????? ?????? ?????????????????????? + + + + ???????? ?? ???????????? + + + + + ?????? ?? ???????????? + + + + + + ???????????????????? ?????????????????????? + + + + ???????????????????? ?????????????????????? ???????? + + + + + ???????????????????? ?????????????????????? ???????????????? + + + + + ???????????????????? ?????????????????????? ?????????????????????????? + + + + + + ?????????????????? ???????????? ???????????????????????? ?????????? (???????????????????? ???????? ??????????\???????????? ???????????????????????? ???????????? ?????? 62) + + + + + ?????????????????? ???????????? ???????????????????? ?????? (???????????????????? ?????????????? ?????????????????????? ?????? 25) + + + + + ??????????????, ?? ?????????????? ???????????????????? ??????????????????????. ?????????????????????? ???????????? ?????? ?????????????? "?????????????????????????? ???????? ???????????????????????????? ?????????????? ?????? ???????????????????? ???????????? ???????????????? ?????????????????????????? ?????????????????? ?? ?????????????????????????????? ???????? ?? ?????????? ???????????????? ??????????????????????" + + + + + ???????????????? ?? ???????????????????? ???????? + +?????????????????????? ???????????? ?????? ???????????????? ?? ?????????? "?????????????????????? ???????????????????????????? ???????????? ???????????????? ?? ?????????????????? ?????????? ??(??????) ????????" + + + + + + ???????? ?????????????????????? +???????????????????? ????????????????: +DECISION_IS_(M)ADE - ?????????????? ?????????????? +DECISION_IS_(N)OT_MADE - ?????????????? ???? ?????????????? + + + + + + + + + + + + + + ?????????????????? ??????????????????. ?????????????????????? ?????? ???????????????????? ?????? ?? ?????????????? "????????????????" + + + + + + + + + + + + ???????????????????? ?? ??????????????, ?? ?????????????? ???????????????????? ???????????????? + + + + + ??????????????, ?? ?????????????? ???????????????????? ?????????????????????? + + + + + ?????????????????????? ???????? ?? VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" ?????? "???????? ??????????????" + + + + ???????????????????????? ?????????????? + + + + + + + + + + + ?????????????????????????? ??????????????. ?????????? ???????? ???????????????? ???????????? ???????? ?? VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" + + + + + + ?????????? ?? ???????? ????????????????. ?????????????????????? ???????? ?? VotingSystem ?????????????? "???????????????????????? ???????????????????????????? ??????????????" ?????? "???????? ??????????????" + + + + + + + + + + + + + + + ??????????????????/???????????????????? + + + + ?????????????????????? + + + + + ???????????????????? ???????? + + + + + + ??????????. ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? + + + + + ???????? ???????????????? + + + + + ???????? ???????????? ???????????????? ???????????????? + + + + + ?????????????????????? ???????? ?????????????????? ???????????????? ???????????????? + + + + + ?????????????? ???????????????? + + + + + + + + + + ?????????????????????? + + + + + + + + + + ???????????? ?????????? ???? ???????????????????????????? ?? ?????????????????????? ?????????? ???????????? ?????????????????? ?????????????????????????? ?????????????????? ?? ?????? ?? ?????????? + + + + + ?????????????????????? ???????????????????????? ??????????????, ?????????????????? ???? ?????????????????????? ???????????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????? ???????????????? (??????????????/???????????????????????????? ????????????????????) + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + + ?????????? ?????????????????? + + + + + + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????????? ???????????????????? ?????????????????? ?????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ???????????????? ?????????????????????????? ?? ?????? ?????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + ?????????????? ???????????????? ???? ?????????????????????????? ????????????? + + + + + + + + + ??????????????????/???????????????????? + + + + ?????????????????????? + + + + + ???????????????????? ???????? + + + + + + ??????????. ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? + + + + + ???????? ???????????????? + + + + + ???????? ???????????? ???????????????? ???????????????? + + + + + ?????????????????????? ???????? ?????????????????? ???????????????? ???????????????? + + + + + ?????????????? ???????????????? + + + + + + + + + + ?????????????????????? + + + + + + + + + + ???????????? ?????????? ???? ???????????????????????????? ?? ?????????????????????? ?????????? ???????????? ?????????????????? ?????????????????????????? ?????????????????? ?? ?????? ?? ?????????? + + + + + + + + + + + ?????????????????????? ???????????????????????? ??????????????, ?????????????????? ???? ?????????????????????? ???????????? ???????????? ?????????????????? + + + + + + + + + + ?????????????????? ???????????????? (??????????????/???????????????????????????? ????????????????????) + + + + + ???????????????? ???????????????? ?????????????????????????? + + + + + + ???????????????? ???????????????? ?????????????????????????? (???????????????????? ???????????? ??????????????????) + + + + + + ?????????? ?????????????????? + + + + + + + + + + ???????? ?????????????????????? ?????????????????? + + + + + ??????????????????, ???????????????????????????? ???????????????????? ?????????????????? ?????????????? + + + + + + + + ?????????????????????????? ???????????? ?????????????????? ???????????????? ?????????????????????????? ?? ?????? ?????? (???????????????????? ?????????????????? ???? ?????????????? ???????????????? ?? ??????????????????????) + + + + + + + + + + ?????????????????? - ???????????????????? ???????? + + + + + + + ?????? (M- ??????????????, F-??????????????) + + + + + + + + + + + + + ???????? ???????????????? + + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + + + + + ?????????????????????????? ???????????????? + + + + + + ????????????????, ???????????????????????????? ???????????????? (?????? 95) + + + + + ?????????? ?????????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + + + + + ???????? ???????????? ?????????????????? + + + + + + + + ?????? ???????????????? + + + + + + + + + + ???????????? ?????????????????? ?? ???????????????????? ???????????? ???????????????? + + + + + + + + + + + + ??????????????, ?? ?????????????? ???????????????????? ???????????????? + + + + + ?????? ?????? + + + + + ?????????????????????? ?????????????????????????????? ???????????????????????????? ?????????????? ?????????????? ???????????? ?????????????????????????????? ?? ?????????????????????????? ???????????? (????????) + + + + + ???????????????????????? ???????????????????????????? ?????????????? + + + + + ???????? ?????????????? + + + + + + + ?????????? ?????????????? ?? ?????????????????????? + + + + + + + + + ?????????????? ???????????????????????? ???? ????????????????, ???????????????????? ?? ???????????????????? ?????????? + + + + + + + ???????????????? ?? ??????????????????????????. + +??????????????????????, ???????? ?? ?????????????????? ?????????????????? ?????????????????????????? ???????????????????????? + + + + + ???????????? ???????????????? + + + + + ?????????????????????? ?????????? ?????????????? ???????????????????????? + + + + + + + ?????????????? ???? ?????????????? + + + + + ?????????? ?????????????? + + + + + ?????????????? ???????????????????????? + + + + ?????????????? ???????????????????????? ???????? + + + + + ?????????????? ???????????????????????? ???????????????? + + + + + ?????????????? ???????????????????????? ?????????????????????????? + + + + + + ?????????????? "?????????????????????? ???????????????????????? ?? ???????????????????????????? ??????????????". ?????????? ???????? ?????????? true ???????????? ?????? ?????????????????????? ?? ???????????? ???????????????????? "?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????" + + + + + + + ???????????????????????????? ?????????????? ???? ?????????????? + + + + + + ?????????? ?????????????? + + + + + ???????????? + + + + + + + + + + + + ?????????????? ???????????????????????? + + + + ?????????????? ???????????????????????? ???????? + + + + + ?????????????? ???????????????????????? ???????????????? + + + + + ?????????????? ???????????????????????? ?????????????????????????? + + + + + + ?????????????? "?????????????????????? ???????????????????????? ?? ???????????????????????????? ??????????????". ?????????? ???????? ?????????? true ???????????? ?????? ?????????????????????? ?? ???????????? ???????????????????? "?????????????? ?????????????????????? ?? ???????????????????????????? ??????????????" + + + + + + + ???????????????????? ???????? ?????? ?????????????? + + + + + + + + ?????????????????????????? ???????????????? ?????? ?????????????? + + + + + + ????????????????, ???????????????????????????? ???????????????? (?????? 95) + + + + + ?????????? ?????????????????? + + + + + + + + + + + ?????????? ?????????????????? + + + + + + + + + + + + + + ???????????????? ?? ???????????????????????? + + + + + + ???????????????????? ???????? (?????????????????????? ??????????????????) + + + + + + + ?????????????????? ???????????????????????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ???????????????????????? + + + + + + + + + + ?????????????????????? ?????????????????????? ???? ?????? ????. ???????? (????) + + + + + + + + ???????????????? ?? ?????????????????????????? + + + + + + ?????????? ?????????????????????????????? ?????????????????????? + + + + + + + + + + ???????? ?????????????????????????????? ?????????????????????? + + + + + ?????????? ?????????????????? + + + + + ?????????? ?????????????? ?????????????????? + + + + + ?????? ?????????????????????????? + + + + + + ?????????????? + + + + + ???????????????????????????? + + + + + ???????????????????? + + + + + + + + ???????????? ????????, ?????????????????????????? ????????????????????????. +??????????????????????, ???????? "?????? ??????????????????????????"="??????????????" + + + + + + ???????? ??????????????????????????. ???????????? ???????? (??????????????????) + + + + + + + + + + + ???????? ??????????????????????????. ???????????? ???????? (??????????????????????) + + + + + + + + + + + + + + + + + ???????????????? ?? ?????????????????????????? ?????? ???????????????? + + + + + + ?????????? ?????????????????????????????? ?????????????????????? + + + + + + + + + + ???????? ?????????????????????????????? ?????????????????????? + + + + + ?????????? ?????????????????? + + + + + ?????????? ?????????????? ?????????????????? + + + + + ?????? ?????????????????????????? + + + + + + ?????????????? + + + + + ???????????????????????????? + + + + + ???????????????????? + + + + + + + + ???????????? ????????, ?????????????????????????? ????????????????????????. +??????????????????????, ???????? "?????? ??????????????????????????"="??????????????" + + + + + + ???????? ??????????????????????????. ???????????? ???????? (??????????????????) + + + + + + + + + + + ???????? ??????????????????????????. ???????????? ???????? (??????????????????????) + + + + + + + + + + + + + + + + + ???????????????? ?? ?????????????????????????? + + + + + + + ???????????????????? ???????? (??????????????????????????) + + + + + + + ?????????????????? ???????????????????????????? ???????????????? + + + + + ?????????????????????????? ???????????????? ?????????????????????????? + + + + + + + + + + ?????????????????????? ?????????????????????????? ???? ?????? ????. ???????? + + + + + + ?????????????????????????? ???????????????????????? ?????????????????? ???? ?????????????????? ????????????????????????, ???????????????????????????? ?????????????????????? + + + + + ????????????????, ???????????????????????????? ???????????????? ?????????????????????????????????? ???????????????????????? ?????????????????? + + + + + + + + ???????????????????? ?????????? ???????????????????????? + + + + + + + ???????????????? ?? ??????????????????????????. ??????????????????????, ???????? ?????????? ???????????? ???????????????????????????? ???????????????????????? + + + + + ?????????????????????? ?????????? ???????????? ???????????????????????? + + + + + + + ???????????? ?????????????????????? ???????????? ???????????????????????? + + + + + ???????????????? + + + + + ?????????????????????? + + + + + + + ???????????????????? ?????????? ???????????????????????? (?????? ????????????????) + + + + + ???????????????? ?????????????????????????? ?????????????????? ?? ???????????????????? ???????????? ???????????????? + + + + + ???????????????? ?????????????????????????? ?????????????????????? ???????????? ???????????????????????? + + + + + + + ???????????????? ?? ??????????????????????????. ??????????????????????, ???????? ?????????? ???????????? ???????????????????????????? ???????????????????????? + + + + + ?????????????????????? ?????????? ???????????? ???????????????????????? + + + + + ???????????? ?????????????????????? ???????????? ????????????????????????. +???????????????????? ????????????????: +-Posted-???????????????? +-Annuled-?????????????????????? + + + + + ???????? ?? ?????????? ???????????????????? ?????????????????????? ???????????? + + + + + + + ???????????? ?????????????????? ?????????? + + + + + ?????? ????????: MKD - ?????????????????????????????? ?????? ZHD - ?????????? ?????? ZHDBlockZastroyki - ?????????? ?????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? (??????????????????) / ?????????? ?????????? + + + + + ?????????? ?????????????? (?????????????????????? ?? ???????????? ???????????????? ?????????????????????????? ??????????????????) + + + + + + + ???????????? ?????????????????? ?????????? (??????????????) + + + + + ?????? ????????: MKD - ?????????????????????????????? ?????? ZHD - ?????????? ?????? ZHDBlockZastroyki - ?????????? ?????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + ?????????? ???????? +???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? + + + + + ?????????? ???????????????? (??????????????????) / ?????????? ?????????? + + + + + ?????????? ?????????????? (?????????????????????? ?? ???????????? ???????????????? ?????????????????????????? ??????????????????) + + + + + + + ?????????? ???????????????? ???????????????????? ???????????????? + + + + + + ?????????????????????????? ???????????????? ???????????????????? ???????????????? + + + + ?????????? + + + + + ???????????????? + + + + ???????????? ?????????????????? + + + + + ?????????? ?????????????????? + + + + + + + + + ???????????????? ?????????????????????????? + + + + + + + ?????????????????????? ???????? ?????? ???????????????????????????? ?????????????????????????????? ?? ???????? + + + + + + + + ???????????????????? ???????? ?? ???????? + + + + + ?????????????? + + + + + + + + + + + ?????? + + + + + + + + + + + ???????????????? + + + + + + + + + + + ?????? (M- ??????????????, F-??????????????) + + + + + + + + + + + + + ???????? ???????????????? + + + + + + + + + ?????????? ???????????????? + + + + + + + + + + + + + ???? ?? ???? ?????? ?????? ?? ???????????????? ???????????????????????????????? + + + + + ?????? ????. ???????????? ???? ?????? "?????? ???????????????????????? ????????????" (???????????????????? ?????????? 3) + + + + + + + + + + ???????????????????????? ????????????. ???????????? ???? ?????? "???????????????????????????? ????????????" (???????????????????? ?????????? 239) + + + + + + + + + + ???????? ???????????? ???????????????? ?????????????? + + + + + ???????? ?????????????????? ???????????????? ??????????????. ???????????????? ????????????????????????, ???????? ?????????????? ???????????????? ?? AutomaticRollOverOneYear + + + + + + + ???????????????? ?????????? ???????????????? ?????????????? ???? ???????????????? + + + + + + + + + ???????????????? ???????????????????? ???????????????? + + + + + + + + + + + ???????????????????????? ?????????? ???????????????????? ???????????????? + + + + + + + + ???????????????? ???????????????????????????? ???? + + + + + ?????????????????? (????????????????) ?????????? ???? + + + + + + + + + + ?????????? ???? (?????????????????????? ?????? ???????????????????? ?????? ??????????????) + + + + + + + + + + ???????????? ???? (?????????????????????? ?????? ???????????????????? ?????? ??????????????) + + + + + + + + + + ???????? ?????????????????? + + + + + ???????? ?????????? ?? ???????????????????????? +???????? ??????????????????????, ???????? ?????? ???? ?????????????? ???? "???????????????????????? (??????????????????????)" + + + + + ?????????????? ?????????????????????? ???????????????????????????? ???????????? ?????????????????? + + + + + ???????????????????? ?? ?????????????? ?????????????????????? ???????????????????????????? ???????????? ?????????????????? ???? ?????????????????? ???????????????????????? ?????????????????????????? ?????????????? (?????????????????????? ?????? ????????????????????, ???????? tns:RemoteMeteringMode = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + ???????? ?????????????????? ?????????????? (???????? ?????????????????????? ?????? ????????????????????, ???????? ???? - ???????????????????????? (??????????????????????)) + + + + + ?????????????????????????? ???????????????? (?????? 16) (???????? ?????????????????????? ?????? ????????????????????, ???????? ???? - ???????????????????????? (??????????????????????)) + + + + + ???????? ???????????????????????????? ???? ??????????????- ?????????????????????????? (?????????????????????? ?????? ???????????????????? ?????? ??????????????) + + + + + ?????????????? ???????????????? ???????????????????? + + + + + ?????????????? ???????????????? ???????????????? + + + + + ?????????????? ?????? ?????????????????????????? ?????????? ?????????????????????????? ?????? + + + + + + ???????????????????????????? ???????????????????????? ???? (?????? ?????????????? ?????????? = "???????????????????????? (??????????????????????)") + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? (?????? ?????????????? ?????????????????????? ?????? ???????????????????? ?????????? ?? ???????????? ??????????, ?????????? ?????????????????????? ???????????????? ?????????????? FIASHouseGuid) + + + + + ???????????????????? ?? ?????????????? ???????????????? ?????????????????????? ?? ?????????????????? ???? ???????????????????????????? ???? ???????? ?????????? (?????????????????????? ?????? ????????????????????, ???????? tns:TemperatureSensor = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + ???????????????????? ?? ?????????????? ???????????????? ???????????????? ?? ?????????????????? ???? ???????????????????????????? ???? ???????? ?????????? (?????????????????????? ?????? ????????????????????, ???????? tns:PressureSensor = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + ?????????????????????? ?????????? ?????????????? ???????? ?????????? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + + ???????????????????????????? ?????? ???????????? ?????????????????? (?????? ?????????????? ?????????? = "????????????????????????????") + + + + + + ?????????????????????????? ?????????????????? (?????? = ?????????? ??????????????????) + + + + + ?????????????????????????? ???? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + ???????????????? ???????????????????????? ???? ?????? ?????? ???????????? ?????????????????? + + + + + + + + ???????????????????????????? ?????? ???????????????? ?????????????????? (?????? ?????????????? ?????????? = "????????????????????????????") + + + + + + ?????????????????????????? ?????????????????? (?????? = ?????????????? ??????????????????) + + + + + ?????????????????????????? ???? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + ???????????????? ???????????????????????? ???? ?????? ?????? ???????????????? ?????????????????? + + + + + + + + ???????????????????????????? ?????? ???????????? ???????? (?????? ?????????????? ?????????? = "????????????????????????????", ?????? ???????? = "??????????") + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ???????? (?????? ?????????????? ?????????????????????? ?????? ???????????????????? ?????????? ?? ???????????? ??????????, ?????????? ?????????????????????? ???????????????? ?????????????? FIASHouseGuid) + + + + + ?????????????????????????? ???? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + ???????????????? ???????????????????????? ???? ?????? ?????? ???????????? ???????? + + + + + + + + ???????????????????????????? ???????????????????? ?????? (?????? ?????????????? ?????????? = "??????????????????") + + + + + + ?????????????????????????? ?????????????? + + + + + ?????????????????????????? ???? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + ???????????????? ???????????????????????? ???? ?????? ???????????????????? ?????? + + + + + + + + ???????????????????????????? ?????????????????????????????? ???? (?????? ?????????????? ?????????????????????????? ??????????????????) (?????? ?????????????? ?????????? = "?????????? (????????????????????)") + + + + + + ?????????????????????????? ???????????? ?????????????????? + + + + + ?????????????????????????? ???? + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + + + ???????????????? ???????????????????????? ???? ?????? ?????????????????????????????? ???? + + + + + + + + + + + ?????? ?????? ???????????????? ????, ???????????????????????????? ???? ???? ???????????? ???????????????? ??????????????????, ?? ?????????? ?????? ???????????????? ???????????????? ?? ???? + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?? ?????????? ???????????????? ???? ?? ?????????????? ????. ?????? ???????????????????? ???????????? ?? ????, ???????? ???? ?????????? ?????????? ?? ?????????????? ????, ???????????????????? ?????????????????? ???????????????????? ?????????????????? ?????????????????? ???? + + + + ?????????? ??????????????(????) ???????????????????????? ???????????? ?? ?????????????? ???????????????? ???? (???????????? ?? ?????????????? ???? ??????) + + + + + ?????????? ??????????????(????) ???????????????????????? ?? ?????????????? ???????????????????? ???????????????? ?????????? + + + + + + ?????????? ?????????????????? ???????????????? ?????????????? ??????????. ?????????????????? ????????????????: in - ???? ??????????/???? ???????????????? ????????????????????????, out - ???? ????????????/???? ???????????????? ????????????????????????. ???????? ???????????? ?????????? ???????????????? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ??????????/???? ????????????; ???????? ???????????? ?????????? ???????????????? ???????????????????????? ????????????, ???????????????? ???? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ???????????????? ???????????????????????? / ???? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????????? ???????????? ????, ?????????????????????? ?? ?????? ??????, ?? ?????????????? ?????????????????? ???????????????????? ?????????? ???????????????? ???? + + + + + + + + + + ???????????????? ?? ???????????????????????? ?????????????? ?? ?????????????????? ???????????????????? ?????????????????? ???? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ?????????????????? ???????????????????? ?????????????????? ?? ?????????????????????? ?????????????????????????? ?????? ????, ?????????????????????? ????????????????????????????. ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ???????????????? ?? ???????????????????????? ???????????????? ???? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????? ?????????????????????????? ???? + + + + + + + + ?????? ?????? ???????????????? ????, ???????????????????????????? ???? ???? ???????????? ???????????????? ??????????????????, ?? ?????????? ?????? ???????????????? ???????????????? ?? ???? + + + + + ???????????????? ???????????????????????????? + + + + + ???????????????????? ?? ?????????? ???????????????? ???? ?? ?????????????? ????. ?????? ???????????????????? ???????????? ?? ????, ???????? ???? ?????????? ?????????? ?? ?????????????? ????, ???????????????????? ?????????????????? ???????????????????? ?????????????????? ?????????????????? ???? + + + + ?????????? ??????????????(????) ???????????????????????? ???????????? ?? ?????????????? ???????????????? ???? (???????????? ?? ?????????????? ???? ??????) + + + + + ?????????? ??????????????(????) ???????????????????????? ?? ?????????????? ???????????????????? ???????????????? ?????????? + + + + + + ?????????? ?????????????????? ???????????????? ?????????????? ??????????. ?????????????????? ????????????????: in - ???? ??????????/???? ???????????????? ????????????????????????, out - ???? ????????????/???? ???????????????? ????????????????????????. ???????? ???????????? ?????????? ???????????????? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ??????????/???? ????????????; ???????? ???????????? ?????????? ???????????????? ???????????????????????? ????????????, ???????????????? ???? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ???????????????? ???????????????????????? / ???? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????????? ???????????? ????, ?????????????????????? ?? ?????? ??????, ?? ?????????????? ?????????????????? ???????????????????? ?????????? ???????????????? ???? + + + + + + + + + + ???????????????? ?? ???????????????????????? ?????????????? ?? ?????????????????? ???????????????????? ?????????????????? ???? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ?????????????????? ???????????????????? ?????????????????? ?? ?????????????????????? ?????????????????????????? ?????? ????, ?????????????????????? ????????????????????????????. ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + + ???????????????? ?? ???????????????????????? ???????????????? ???? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????). ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????? ?????????????????????????? ???? + + + + + + + + ?????? ?????? ???????????????????????????? ???? ?????????? ???????????? ???????????????? ?????????????????? + + + + + ?????????????????? (????????????????) ?????????? ???? + + + + + + + + + + ?????????? ???? (?????????????????????? ?????? ???????????????????? ?????? ??????????????) + + + + + + + + + + ???????????? ???? (?????????????????????? ?????? ???????????????????? ?????? ??????????????) + + + + + + + + + + ???????? ?????????????????? + + + + + ???????? ?????????? ?? ???????????????????????? + + + + + ?????????????? ?????????????????????? ???????????????????????????? ???????????? ?????????????????? + + + + + ???????????????????? ?? ?????????????? ?????????????????????? ???????????????????????????? ???????????? ?????????????????? ???? ?????????????????? ???????????????????????? ?????????????????????????? ?????????????? (?????????????????????? ?????? ????????????????????, ???????? tns:RemoteMeteringMode = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + ?????????????? ???????????????? ???????????????????? + + + + + ?????????????? ???????????????? ???????????????? + + + + + ???????????????????????????? ???????????????????????? ???? (???????????????? ?????????????????????? "?????? ?????????????? ??????????" = ???????????????????????? (????????????????????????)) + + + + + + ???????????????????? ?? ?????????????? ???????????????? ?????????????????????? ?? ?????????????????? ???? ???????????????????????????? ???? ???????? ?????????? (?????????????????????? ?????? ????????????????????, ???????? tns:TemperatureSensor = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + ???????????????????? ?? ?????????????? ???????????????? ???????????????? ?? ?????????????????? ???? ???????????????????????????? ???? ???????? ?????????? (?????????????????????? ?????? ????????????????????, ???????? tns:PressureSensor = true, ?? ?????????????????? ???????????? ???????? ???? ???????????????????????????? ?????? ??????????????) + + + + + + + + + + + + + ?? ???????????? ?????????????????? ?????????????? ???????????? ???????????????????? ???????????????? ???? ???????????????????? ???????????????? (???????????? ?????????? ?????????????????? ????????????????) + + + + + ?????????????????????? ?????????? ???????? ?????????? ???????? ?????????? ?? ???????????????????????? + + + + + ?????????????????????? ???????????? ?????? ????, ?????????????????????????????? ?????????????????? + + + + ???????????? ???? ?????????????????? ?????????????? ??????????????????. ???????????????????????? ???????????? (???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????) ???????????? ???????? ???????????? ?????? ????, ?????? ?? ?????? ???????????????? ???? + + + + + ???????????? ???? ?????????????????? ?????????????? ?????????????????? ???? ?????????????????????????? ??????????????. ???????????????????? ???????????????? ?????? ???????????????????? ?????????????? ?????????????????? ?? ?????????????????????? ?? ?????????? ???? ???? ???????????????????? ?????????????? (???????? ???????? ?????????????????? ?????????????????????????????? ???????????? ???????? ??????????????????). + + + + + + ???????? ?????????????????? ?????????????? (???????? ?????????? ?????????????????????????? ?????????? ???????????? ???????????????? ??????????????????, ???? ?????????????????? ?? ???????????????????????????? ?????????? ???????????????? ???????????? ??????????????) + + + + + ???????? ???????????????????????????? ???? ??????????????-?????????????????????????? + + + + + ?????????????? ?????? ?????????????????????????? ?????????? ?????????????????????????? ?????? + + + + + ???????????????????? ?? ?????????? ???????????????? ???? ?? ?????????????? ????. ?????? ???????????????????? ???????????? ?? ????, ???????? ???? ?????????? ?????????? ?? ?????????????? ????, ???????????????????? ?????????????????? ???????????????????? ?????????????????? ?????????????????? ???? + + + + ?????????? ??????????????(????) ???????????????????????? ???????????? ?? ?????????????? ???????????????? ???? (???????????? ?? ?????????????? ???? ??????) + + + + + ?????????? ??????????????(????) ???????????????????????? ?? ?????????????? ???????????????????? ???????????????? ?????????? + + + + + + ?????????? ?????????????????? ???????????????? ?????????????? ??????????. ?????????????????? ????????????????: in - ???? ??????????/???? ???????????????? ????????????????????????, out - ???? ????????????/???? ???????????????? ????????????????????????. ???????? ???????????? ?????????? ???????????????? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ??????????/???? ????????????; ???????? ???????????? ?????????? ???????????????? ???????????????????????? ????????????, ???????????????? ???? ?????????????????????????? ??????????????, ???? ???? ?????????????????????????????? ???? ???????????????? ???????????????????????? / ???? ???????????????? ???????????????????????? + + + + + + + + + + + ?????????????????????????? ???????????? ????, ?????????????????????? ?? ?????? ??????, ?? ?????????????? ?????????????????? ???????????????????? ?????????? ???????????????? ???? + + + + + + + + + ?????????????????? ???????????? ???????????????????????????? ???? + + + + + + ???????????????????????????? ?????? ???????????? ?????????????????? (?????? ?????????????? ?????????? = "????????????????????????????") + + + + + + ?????????????????????????? ?????????????????? (?????? = ?????????? ??????????????????) + + + + + + + + ???????????????????????????? ?????? ???????????????? ?????????????????? (?????? ?????????????? ?????????? = "????????????????????????????") + + + + + + ?????????????????????????? ?????????????????? (?????? = ?????????????? ??????????????????) + + + + + + + + ???????????????????????????? ?????? ???????????? ???????? (?????? ?????????????? ?????????? = "????????????????????????????", ?????? ???????? = "??????????") + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ????????, ?????????????? ???????????????????? ???????????????????? ?? ???????????????? ???????????? ???? (???? ???????????? ?????????????????????? ?????? ?????????????? tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid) + + + + + ?????????????? "???????????????? ?????????? ???? ???? ?????????? ????????, ?????????????????? ?? tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid?" + + + + + + + + ???????????????????????????? ???????????????????????? ???? (?????? ?????????????? ?????????? = "???????????????????????? (??????????????????????)") + + + + + + ???????????????????? ???????????????????? ?????????????????????????? ???????? ???? ????????, ?????????????? ???????????????????? ???????????????????? ?? ???????????????? ???????????? ???? (???? ???????????? ?????????????????????? ?????? ?????????????? tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid) + + + + + ?????????????? "???????????????? ?????????? ???? ???? ?????????? ???????? ???????????????????? ?? tns:importMeteringDeviceDataRequest/ tns:FIASHouseGuid?" + + + + + + + + ???????????????????????????? ???????????????????? ?????? (?????? ?????????????? ?????????? = "??????????????????" + + + + + + ?????????????????????????? ?????????????? + + + + + + + + ???????????????????????????? ?????????????????????????????? ???? (?????? ?????????????? ?????????????????????????? ??????????????????) (?????? ?????????????? ?????????? = "?????????? (????????????????????)") + + + + + + ?????????????????????????? ???????????? ?????????????????? + + + + + + + + + + + + + ???????????????? ?? ???????????????????????? ?????????????? ???? ?? ?????????????????? ???????????????????? ?????????????????? (???????????????? ????????, ?????????????? ????????, ???????????????? ??????????????, ??????, ?????????????? ?????????????? ????????). ???????????????????????? ?????? ???????????????? / ?????????????????? ???? ?????? ?????????????????????? ???? + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ???????????????????? ?????? ????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + 112: ????????, 113: ???????????????????? ????????, 233: ??????????????????????, 245: ????????????????-??????, 246: ????????????????-??????, 271: ????????????, A056: ????????????????????, A058: ???????????????????? + + + + + + + + + + + + + + + + + + + ???????????????? ?? ???????????????????????? ?????????????? ???? ?? ?????????????????? ???????????????????? ?????????????????? (???????????????? ????????, ?????????????? ????????, ???????????????? ??????????????, ??????, ?????????????? ?????????????? ????????). ???????????????????????? ?????? ???????????????? / ?????????????????? ???? ?????? ?????????????????????? ???? + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ???????????????????? ?????? ????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + 112: ????????, 113: ???????????????????? ????????, 233: ??????????????????????, 245: ????????????????-??????, 246: ????????????????-??????, 271: ????????????, A056: ????????????????????, A058: ???????????????????? + + + + + + + + + + + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + + + + + ???????????? ?????????????????????????? ????: ???????????????????????? ????????????, ?????????????????? ???????????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????. ???????????????????????? ?????? ???????????????? ???????????? ???? + + + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + ?????? ?????????????? + + + + + ?????????????????????????? ??????????????????????, ?????????????? ?????????? ?????????????????? ?? ??????????????. ???? ??????????????????????, ???????? ?????????????????? ???????? ?????????????? ?????????????????????? + + + + + + + + + ?????????????????? ???????????????????? ?????????????????? (?????????????????????????? ??????????????) ?? ???????????????? ?? ???? (??????????. ?????????????????????????? ?? ????). ?? ?????????????????????? ???? ???????????????????? ??????????????????, ???????????????? ?????? ???????????????? ????, ???????????????????????? ?????? ?????? ???? ???????????????????? ?????????????? + + + + + + + ?????????????????????? ?????????????????????????? + + + + + + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ???????????????????? ?????? ????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + 245: ????????????????-?????? + + + + + + + + + + + + ?????????????????? ???????????????????? ?????????????????? (?????????????????????????? ??????????????) ?? ???????????????????? ???????????????? ?? ???? (??????????. ??????????????????????????). ?? ?????????????????????? ???? ???????????????????? ??????????????????, ???????????????? ?????? ???????????????? ????, ???????????????????????? ?????? ?????? ???? ???????????????????? ??????????????. + + + + + + + ?????????????????????? ?????????????????????????? + + + + + + + + + + + + + + + + ???????????? ???????????????????????????? ????: ???????????????????????? ????????????, ?????????????????? ???????????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????. ???????????????????????? ?????? ???????????????? ???????????? ???? + + + + + + + ?????????????????????? ?????????????????????????? + + + + + + + + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? (???? ???????????????????????? ???????????????????????????? ????????). ???????????????????? ?????? ????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + 245: ????????????????-?????? + + + + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? ???? ???????????? T1 + + + + + ???????????????? ???? ???????????? T2 + + + + + ???????????????? ???? ???????????? T3 + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + + + + + ???????????? ???????????????????????????? ????: ???????????????????????? ????????????, ?????????????????? ???????????????????? ?????????????????? ?? ???????????????? ?????????????????? ???? ?? (???????? ????????????????????) ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????, ???????????????? ???????????? ?? ???????????????????? ????. ???????????????????????? ?????? ???????????????? ???????????? ???? + + + + + + + ???????????????? ?????????????????? ????, ???????????????????? ?? ???????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ??????????????????. ??????????????????????, ???????? ???? ?????????????????? ???? ???????????????????? ???? ???? ???? ???? ?????????????????? + + + + + + ???????????????? ???? ???????????? T1 + + + + + ???????????????? ???? ???????????? T2 + + + + + ???????????????? ???? ???????????? T3 + + + + + ?????????????? ?????????????????? ?????????????????????????? ?????????????? ???? ?????????????????? + + + + + + + + ?????? ?????????????? + + + + + ?????????????????????????? ??????????????????????, ?????????????? ?????????? ?????????????????? ?? ??????????????. ???? ??????????????????????, ???????? ?????????????????? ???????? ?????????????? ?????????????????????? + + + + + + + + + ???????????????? ?? ???????????????????????? ?????????????? ???? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????) + + + + + ???????????????????????? ???????????? (????????????????????????????, ???????????????? ??????????????, ??????, ?????????????? ????????, ???????????????? ????????, ?????????????? ?????????????? ????????) (?????? 2) + + + + + ?????? ?????????????? ?????????????????? ?????????????????? ???? ???? ???? + + + + + + + + + + + + + + + + + ???????????????????? ?????????????? ???? (1, 2 ?????? 3). ?????????????????????? ???????????? ?????? ???? - ???????????????????????????? + + + + + + + + + + + ?????????????????????? ??????????????????????????. ?????????? ?????????????????????? ???????????? ?????? ???? ???????????????????????????? + + + + + + + + + + + + + + ???????????????????? ???? ?????????????????????????? (??????????????) + + + + + ?????????????? ???????????????????????? + + + + + + + + + + + + ???????????? ?????????????????? + + + + + + ?????? ?????????????????? ?? ?????????????????????????? ???????????????? ???????????????????? ?????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + + ?????? ?????????????????? (?????????????????????? ???????????????????? ???? ?????????????????????? ?????? 362) + + + + + + + ???????????? ?????????????????? ?????? ???????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ?????????????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? ?? ?????????????????????????? ???????????????? ???????????????????? ?????????????????? ?? ?? ???????????? ???????????? ???????????????????????? ?? ???????????????? ?????????????????? + + + + + ?????? ?????????????????? (???????????????? ???? ?????????????????????? 362) + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-individual-registry-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-individual-registry-base.xsd new file mode 100644 index 0000000..0ff232e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-individual-registry-base.xsd @@ -0,0 +1,157 @@ + + + + + + + Удостоверение личности + + + + + + Документ, удостоверяющий личность (НСИ 95) + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата выдачи документа + + + + + + + + Физическое лицо + + + + + + + + + + + + + + + + + + СНИЛС + + + + + + + + + + + Фамилия + + + + + + + + + + + Имя + + + + + + + + + + + Отчество + + + + + + + + + + + ФИО + + + + + + + + + + ФИО + + + + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + Место рождения + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-metering-device-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-metering-device-base.xsd new file mode 100644 index 0000000..c009401 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-metering-device-base.xsd @@ -0,0 +1,159 @@ + + + + + + + Идентификатор ПУ + + + + + + Показание ПУ. Значение (15 до запятой, 7 после) + + + + + + + + Коммунальный ресурс и показание ПУ для однотарифного ПУ. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Коммунальный ресурс (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Значение + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Показания ПУ электрической энергии. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последние полученные показания в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Объемы потребленных ресурсов по ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) + + + + + Коммунальный ресурс (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Объем по тарифу T1 + + + + + Объем по тарифу T2 + + + + + Объем по тарифу T3 + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-nsi-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-nsi-base.xsd new file mode 100644 index 0000000..cbd302d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-nsi-base.xsd @@ -0,0 +1,427 @@ + + + + + + + + + + + + Ссылка на справочник + + + + + Код записи справочника + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + Скалярный тип. Наименование справочника. Строка не более 200 символов. + + + + + + + + Скалярный тип. Реестровый номер справочника. Код не более 10 символов. + + + + + + + + Составной тип. Наименование, дата и время последнего изменения справочника. + + + + + Реестровый номер справочника. + + + + + Наименование справочника. + + + + + Дата и время последнего изменения справочника. + + + + + + + Перечень справочников с датой последнего изменения каждого из них. + + + + + Дата и время формирования перечня справочников. + + + + + Наименование, дата и время последнего изменения справочника. + + + + + + + + Данные справочника. + + + + + Реестровый номер справочника. + + + + + Дата и время формирования данных справочника. + + + + + Элемент справочника верхнего уровня. + + + + + + + Составной тип. Элемент справочника. + + + + + Код элемента справочника, уникальный в пределах справочника. + + + + + Глобально-уникальный идентификатор элемента справочника. + + + + + + Дата и время последнего изменения элемента справочника (в том числе создания). + + + + + + Дата начала действия значения + + + + + Дата окончания действия значения + + + + + + + Признак актуальности элемента справочника. + + + + + Наименование и значение поля для элемента справочника. + + + + + Дочерний элемент. + + + + + + + Составной тип. Наименование и значение поля для элемента справочника. Абстрактный тип. + + + + + Наименование поля элемента справочника. + + + + + + + Составной тип. Наименование и значение поля типа "Строка" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Строка". + + + + + + + + + Составной тип. Наименование и значение поля типа "Да/Нет" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Да/Нет". + + + + + + + + + Составной тип. Наименование и значение поля типа "Вещественное" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Вещественное". + + + + + + + + + Составной тип. Наименование и значение поля типа "Дата" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Дата". + + + + + + + + + Составной тип. Наименование и значение поля типа "Целое число" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Целое число". + + + + + + + + + Составной тип. Наименование и значение поля типа "Перечислимый" для элемента справочника. + + + + + + + Запись элемента справочника типа "Перечислимый". + + + + + + Код поля элемента справочника типа "Перечислимый". + + + + + Значение поля элемента справочника типа "Перечислимый". + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на справочник" для элемента справочника. + + + + + + + Ссылка на справочник. + + + + + + Реестровый номер справочника. + + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент внутреннего справочника" для элемента справочника. + + + + + + + Ссылка на элемент внутреннего справочника. + + + + + + Реестровый номер справочника. + + + + + Ссылка на элемент справочника. + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ОКЕИ" для элемента справочника. + + + + + + + Код единицы измерения по справочнику ОКЕИ. + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ФИАС" для элемента справочника. + + + + + + + Ссылка на элемент справочника ФИАС. + + + + + + Идентификационный код позиции в справочнике ФИАС. + + + + + Глобально-уникальный идентификатор адресного объекта в справочнике ФИАС. + + + + + + + + + + + + Составной тип. Наименование и значение поля "Вложение" + + + + + + + Документ + + + + + + + + + Скалярный тип. Наименование поля элемента справочника. Строка не более 200 символов. + + + + + + + + Группа справочника: +NSI - (по умолчанию) общесистемный +NSIRAO - ОЖФ + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-base.xsd new file mode 100644 index 0000000..c001395 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-base.xsd @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + КПП + + + + + + + + + + + + + ОГРН + + + + + + + + + + ОГРНИП + + + + + + + + + + ОКОПФ + + + + + + + + + + + ОКОГУ + + + + + + + + + + Телефон + + + + + + + + + + + + + + + + + + + + + + + БИК + + + + + + + + БИК + + + + + + ИНН + + + + + НЗА (Номер записи об аккредитации) + + + + + + + + НЗА (Номер записи об аккредитации) + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-registry-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-registry-base.xsd new file mode 100644 index 0000000..f53a4c7 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-organizations-registry-base.xsd @@ -0,0 +1,265 @@ + + + + + + + + + Полное наименование + + + + + + + + + + + Фирменное наименование + + + + + Юридическое лицо + + + + + + + + + Дата государственной регистрации + + + + + + + + Адрес регистрации + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + + + ОП (Обособленное подразделение) + + + + + Полное наименование + + + + + + + + + + + Сокращенное наименование + + + + + + + + + + + + + + + Адрес регистрации + + + + + + + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + Источник информации + + + + + + + от + + + + + + + + + + + ФПИЮЛ (Филиал или представительство иностранного юридического лица) + + + + + + + + + + Адрес места нахождения(жительства)_текст + + + + + Адрес места нахождения(жительства)_ФИАС + + + + + Дата внесения записи в реестр аккредитованных + + + + + Дата прекращения действия аккредитации + + + + + Страна регистрации иностранного ЮЛ (Справочник ОКСМ, альфа-2) + + + + + + + + + + + + + Индивидуальный предприниматель + + + + + Фамилия + + + + + Имя + + + + + Отчество + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + ОГРН + + + + + Дата государственной регистрации + + + + + + + + Организация в реестре организаций + + + + + + + + + + Версия организации в реестре организаций + + + + + + + + + + Организация и версия организации в реестре организаций + + + + + + + + + Идентификатор корневой сущности организации в реестре организаций + + + + + Идентификатор версии записи в реестре организаций + + + + + Сокращенное наименование + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-premises-base.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-premises-base.xsd new file mode 100644 index 0000000..7f6914b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/hcs-premises-base.xsd @@ -0,0 +1,73 @@ + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + Тип уникального номера дома + + + + + + + + Тип уникального номера помещения + + + + + + + + Тип уникального номера комнаты + + + + + + + + Площадь жилого помещения (7 до запятой, 2 после) + + + + + + + + + + Площадь территории/здания + + + + + + + + + + Площадь помещения + + + + + + + + + + Площадь помещения (для экспорта данных) + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/xmldsig-core-schema.xsd b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/xmldsig-core-schema.xsd new file mode 100644 index 0000000..e036087 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.HouseManagement.v14_5_0_1/xmldsig-core-schema.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest.datasource new file mode 100644 index 0000000..c6bf3a6 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader.datasource new file mode 100644 index 0000000..ea8be9e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse.datasource new file mode 100644 index 0000000..163d759 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse.datasource new file mode 100644 index 0000000..3890483 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse.datasource new file mode 100644 index 0000000..4b84275 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse.datasource new file mode 100644 index 0000000..5a87ad5 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse.datasource new file mode 100644 index 0000000..c9779a0 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse.datasource new file mode 100644 index 0000000..6ea8a6b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult.datasource b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult.datasource new file mode 100644 index 0000000..6741d1b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult.datasource @@ -0,0 +1,10 @@ + + + + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult, Connected Services.Service.Async.OrgRegistryCommon.v14_5_0_1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.cs b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.cs new file mode 100644 index 0000000..5b7cf2f --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.cs @@ -0,0 +1,4647 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1 { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class Fault : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string errorMessageField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ErrorMessage { + get { + return this.errorMessageField; + } + set { + this.errorMessageField = value; + this.RaisePropertyChanged("ErrorMessage"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class OKTMORefType : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class TerritoryDelegatedAccessRightType : object, System.ComponentModel.INotifyPropertyChanged { + + private string accessRightGUIDField; + + private OKTMORefType[] oKTMOField; + + private nsiRef[] regionField; + + private bool allTerritoriesField; + + private bool allTerritoriesFieldSpecified; + + public TerritoryDelegatedAccessRightType() { + this.allTerritoriesField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AccessRightGUID { + get { + return this.accessRightGUIDField; + } + set { + this.accessRightGUIDField = value; + this.RaisePropertyChanged("AccessRightGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OKTMO", Order=1)] + public OKTMORefType[] OKTMO { + get { + return this.oKTMOField; + } + set { + this.oKTMOField = value; + this.RaisePropertyChanged("OKTMO"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Region", Order=2)] + public nsiRef[] Region { + get { + return this.regionField; + } + set { + this.regionField = value; + this.RaisePropertyChanged("Region"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool AllTerritories { + get { + return this.allTerritoriesField; + } + set { + this.allTerritoriesField = value; + this.RaisePropertyChanged("AllTerritories"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AllTerritoriesSpecified { + get { + return this.allTerritoriesFieldSpecified; + } + set { + this.allTerritoriesFieldSpecified = value; + this.RaisePropertyChanged("AllTerritoriesSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/nsi-base/")] + public partial class nsiRef : object, System.ComponentModel.INotifyPropertyChanged { + + private string codeField; + + private string gUIDField; + + private string nameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Code { + get { + return this.codeField; + } + set { + this.codeField = value; + this.RaisePropertyChanged("Code"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("Name"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class ObjectsDelegatedAccessRightType : object, System.ComponentModel.INotifyPropertyChanged { + + private string accessRightGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AccessRightGUID { + get { + return this.accessRightGUIDField; + } + set { + this.accessRightGUIDField = value; + this.RaisePropertyChanged("AccessRightGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AllObjects", typeof(bool), Order=1)] + [System.Xml.Serialization.XmlElementAttribute("ObjectInfo", typeof(ObjectsDelegatedAccessRightTypeObjectInfo), Order=1)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class ObjectsDelegatedAccessRightTypeObjectInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private string objectGUIDField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ObjectGUID { + get { + return this.objectGUIDField; + } + set { + this.objectGUIDField = value; + this.RaisePropertyChanged("ObjectGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class AccessRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private string accessRequestGUIDField; + + private AccessRequestType typeField; + + private System.DateTime applicationDateField; + + private System.DateTime startDateField; + + private System.DateTime endDateField; + + private bool endDateFieldSpecified; + + private AccessRequestStatus statusField; + + private System.DateTime statusChangeDateField; + + private bool statusChangeDateFieldSpecified; + + private string statusReasonField; + + private AccessRequestDelegatedAccessRight[] delegatedAccessRightField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AccessRequestGUID { + get { + return this.accessRequestGUIDField; + } + set { + this.accessRequestGUIDField = value; + this.RaisePropertyChanged("AccessRequestGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public AccessRequestType Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=2)] + public System.DateTime ApplicationDate { + get { + return this.applicationDateField; + } + set { + this.applicationDateField = value; + this.RaisePropertyChanged("ApplicationDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=3)] + public System.DateTime StartDate { + get { + return this.startDateField; + } + set { + this.startDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime EndDate { + get { + return this.endDateField; + } + set { + this.endDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndDateSpecified { + get { + return this.endDateFieldSpecified; + } + set { + this.endDateFieldSpecified = value; + this.RaisePropertyChanged("EndDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public AccessRequestStatus Status { + get { + return this.statusField; + } + set { + this.statusField = value; + this.RaisePropertyChanged("Status"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=6)] + public System.DateTime StatusChangeDate { + get { + return this.statusChangeDateField; + } + set { + this.statusChangeDateField = value; + this.RaisePropertyChanged("StatusChangeDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StatusChangeDateSpecified { + get { + return this.statusChangeDateFieldSpecified; + } + set { + this.statusChangeDateFieldSpecified = value; + this.RaisePropertyChanged("StatusChangeDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string StatusReason { + get { + return this.statusReasonField; + } + set { + this.statusReasonField = value; + this.RaisePropertyChanged("StatusReason"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DelegatedAccessRight", Order=8)] + public AccessRequestDelegatedAccessRight[] DelegatedAccessRight { + get { + return this.delegatedAccessRightField; + } + set { + this.delegatedAccessRightField = value; + this.RaisePropertyChanged("DelegatedAccessRight"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public enum AccessRequestType { + + /// + ForInformationSystemOperator, + + /// + ForCalculationCenter, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public enum AccessRequestStatus { + + /// + Created, + + /// + Accepted, + + /// + Declined, + + /// + Revoked, + + /// + Annulled, + + /// + Closed, + + /// + Preset, + + /// + Waiting_approval, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class AccessRequestDelegatedAccessRight : object, System.ComponentModel.INotifyPropertyChanged { + + private string accessRightGUIDField; + + private AccessRequestDelegatedAccessRightTerritoryInfo territoryInfoField; + + private AccessRequestDelegatedAccessRightObjectInfo objectInfoField; + + private bool isActualField; + + private nsiRef[] informationTypeField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string AccessRightGUID { + get { + return this.accessRightGUIDField; + } + set { + this.accessRightGUIDField = value; + this.RaisePropertyChanged("AccessRightGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public AccessRequestDelegatedAccessRightTerritoryInfo TerritoryInfo { + get { + return this.territoryInfoField; + } + set { + this.territoryInfoField = value; + this.RaisePropertyChanged("TerritoryInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public AccessRequestDelegatedAccessRightObjectInfo ObjectInfo { + get { + return this.objectInfoField; + } + set { + this.objectInfoField = value; + this.RaisePropertyChanged("ObjectInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool IsActual { + get { + return this.isActualField; + } + set { + this.isActualField = value; + this.RaisePropertyChanged("IsActual"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("InformationType", Order=4)] + public nsiRef[] InformationType { + get { + return this.informationTypeField; + } + set { + this.informationTypeField = value; + this.RaisePropertyChanged("InformationType"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class AccessRequestDelegatedAccessRightTerritoryInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AllTerritories", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ExistListOfTerritory", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", IncludeInSchema=false)] + public enum ItemChoiceType { + + /// + AllTerritories, + + /// + ExistListOfTerritory, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class AccessRequestDelegatedAccessRightObjectInfo : object, System.ComponentModel.INotifyPropertyChanged { + + private bool itemField; + + private ItemChoiceType1 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AllObjects", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ExistListOfObjects", typeof(bool), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public bool Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType1 ItemElementName { + get { + return this.itemElementNameField; + } + set { + this.itemElementNameField = value; + this.RaisePropertyChanged("ItemElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", IncludeInSchema=false)] + public enum ItemChoiceType1 { + + /// + AllObjects, + + /// + ExistListOfObjects, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportDelegatedAccessType : object, System.ComponentModel.INotifyPropertyChanged { + + private RegOrgType parentOrgField; + + private string orgPPAGUIDField; + + private RegOrgType regOrgField; + + private AccessRequest[] accessRequestField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public RegOrgType ParentOrg { + get { + return this.parentOrgField; + } + set { + this.parentOrgField = value; + this.RaisePropertyChanged("ParentOrg"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=1)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=2)] + public RegOrgType RegOrg { + get { + return this.regOrgField; + } + set { + this.regOrgField = value; + this.RaisePropertyChanged("RegOrg"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccessRequest", Order=3)] + public AccessRequest[] AccessRequest { + get { + return this.accessRequestField; + } + set { + this.accessRequestField = value; + this.RaisePropertyChanged("AccessRequest"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class RegOrgType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgRootEntityGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgRootEntityGUID { + get { + return this.orgRootEntityGUIDField; + } + set { + this.orgRootEntityGUIDField = value; + this.RaisePropertyChanged("orgRootEntityGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportDataProviderResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string dataProviderGUIDField; + + private bool isActualField; + + private RegOrgType regOrgField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string DataProviderGUID { + get { + return this.dataProviderGUIDField; + } + set { + this.dataProviderGUIDField = value; + this.RaisePropertyChanged("DataProviderGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsActual { + get { + return this.isActualField; + } + set { + this.isActualField = value; + this.RaisePropertyChanged("IsActual"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=2)] + public RegOrgType RegOrg { + get { + return this.regOrgField; + } + set { + this.regOrgField = value; + this.RaisePropertyChanged("RegOrg"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class ForeignBranchType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fullNameField; + + private string shortNameField; + + private string nZAField; + + private string iNNField; + + private string kPPField; + + private string addressField; + + private string fIASHouseGuidField; + + private System.DateTime accreditationStartDateField; + + private System.DateTime accreditationEndDateField; + + private bool accreditationEndDateFieldSpecified; + + private string registrationCountryField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FullName { + get { + return this.fullNameField; + } + set { + this.fullNameField = value; + this.RaisePropertyChanged("FullName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ShortName { + get { + return this.shortNameField; + } + set { + this.shortNameField = value; + this.RaisePropertyChanged("ShortName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=2)] + public string NZA { + get { + return this.nZAField; + } + set { + this.nZAField = value; + this.RaisePropertyChanged("NZA"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=3)] + public string INN { + get { + return this.iNNField; + } + set { + this.iNNField = value; + this.RaisePropertyChanged("INN"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=4)] + public string KPP { + get { + return this.kPPField; + } + set { + this.kPPField = value; + this.RaisePropertyChanged("KPP"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string Address { + get { + return this.addressField; + } + set { + this.addressField = value; + this.RaisePropertyChanged("Address"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=7)] + public System.DateTime AccreditationStartDate { + get { + return this.accreditationStartDateField; + } + set { + this.accreditationStartDateField = value; + this.RaisePropertyChanged("AccreditationStartDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=8)] + public System.DateTime AccreditationEndDate { + get { + return this.accreditationEndDateField; + } + set { + this.accreditationEndDateField = value; + this.RaisePropertyChanged("AccreditationEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AccreditationEndDateSpecified { + get { + return this.accreditationEndDateFieldSpecified; + } + set { + this.accreditationEndDateFieldSpecified = value; + this.RaisePropertyChanged("AccreditationEndDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string RegistrationCountry { + get { + return this.registrationCountryField; + } + set { + this.registrationCountryField = value; + this.RaisePropertyChanged("RegistrationCountry"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class EntpsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string surnameField; + + private string firstNameField; + + private string patronymicField; + + private EntpsTypeSex sexField; + + private bool sexFieldSpecified; + + private string oGRNIPField; + + private System.DateTime stateRegistrationDateField; + + private bool stateRegistrationDateFieldSpecified; + + private string iNNField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string Surname { + get { + return this.surnameField; + } + set { + this.surnameField = value; + this.RaisePropertyChanged("Surname"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FirstName { + get { + return this.firstNameField; + } + set { + this.firstNameField = value; + this.RaisePropertyChanged("FirstName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string Patronymic { + get { + return this.patronymicField; + } + set { + this.patronymicField = value; + this.RaisePropertyChanged("Patronymic"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public EntpsTypeSex Sex { + get { + return this.sexField; + } + set { + this.sexField = value; + this.RaisePropertyChanged("Sex"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SexSpecified { + get { + return this.sexFieldSpecified; + } + set { + this.sexFieldSpecified = value; + this.RaisePropertyChanged("SexSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=4)] + public string OGRNIP { + get { + return this.oGRNIPField; + } + set { + this.oGRNIPField = value; + this.RaisePropertyChanged("OGRNIP"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=5)] + public System.DateTime StateRegistrationDate { + get { + return this.stateRegistrationDateField; + } + set { + this.stateRegistrationDateField = value; + this.RaisePropertyChanged("StateRegistrationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StateRegistrationDateSpecified { + get { + return this.stateRegistrationDateFieldSpecified; + } + set { + this.stateRegistrationDateFieldSpecified = value; + this.RaisePropertyChanged("StateRegistrationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=6)] + public string INN { + get { + return this.iNNField; + } + set { + this.iNNField = value; + this.RaisePropertyChanged("INN"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public enum EntpsTypeSex { + + /// + M, + + /// + F, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class RegOrgVersionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgVersionGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string orgVersionGUID { + get { + return this.orgVersionGUIDField; + } + set { + this.orgVersionGUIDField = value; + this.RaisePropertyChanged("orgVersionGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class SubsidiaryType : object, System.ComponentModel.INotifyPropertyChanged { + + private string fullNameField; + + private string shortNameField; + + private string oGRNField; + + private string iNNField; + + private string kPPField; + + private string oKOPFField; + + private string addressField; + + private string fIASHouseGuidField; + + private System.DateTime activityEndDateField; + + private bool activityEndDateFieldSpecified; + + private SubsidiaryTypeSourceName sourceNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string FullName { + get { + return this.fullNameField; + } + set { + this.fullNameField = value; + this.RaisePropertyChanged("FullName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ShortName { + get { + return this.shortNameField; + } + set { + this.shortNameField = value; + this.RaisePropertyChanged("ShortName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=2)] + public string OGRN { + get { + return this.oGRNField; + } + set { + this.oGRNField = value; + this.RaisePropertyChanged("OGRN"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=3)] + public string INN { + get { + return this.iNNField; + } + set { + this.iNNField = value; + this.RaisePropertyChanged("INN"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=4)] + public string KPP { + get { + return this.kPPField; + } + set { + this.kPPField = value; + this.RaisePropertyChanged("KPP"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=5)] + public string OKOPF { + get { + return this.oKOPFField; + } + set { + this.oKOPFField = value; + this.RaisePropertyChanged("OKOPF"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string Address { + get { + return this.addressField; + } + set { + this.addressField = value; + this.RaisePropertyChanged("Address"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=8)] + public System.DateTime ActivityEndDate { + get { + return this.activityEndDateField; + } + set { + this.activityEndDateField = value; + this.RaisePropertyChanged("ActivityEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ActivityEndDateSpecified { + get { + return this.activityEndDateFieldSpecified; + } + set { + this.activityEndDateFieldSpecified = value; + this.RaisePropertyChanged("ActivityEndDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public SubsidiaryTypeSourceName SourceName { + get { + return this.sourceNameField; + } + set { + this.sourceNameField = value; + this.RaisePropertyChanged("SourceName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class SubsidiaryTypeSourceName : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private string valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="date")] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/")] + public partial class LegalType : object, System.ComponentModel.INotifyPropertyChanged { + + private string shortNameField; + + private string fullNameField; + + private string commercialNameField; + + private string oGRNField; + + private System.DateTime stateRegistrationDateField; + + private bool stateRegistrationDateFieldSpecified; + + private string iNNField; + + private string kPPField; + + private string oKOPFField; + + private string addressField; + + private string fIASHouseGuidField; + + private System.DateTime activityEndDateField; + + private bool activityEndDateFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ShortName { + get { + return this.shortNameField; + } + set { + this.shortNameField = value; + this.RaisePropertyChanged("ShortName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string FullName { + get { + return this.fullNameField; + } + set { + this.fullNameField = value; + this.RaisePropertyChanged("FullName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string CommercialName { + get { + return this.commercialNameField; + } + set { + this.commercialNameField = value; + this.RaisePropertyChanged("CommercialName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=3)] + public string OGRN { + get { + return this.oGRNField; + } + set { + this.oGRNField = value; + this.RaisePropertyChanged("OGRN"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=4)] + public System.DateTime StateRegistrationDate { + get { + return this.stateRegistrationDateField; + } + set { + this.stateRegistrationDateField = value; + this.RaisePropertyChanged("StateRegistrationDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StateRegistrationDateSpecified { + get { + return this.stateRegistrationDateFieldSpecified; + } + set { + this.stateRegistrationDateFieldSpecified = value; + this.RaisePropertyChanged("StateRegistrationDateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=5)] + public string INN { + get { + return this.iNNField; + } + set { + this.iNNField = value; + this.RaisePropertyChanged("INN"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=6)] + public string KPP { + get { + return this.kPPField; + } + set { + this.kPPField = value; + this.RaisePropertyChanged("KPP"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=7)] + public string OKOPF { + get { + return this.oKOPFField; + } + set { + this.oKOPFField = value; + this.RaisePropertyChanged("OKOPF"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public string Address { + get { + return this.addressField; + } + set { + this.addressField = value; + this.RaisePropertyChanged("Address"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string FIASHouseGuid { + get { + return this.fIASHouseGuidField; + } + set { + this.fIASHouseGuidField = value; + this.RaisePropertyChanged("FIASHouseGuid"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=10)] + public System.DateTime ActivityEndDate { + get { + return this.activityEndDateField; + } + set { + this.activityEndDateField = value; + this.RaisePropertyChanged("ActivityEndDate"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ActivityEndDateSpecified { + get { + return this.activityEndDateFieldSpecified; + } + set { + this.activityEndDateFieldSpecified = value; + this.RaisePropertyChanged("ActivityEndDateSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgRootEntityGUIDField; + + private exportOrgRegistryResultTypeOrgVersion orgVersionField; + + private string orgPPAGUIDField; + + private nsiRef[] organizationRolesField; + + private bool isRegisteredField; + + private bool isRegisteredFieldSpecified; + + public exportOrgRegistryResultType() { + this.isRegisteredField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=0)] + public string orgRootEntityGUID { + get { + return this.orgRootEntityGUIDField; + } + set { + this.orgRootEntityGUIDField = value; + this.RaisePropertyChanged("orgRootEntityGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportOrgRegistryResultTypeOrgVersion OrgVersion { + get { + return this.orgVersionField; + } + set { + this.orgVersionField = value; + this.RaisePropertyChanged("OrgVersion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=2)] + public string orgPPAGUID { + get { + return this.orgPPAGUIDField; + } + set { + this.orgPPAGUIDField = value; + this.RaisePropertyChanged("orgPPAGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("organizationRoles", Order=3)] + public nsiRef[] organizationRoles { + get { + return this.organizationRolesField; + } + set { + this.organizationRolesField = value; + this.RaisePropertyChanged("organizationRoles"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool isRegistered { + get { + return this.isRegisteredField; + } + set { + this.isRegisteredField = value; + this.RaisePropertyChanged("isRegistered"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool isRegisteredSpecified { + get { + return this.isRegisteredFieldSpecified; + } + set { + this.isRegisteredFieldSpecified = value; + this.RaisePropertyChanged("isRegisteredSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryResultTypeOrgVersion : object, System.ComponentModel.INotifyPropertyChanged { + + private string orgVersionGUIDField; + + private System.DateTime lastEditingDateField; + + private bool isActualField; + + private object itemField; + + private exportOrgRegistryResultTypeOrgVersionRegistryOrganizationStatus registryOrganizationStatusField; + + private bool registryOrganizationStatusFieldSpecified; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=0)] + public string orgVersionGUID { + get { + return this.orgVersionGUIDField; + } + set { + this.orgVersionGUIDField = value; + this.RaisePropertyChanged("orgVersionGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime lastEditingDate { + get { + return this.lastEditingDateField; + } + set { + this.lastEditingDateField = value; + this.RaisePropertyChanged("lastEditingDate"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool IsActual { + get { + return this.isActualField; + } + set { + this.isActualField = value; + this.RaisePropertyChanged("IsActual"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Entrp", typeof(EntpsType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("ForeignBranch", typeof(ForeignBranchType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("Legal", typeof(LegalType), Order=3)] + [System.Xml.Serialization.XmlElementAttribute("Subsidiary", typeof(exportOrgRegistryResultTypeOrgVersionSubsidiary), Order=3)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public exportOrgRegistryResultTypeOrgVersionRegistryOrganizationStatus registryOrganizationStatus { + get { + return this.registryOrganizationStatusField; + } + set { + this.registryOrganizationStatusField = value; + this.RaisePropertyChanged("registryOrganizationStatus"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool registryOrganizationStatusSpecified { + get { + return this.registryOrganizationStatusFieldSpecified; + } + set { + this.registryOrganizationStatusFieldSpecified = value; + this.RaisePropertyChanged("registryOrganizationStatusSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryResultTypeOrgVersionSubsidiary : SubsidiaryType { + + private string statusVersionField; + + private exportOrgRegistryResultTypeOrgVersionSubsidiaryParentOrg parentOrgField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string StatusVersion { + get { + return this.statusVersionField; + } + set { + this.statusVersionField = value; + this.RaisePropertyChanged("StatusVersion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public exportOrgRegistryResultTypeOrgVersionSubsidiaryParentOrg ParentOrg { + get { + return this.parentOrgField; + } + set { + this.parentOrgField = value; + this.RaisePropertyChanged("ParentOrg"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryResultTypeOrgVersionSubsidiaryParentOrg : object, System.ComponentModel.INotifyPropertyChanged { + + private RegOrgVersionType regOrgVersionField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=0)] + public RegOrgVersionType RegOrgVersion { + get { + return this.regOrgVersionField; + } + set { + this.regOrgVersionField = value; + this.RaisePropertyChanged("RegOrgVersion"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public enum exportOrgRegistryResultTypeOrgVersionRegistryOrganizationStatus { + + /// + P, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultType : object, System.ComponentModel.INotifyPropertyChanged { + + private string gUIDField; + + private string transportGUIDField; + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string GUID { + get { + return this.gUIDField; + } + set { + this.gUIDField = value; + this.RaisePropertyChanged("GUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string TransportGUID { + get { + return this.transportGUIDField; + } + set { + this.transportGUIDField = value; + this.RaisePropertyChanged("TransportGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Error", typeof(CommonResultTypeError), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UniqueNumber", typeof(string), Order=2)] + [System.Xml.Serialization.XmlElementAttribute("UpdateDate", typeof(System.DateTime), Order=2)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class CommonResultTypeError : ErrorMessageType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ErrorMessageType : object, System.ComponentModel.INotifyPropertyChanged { + + private string errorCodeField; + + private string descriptionField; + + private string stackTraceField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ErrorCode { + get { + return this.errorCodeField; + } + set { + this.errorCodeField = value; + this.RaisePropertyChanged("ErrorCode"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string Description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("Description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string StackTrace { + get { + return this.stackTraceField; + } + set { + this.stackTraceField = value; + this.RaisePropertyChanged("StackTrace"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string idField; + + private string mimeTypeField; + + private string encodingField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string MimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("MimeType"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Encoding { + get { + return this.encodingField; + } + set { + this.encodingField = value; + this.RaisePropertyChanged("Encoding"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SPKIDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKISexp", typeof(byte[]), DataType="base64Binary", Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class PGPDataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType1[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyID", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPKeyPacket", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType1[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType1 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + PGPKeyID, + + /// + PGPKeyPacket, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509IssuerSerialType : object, System.ComponentModel.INotifyPropertyChanged { + + private string x509IssuerNameField; + + private string x509SerialNumberField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string X509IssuerName { + get { + return this.x509IssuerNameField; + } + set { + this.x509IssuerNameField = value; + this.RaisePropertyChanged("X509IssuerName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string X509SerialNumber { + get { + return this.x509SerialNumberField; + } + set { + this.x509SerialNumberField = value; + this.RaisePropertyChanged("X509SerialNumber"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class X509DataType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType[] itemsElementNameField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509CRL", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Certificate", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509IssuerSerial", typeof(X509IssuerSerialType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SKI", typeof(byte[]), DataType="base64Binary", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509SubjectName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + X509CRL, + + /// + X509Certificate, + + /// + X509IssuerSerial, + + /// + X509SKI, + + /// + X509SubjectName, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RetrievalMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class TransformType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private string[] textField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("XPath", typeof(string), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class RSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] modulusField; + + private byte[] exponentField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] Modulus { + get { + return this.modulusField; + } + set { + this.modulusField = value; + this.RaisePropertyChanged("Modulus"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Exponent { + get { + return this.exponentField; + } + set { + this.exponentField = value; + this.RaisePropertyChanged("Exponent"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DSAKeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private byte[] pField; + + private byte[] qField; + + private byte[] gField; + + private byte[] yField; + + private byte[] jField; + + private byte[] seedField; + + private byte[] pgenCounterField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=0)] + public byte[] P { + get { + return this.pField; + } + set { + this.pField = value; + this.RaisePropertyChanged("P"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=1)] + public byte[] Q { + get { + return this.qField; + } + set { + this.qField = value; + this.RaisePropertyChanged("Q"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] G { + get { + return this.gField; + } + set { + this.gField = value; + this.RaisePropertyChanged("G"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=3)] + public byte[] Y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("Y"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] J { + get { + return this.jField; + } + set { + this.jField = value; + this.RaisePropertyChanged("J"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=5)] + public byte[] Seed { + get { + return this.seedField; + } + set { + this.seedField = value; + this.RaisePropertyChanged("Seed"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=6)] + public byte[] PgenCounter { + get { + return this.pgenCounterField; + } + set { + this.pgenCounterField = value; + this.RaisePropertyChanged("PgenCounter"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private object itemField; + + private string[] textField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("DSAKeyValue", typeof(DSAKeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RSAKeyValue", typeof(RSAKeyValueType), Order=0)] + public object Item { + get { + return this.itemField; + } + set { + this.itemField = value; + this.RaisePropertyChanged("Item"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class KeyInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private object[] itemsField; + + private ItemsChoiceType2[] itemsElementNameField; + + private string[] textField; + + private string idField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyName", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("KeyValue", typeof(KeyValueType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("MgmtData", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("PGPData", typeof(PGPDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("RetrievalMethod", typeof(RetrievalMethodType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("SPKIData", typeof(SPKIDataType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("X509Data", typeof(X509DataType), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType2[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public string[] Text { + get { + return this.textField; + } + set { + this.textField = value; + this.RaisePropertyChanged("Text"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", IncludeInSchema=false)] + public enum ItemsChoiceType2 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("##any:")] + Item, + + /// + KeyName, + + /// + KeyValue, + + /// + MgmtData, + + /// + PGPData, + + /// + RetrievalMethod, + + /// + SPKIData, + + /// + X509Data, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureValueType : object, System.ComponentModel.INotifyPropertyChanged { + + private string idField; + + private byte[] valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute(DataType="base64Binary")] + public byte[] Value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("Value"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class DigestMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class ReferenceType : object, System.ComponentModel.INotifyPropertyChanged { + + private TransformType[] transformsField; + + private DigestMethodType digestMethodField; + + private byte[] digestValueField; + + private string idField; + + private string uRIField; + + private string typeField; + + /// + [System.Xml.Serialization.XmlArrayAttribute(Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("Transform", IsNullable=false)] + public TransformType[] Transforms { + get { + return this.transformsField; + } + set { + this.transformsField = value; + this.RaisePropertyChanged("Transforms"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public DigestMethodType DigestMethod { + get { + return this.digestMethodField; + } + set { + this.digestMethodField = value; + this.RaisePropertyChanged("DigestMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=2)] + public byte[] DigestValue { + get { + return this.digestValueField; + } + set { + this.digestValueField = value; + this.RaisePropertyChanged("DigestValue"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string URI { + get { + return this.uRIField; + } + set { + this.uRIField = value; + this.RaisePropertyChanged("URI"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Type { + get { + return this.typeField; + } + set { + this.typeField = value; + this.RaisePropertyChanged("Type"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private string hMACOutputLengthField; + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string HMACOutputLength { + get { + return this.hMACOutputLengthField; + } + set { + this.hMACOutputLengthField = value; + this.RaisePropertyChanged("HMACOutputLength"); + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class CanonicalizationMethodType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlNode[] anyField; + + private string algorithmField; + + /// + [System.Xml.Serialization.XmlTextAttribute()] + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlNode[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] + public string Algorithm { + get { + return this.algorithmField; + } + set { + this.algorithmField = value; + this.RaisePropertyChanged("Algorithm"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignedInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private CanonicalizationMethodType canonicalizationMethodField; + + private SignatureMethodType signatureMethodField; + + private ReferenceType[] referenceField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public CanonicalizationMethodType CanonicalizationMethod { + get { + return this.canonicalizationMethodField; + } + set { + this.canonicalizationMethodField = value; + this.RaisePropertyChanged("CanonicalizationMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureMethodType SignatureMethod { + get { + return this.signatureMethodField; + } + set { + this.signatureMethodField = value; + this.RaisePropertyChanged("SignatureMethod"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Reference", Order=2)] + public ReferenceType[] Reference { + get { + return this.referenceField; + } + set { + this.referenceField = value; + this.RaisePropertyChanged("Reference"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#")] + public partial class SignatureType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignedInfoType signedInfoField; + + private SignatureValueType signatureValueField; + + private KeyInfoType keyInfoField; + + private ObjectType[] objectField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public SignedInfoType SignedInfo { + get { + return this.signedInfoField; + } + set { + this.signedInfoField = value; + this.RaisePropertyChanged("SignedInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public SignatureValueType SignatureValue { + get { + return this.signatureValueField; + } + set { + this.signatureValueField = value; + this.RaisePropertyChanged("SignatureValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public KeyInfoType KeyInfo { + get { + return this.keyInfoField; + } + set { + this.keyInfoField = value; + this.RaisePropertyChanged("KeyInfo"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Object", Order=3)] + public ObjectType[] Object { + get { + return this.objectField; + } + set { + this.objectField = value; + this.RaisePropertyChanged("Object"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(BaseAsyncResponseType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseType : object, System.ComponentModel.INotifyPropertyChanged { + + private SignatureType signatureField; + + private string idField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.w3.org/2000/09/xmldsig#", Order=0)] + public SignatureType Signature { + get { + return this.signatureField; + } + set { + this.signatureField = value; + this.RaisePropertyChanged("Signature"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("Id"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class BaseAsyncResponseType : BaseType { + + private sbyte requestStateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public sbyte RequestState { + get { + return this.requestStateField; + } + set { + this.requestStateField = value; + this.RaisePropertyChanged("RequestState"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common-service-" + + "async/", ConfigurationName="Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync")] + public interface RegOrgPortsTypeAsync { + + // CODEGEN: Generating message contract since the operation getState is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:getState", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse getState(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:getState", ReplyAction="*")] + System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 request); + + // CODEGEN: Generating message contract since the operation exportOrgRegistry is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOrgRegistry", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:exportOrgRegistry", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse exportOrgRegistry(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportOrgRegistry", ReplyAction="*")] + System.Threading.Tasks.Task exportOrgRegistryAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 request); + + // CODEGEN: Generating message contract since the operation exportDataProvider is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDataProvider", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:exportDataProvider", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse exportDataProvider(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDataProvider", ReplyAction="*")] + System.Threading.Tasks.Task exportDataProviderAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 request); + + // CODEGEN: Generating message contract since the operation exportDelegatedAccess is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDelegatedAccess", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:exportDelegatedAccess", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse exportDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportDelegatedAccess", ReplyAction="*")] + System.Threading.Tasks.Task exportDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 request); + + // CODEGEN: Generating message contract since the operation exportObjectsDelegatedAccess is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportObjectsDelegatedAccess", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:exportObjectsDelegatedAccess", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse exportObjectsDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportObjectsDelegatedAccess", ReplyAction="*")] + System.Threading.Tasks.Task exportObjectsDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 request); + + // CODEGEN: Generating message contract since the operation exportTerritoryDelegatedAccess is neither RPC nor document wrapped. + [System.ServiceModel.OperationContractAttribute(Action="urn:exportTerritoryDelegatedAccess", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.Fault), Action="urn:exportTerritoryDelegatedAccess", Name="Fault", Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(SubsidiaryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BaseType))] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse exportTerritoryDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 request); + + [System.ServiceModel.OperationContractAttribute(Action="urn:exportTerritoryDelegatedAccess", ReplyAction="*")] + System.Threading.Tasks.Task exportTerritoryDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISRequestHeader : HeaderType { + + private ISCreator[] iSCreatorField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ISCreator", Order=0)] + public ISCreator[] ISCreator { + get { + return this.iSCreatorField; + } + set { + this.iSCreatorField = value; + this.RaisePropertyChanged("ISCreator"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ISCreator : object, System.ComponentModel.INotifyPropertyChanged { + + private string iSNameField; + + private string iSOperatorNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string ISName { + get { + return this.iSNameField; + } + set { + this.iSNameField = value; + this.RaisePropertyChanged("ISName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string ISOperatorName { + get { + return this.iSOperatorNameField; + } + set { + this.iSOperatorNameField = value; + this.RaisePropertyChanged("ISOperatorName"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class HeaderType : object, System.ComponentModel.INotifyPropertyChanged { + + private System.DateTime dateField; + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime Date { + get { + return this.dateField; + } + set { + this.dateField = value; + this.RaisePropertyChanged("Date"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class getStateRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class ResultHeader : HeaderType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class getStateResult : BaseAsyncResponseType { + + private object[] itemsField; + + private bool isNextPageField; + + private bool isNextPageFieldSpecified; + + private string versionField; + + public getStateResult() { + this.isNextPageField = true; + this.versionField = "10.0.2.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ErrorMessage", typeof(ErrorMessageType), Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("ImportResult", typeof(CommonResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportDataProviderResult", typeof(exportDataProviderResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportDelegatedAccessResult", typeof(exportDelegatedAccessType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportObjectsDelegatedAccessResult", typeof(ObjectsDelegatedAccessRightType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportOrgRegistryResult", typeof(exportOrgRegistryResultType), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("exportTerritoryDelegatedAccess", typeof(TerritoryDelegatedAccessRightType), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool IsNextPage { + get { + return this.isNextPageField; + } + set { + this.isNextPageField = value; + this.RaisePropertyChanged("IsNextPage"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsNextPageSpecified { + get { + return this.isNextPageFieldSpecified; + } + set { + this.isNextPageFieldSpecified = value; + this.RaisePropertyChanged("IsNextPageSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest getStateRequest; + + public getStateRequest1() { + } + + public getStateRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest getStateRequest) { + this.ISRequestHeader = ISRequestHeader; + this.getStateRequest = getStateRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class getStateResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult getStateResult; + + public getStateResponse() { + } + + public getStateResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult getStateResult) { + this.ResultHeader = ResultHeader; + this.getStateResult = getStateResult; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryRequest : BaseType { + + private exportOrgRegistryRequestSearchCriteria[] searchCriteriaField; + + private System.DateTime lastEditingDateFromField; + + private bool lastEditingDateFromFieldSpecified; + + private string versionField; + + public exportOrgRegistryRequest() { + this.versionField = "10.0.2.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SearchCriteria", Order=0)] + public exportOrgRegistryRequestSearchCriteria[] SearchCriteria { + get { + return this.searchCriteriaField; + } + set { + this.searchCriteriaField = value; + this.RaisePropertyChanged("SearchCriteria"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=1)] + public System.DateTime lastEditingDateFrom { + get { + return this.lastEditingDateFromField; + } + set { + this.lastEditingDateFromField = value; + this.RaisePropertyChanged("lastEditingDateFrom"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool lastEditingDateFromSpecified { + get { + return this.lastEditingDateFromFieldSpecified; + } + set { + this.lastEditingDateFromFieldSpecified = value; + this.RaisePropertyChanged("lastEditingDateFromSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportOrgRegistryRequestSearchCriteria : object, System.ComponentModel.INotifyPropertyChanged { + + private string[] itemsField; + + private ItemsChoiceType3[] itemsElementNameField; + + private bool isRegisteredField; + + private bool isRegisteredFieldSpecified; + + public exportOrgRegistryRequestSearchCriteria() { + this.isRegisteredField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("KPP", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("NZA", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("OGRN", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("OGRNIP", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgRootEntityGUID", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgVersionGUID", typeof(string), Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("orgPPAGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] + public string[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ItemsElementName", Order=1)] + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemsChoiceType3[] ItemsElementName { + get { + return this.itemsElementNameField; + } + set { + this.itemsElementNameField = value; + this.RaisePropertyChanged("ItemsElementName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool isRegistered { + get { + return this.isRegisteredField; + } + set { + this.isRegisteredField = value; + this.RaisePropertyChanged("isRegistered"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool isRegisteredSpecified { + get { + return this.isRegisteredFieldSpecified; + } + set { + this.isRegisteredFieldSpecified = value; + this.RaisePropertyChanged("isRegisteredSpecified"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", IncludeInSchema=false)] + public enum ItemsChoiceType3 { + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-base/:KPP")] + KPP, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-base/:NZA")] + NZA, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-base/:OGRN")] + OGRN, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-base/:OGRNIP")] + OGRNIP, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/:orgRootEn" + + "tityGUID")] + orgRootEntityGUID, + + /// + [System.Xml.Serialization.XmlEnumAttribute("http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/:orgVersio" + + "nGUID")] + orgVersionGUID, + + /// + orgPPAGUID, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequest : object, System.ComponentModel.INotifyPropertyChanged { + + private AckRequestAck ackField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public AckRequestAck Ack { + get { + return this.ackField; + } + set { + this.ackField = value; + this.RaisePropertyChanged("Ack"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public partial class AckRequestAck : object, System.ComponentModel.INotifyPropertyChanged { + + private string messageGUIDField; + + private string requesterMessageGUIDField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string MessageGUID { + get { + return this.messageGUIDField; + } + set { + this.messageGUIDField = value; + this.RaisePropertyChanged("MessageGUID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string RequesterMessageGUID { + get { + return this.requesterMessageGUIDField; + } + set { + this.requesterMessageGUIDField = value; + this.RaisePropertyChanged("RequesterMessageGUID"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOrgRegistryRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest exportOrgRegistryRequest; + + public exportOrgRegistryRequest1() { + } + + public exportOrgRegistryRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest exportOrgRegistryRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportOrgRegistryRequest = exportOrgRegistryRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportOrgRegistryResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest; + + public exportOrgRegistryResponse() { + } + + public exportOrgRegistryResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportDataProviderRequest : BaseType { + + private bool isActualField; + + private bool isActualFieldSpecified; + + private string versionField; + + public exportDataProviderRequest() { + this.isActualField = true; + this.versionField = "10.0.2.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool IsActual { + get { + return this.isActualField; + } + set { + this.isActualField = value; + this.RaisePropertyChanged("IsActual"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IsActualSpecified { + get { + return this.isActualFieldSpecified; + } + set { + this.isActualFieldSpecified = value; + this.RaisePropertyChanged("IsActualSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDataProviderRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest exportDataProviderRequest; + + public exportDataProviderRequest1() { + } + + public exportDataProviderRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest exportDataProviderRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportDataProviderRequest = exportDataProviderRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDataProviderResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest; + + public exportDataProviderResponse() { + } + + public exportDataProviderResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportDelegatedAccessRequest : BaseType { + + private object[] itemsField; + + private string versionField; + + public exportDelegatedAccessRequest() { + this.versionField = "11.2.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccessRequestGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Page", typeof(int), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Status", typeof(AccessRequestStatus), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDelegatedAccessRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest exportDelegatedAccessRequest; + + public exportDelegatedAccessRequest1() { + } + + public exportDelegatedAccessRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest exportDelegatedAccessRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportDelegatedAccessRequest = exportDelegatedAccessRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportDelegatedAccessResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest; + + public exportDelegatedAccessResponse() { + } + + public exportDelegatedAccessResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportObjectsDelegatedAccessRequest : BaseType { + + private object[] itemsField; + + private string versionField; + + public exportObjectsDelegatedAccessRequest() { + this.versionField = "11.2.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccessRightGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Page", typeof(int), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportObjectsDelegatedAccessRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest exportObjectsDelegatedAccessRequest; + + public exportObjectsDelegatedAccessRequest1() { + } + + public exportObjectsDelegatedAccessRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest exportObjectsDelegatedAccessRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportObjectsDelegatedAccessRequest = exportObjectsDelegatedAccessRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportObjectsDelegatedAccessResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest; + + public exportObjectsDelegatedAccessResponse() { + } + + public exportObjectsDelegatedAccessResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.9037.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/")] + public partial class exportTerritoryDelegatedAccessRequest : BaseType { + + private object[] itemsField; + + private string versionField; + + public exportTerritoryDelegatedAccessRequest() { + this.versionField = "11.2.0.1"; + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AccessRightGUID", typeof(string), Order=0)] + [System.Xml.Serialization.XmlElementAttribute("Page", typeof(int), Order=0)] + public object[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public string version { + get { + return this.versionField; + } + set { + this.versionField = value; + this.RaisePropertyChanged("version"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportTerritoryDelegatedAccessRequest1 { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest exportTerritoryDelegatedAccessRequest; + + public exportTerritoryDelegatedAccessRequest1() { + } + + public exportTerritoryDelegatedAccessRequest1(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest exportTerritoryDelegatedAccessRequest) { + this.ISRequestHeader = ISRequestHeader; + this.exportTerritoryDelegatedAccessRequest = exportTerritoryDelegatedAccessRequest; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class exportTerritoryDelegatedAccessResponse { + + [System.ServiceModel.MessageHeaderAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/")] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/base/", Order=0)] + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest; + + public exportTerritoryDelegatedAccessResponse() { + } + + public exportTerritoryDelegatedAccessResponse(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader ResultHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + this.ResultHeader = ResultHeader; + this.AckRequest = AckRequest; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface RegOrgPortsTypeAsyncChannel : Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class RegOrgPortsTypeAsyncClient : System.ServiceModel.ClientBase, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync { + + public RegOrgPortsTypeAsyncClient() { + } + + public RegOrgPortsTypeAsyncClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public RegOrgPortsTypeAsyncClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public RegOrgPortsTypeAsyncClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public RegOrgPortsTypeAsyncClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.getState(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getState(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader getState(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest getStateRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResult getStateResult) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.getStateRequest = getStateRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).getState(inValue); + getStateResult = retVal.getStateResult; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.getStateAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 request) { + return base.Channel.getStateAsync(request); + } + + public System.Threading.Tasks.Task getStateAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest getStateRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.getStateRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.getStateRequest = getStateRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).getStateAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportOrgRegistry(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 request) { + return base.Channel.exportOrgRegistry(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader exportOrgRegistry(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest exportOrgRegistryRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportOrgRegistryRequest = exportOrgRegistryRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportOrgRegistry(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportOrgRegistryAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 request) { + return base.Channel.exportOrgRegistryAsync(request); + } + + public System.Threading.Tasks.Task exportOrgRegistryAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest exportOrgRegistryRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportOrgRegistryRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportOrgRegistryRequest = exportOrgRegistryRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportOrgRegistryAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportDataProvider(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 request) { + return base.Channel.exportDataProvider(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader exportDataProvider(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest exportDataProviderRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportDataProviderRequest = exportDataProviderRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportDataProvider(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportDataProviderAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 request) { + return base.Channel.exportDataProviderAsync(request); + } + + public System.Threading.Tasks.Task exportDataProviderAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest exportDataProviderRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDataProviderRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportDataProviderRequest = exportDataProviderRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportDataProviderAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 request) { + return base.Channel.exportDelegatedAccess(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader exportDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest exportDelegatedAccessRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportDelegatedAccessRequest = exportDelegatedAccessRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportDelegatedAccess(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 request) { + return base.Channel.exportDelegatedAccessAsync(request); + } + + public System.Threading.Tasks.Task exportDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest exportDelegatedAccessRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportDelegatedAccessRequest = exportDelegatedAccessRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportDelegatedAccessAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportObjectsDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 request) { + return base.Channel.exportObjectsDelegatedAccess(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader exportObjectsDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest exportObjectsDelegatedAccessRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportObjectsDelegatedAccessRequest = exportObjectsDelegatedAccessRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportObjectsDelegatedAccess(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportObjectsDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 request) { + return base.Channel.exportObjectsDelegatedAccessAsync(request); + } + + public System.Threading.Tasks.Task exportObjectsDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest exportObjectsDelegatedAccessRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportObjectsDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportObjectsDelegatedAccessRequest = exportObjectsDelegatedAccessRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportObjectsDelegatedAccessAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportTerritoryDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 request) { + return base.Channel.exportTerritoryDelegatedAccess(request); + } + + public Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ResultHeader exportTerritoryDelegatedAccess(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest exportTerritoryDelegatedAccessRequest, out Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.AckRequest AckRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportTerritoryDelegatedAccessRequest = exportTerritoryDelegatedAccessRequest; + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessResponse retVal = ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportTerritoryDelegatedAccess(inValue); + AckRequest = retVal.AckRequest; + return retVal.ResultHeader; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync.exportTerritoryDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 request) { + return base.Channel.exportTerritoryDelegatedAccessAsync(request); + } + + public System.Threading.Tasks.Task exportTerritoryDelegatedAccessAsync(Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.ISRequestHeader ISRequestHeader, Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest exportTerritoryDelegatedAccessRequest) { + Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1 inValue = new Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.exportTerritoryDelegatedAccessRequest1(); + inValue.ISRequestHeader = ISRequestHeader; + inValue.exportTerritoryDelegatedAccessRequest = exportTerritoryDelegatedAccessRequest; + return ((Hcs.Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync)(this)).exportTerritoryDelegatedAccessAsync(inValue); + } + } +} diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.svcmap b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.svcmap new file mode 100644 index 0000000..27aff06 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/Reference.svcmap @@ -0,0 +1,38 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration.svcinfo b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration.svcinfo new file mode 100644 index 0000000..49e750a --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration91.svcinfo b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration91.svcinfo new file mode 100644 index 0000000..01fd73d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/configuration91.svcinfo @@ -0,0 +1,310 @@ + + + + + + + RegOrgBindingAsync + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + RegOrgBindingAsync1 + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + https://api.dom.gosuslugi.ru/ext-bus-org-registry-common-service/services/OrgRegistryCommonAsync + + + + + + basicHttpBinding + + + RegOrgBindingAsync + + + Service.Async.OrgRegistryCommon.v14_5_0_1.RegOrgPortsTypeAsync + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + RegOrgAsyncPort + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-base.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-base.xsd new file mode 100644 index 0000000..bbf262e --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-base.xsd @@ -0,0 +1,861 @@ + + + + + + Строка не более 2000 символов. + + + + + + + + Строка не более 1500 символов. + + + + + + + + Строка не более 300 символов. + + + + + + + + Скалярный тип. Строка не более 255 символов. + + + + + + + + + Скалярный тип. Строка не более 100 символов. + + + + + + + + Скалярный тип. Строка не более 250 символов. + + + + + + + + Скалярный тип. Строка не более 500 символов. + + + + + + + + Строка не более 60 символов. + + + + + + + + Текстовое поле 2000 + + + + + + + + Непустая строка + + + + + + + + + Базовый тип бизнес-сообщения с подписью + + + + + + + + + Заголовок запроса + + + + + + + + + Идентификатор поставщика данных + + + + + Идентификатор зарегистрированной организации + + + + + Информация о физическом лице + + + + + + Идентификатор физического лица, зарегистрированного в ГИС ЖКХ + + + + + + СНИЛС + + + + + + + + + + Документ, удостоверяющий личность + + + + + + Вид документа, удостоверяющего личность (НСИ №95) + + + + + + Код записи справочника + + + + + + + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + + + + + + Используется подпись Оператора ИС + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164). Только для запросов размещения информации. + + + + + + + + + + Заголовок запроса + + + + + + + + + + + + + + Заголовок ответа + + + + + + + + + + Базовый тип ответа на запрос создания, редактирования, удаления + + + + + + Транспортный идентификатор, определенный постащиком информации + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + Дата модификации + + + + + Уникальный номер + + + + + + + + + + Базовый тип заголовка + + + + + Дата отправки пакета + + + + + Идентификатор сообщения + + + + + + + Вложение + + + + + + Идентификатор сохраненного вложения + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex. + +Элемент обязателен в запросах импорта + + + + + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex + + + + + + + + + + + + Базовый тип, описывающий вложение с открепленными (detached) подписями. В сервисах ГИС ЖКХ, использущих тип SignedAttachmentType, может быть наложено ограничение на максимальное количесво элементов в блоке Signature (см. контроль INT002039). + + + + + Вложение + + + + + Открепленная (detached) подпись + + + + + + + Элемент Fault (для параметра Fault в операции) + + + + Базовый тип для fault-ошибки + + + + + + + + + + + Описание ошибок контролей или бизнес-процесса + + + + + Базовый тип ошибки контроля или бизнес-процесса + + + + + Код ошибки + + + + + Описание ошибки + + + + + StackTrace в случае возникновения исключения + + + + + + + Версия элемента, начиная с которой поддерживается совместимость + + + + + Возврат квитанции приема сообщения + + + + + + Квитанция + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + Идентификатор сообщения, присвоенный поставщиком + + + + + + + + + + + Запрос статуса отправленного сообщения + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + Запрос списка обработанных сообщений + + + + + + Массив идентификаторов сообщений, присвоенных ГИС ЖКХ + + + + + + + + Ответ на запрос списка обработанных сообщений + + + + + + + + Список идентификаторов сообщений, присвоенный ГИС ЖКХ + + + + + + + + + + Базовый тип ответа на запрос статуса + + + + + + + Статус обработки + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + + Результат выполнения C_UD + + + + + Идентификатор создаваемой/изменяемой сущности + + + + + Транспортный идентификатор + + + + + + Операция выполнена успешно + + + + Уникальный реестровый номер + + + + + Дата модификации + + + + + + Описание ошибки + + + + + + + + + + + + + Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано) + + + + + + + + + + Транспортный идентификатор + + + + + GUID-тип. + + + + + + + + Дата модификации объекта + + + + + Тип, описывающий год + + + + + + + + Тип, описывающий месяц + + + + + + + + + Месяц + + + + + Год + + + + + + + + + + + Определенный месяц определенного года + + + + + + + + + Временной период (обе даты обязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Открытый временной период (даты необязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Тип объема + + + + + + + + + + Ссылка на субъект РФ (ФИАС) + + + + + Код региона (ФИАС) + + + + + + + + + + Полное наименование + + + + + + + + + + + + Ссылка на ОКТМО + + + + + Код по ОКТМО + + + + + + + + + + + Полное наименование + + + + + + + + + + + + + + + + + Код ОКЕИ + + + + + Идентификатор зарегистрированной организации + + + + + Базовый тип документа ОЧ + + + + + Наименование документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата принятия документа органом власти + + + + + Вложение + + + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164) + + + + + + Наименование ИС + + + + + Наименование Оператора ИС + + + + + + + + Код по ОКТМО + + + + + + + + + Код по ОКТМО + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-nsi-base.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-nsi-base.xsd new file mode 100644 index 0000000..cbd302d --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-nsi-base.xsd @@ -0,0 +1,427 @@ + + + + + + + + + + + + Ссылка на справочник + + + + + Код записи справочника + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + Скалярный тип. Наименование справочника. Строка не более 200 символов. + + + + + + + + Скалярный тип. Реестровый номер справочника. Код не более 10 символов. + + + + + + + + Составной тип. Наименование, дата и время последнего изменения справочника. + + + + + Реестровый номер справочника. + + + + + Наименование справочника. + + + + + Дата и время последнего изменения справочника. + + + + + + + Перечень справочников с датой последнего изменения каждого из них. + + + + + Дата и время формирования перечня справочников. + + + + + Наименование, дата и время последнего изменения справочника. + + + + + + + + Данные справочника. + + + + + Реестровый номер справочника. + + + + + Дата и время формирования данных справочника. + + + + + Элемент справочника верхнего уровня. + + + + + + + Составной тип. Элемент справочника. + + + + + Код элемента справочника, уникальный в пределах справочника. + + + + + Глобально-уникальный идентификатор элемента справочника. + + + + + + Дата и время последнего изменения элемента справочника (в том числе создания). + + + + + + Дата начала действия значения + + + + + Дата окончания действия значения + + + + + + + Признак актуальности элемента справочника. + + + + + Наименование и значение поля для элемента справочника. + + + + + Дочерний элемент. + + + + + + + Составной тип. Наименование и значение поля для элемента справочника. Абстрактный тип. + + + + + Наименование поля элемента справочника. + + + + + + + Составной тип. Наименование и значение поля типа "Строка" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Строка". + + + + + + + + + Составной тип. Наименование и значение поля типа "Да/Нет" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Да/Нет". + + + + + + + + + Составной тип. Наименование и значение поля типа "Вещественное" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Вещественное". + + + + + + + + + Составной тип. Наименование и значение поля типа "Дата" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Дата". + + + + + + + + + Составной тип. Наименование и значение поля типа "Целое число" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Целое число". + + + + + + + + + Составной тип. Наименование и значение поля типа "Перечислимый" для элемента справочника. + + + + + + + Запись элемента справочника типа "Перечислимый". + + + + + + Код поля элемента справочника типа "Перечислимый". + + + + + Значение поля элемента справочника типа "Перечислимый". + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на справочник" для элемента справочника. + + + + + + + Ссылка на справочник. + + + + + + Реестровый номер справочника. + + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент внутреннего справочника" для элемента справочника. + + + + + + + Ссылка на элемент внутреннего справочника. + + + + + + Реестровый номер справочника. + + + + + Ссылка на элемент справочника. + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ОКЕИ" для элемента справочника. + + + + + + + Код единицы измерения по справочнику ОКЕИ. + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ФИАС" для элемента справочника. + + + + + + + Ссылка на элемент справочника ФИАС. + + + + + + Идентификационный код позиции в справочнике ФИАС. + + + + + Глобально-уникальный идентификатор адресного объекта в справочнике ФИАС. + + + + + + + + + + + + Составной тип. Наименование и значение поля "Вложение" + + + + + + + Документ + + + + + + + + + Скалярный тип. Наименование поля элемента справочника. Строка не более 200 символов. + + + + + + + + Группа справочника: +NSI - (по умолчанию) общесистемный +NSIRAO - ОЖФ + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-base.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-base.xsd new file mode 100644 index 0000000..c001395 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-base.xsd @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + КПП + + + + + + + + + + + + + ОГРН + + + + + + + + + + ОГРНИП + + + + + + + + + + ОКОПФ + + + + + + + + + + + ОКОГУ + + + + + + + + + + Телефон + + + + + + + + + + + + + + + + + + + + + + + БИК + + + + + + + + БИК + + + + + + ИНН + + + + + НЗА (Номер записи об аккредитации) + + + + + + + + НЗА (Номер записи об аккредитации) + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-base.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-base.xsd new file mode 100644 index 0000000..f53a4c7 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-base.xsd @@ -0,0 +1,265 @@ + + + + + + + + + Полное наименование + + + + + + + + + + + Фирменное наименование + + + + + Юридическое лицо + + + + + + + + + Дата государственной регистрации + + + + + + + + Адрес регистрации + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + + + ОП (Обособленное подразделение) + + + + + Полное наименование + + + + + + + + + + + Сокращенное наименование + + + + + + + + + + + + + + + Адрес регистрации + + + + + + + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + Источник информации + + + + + + + от + + + + + + + + + + + ФПИЮЛ (Филиал или представительство иностранного юридического лица) + + + + + + + + + + Адрес места нахождения(жительства)_текст + + + + + Адрес места нахождения(жительства)_ФИАС + + + + + Дата внесения записи в реестр аккредитованных + + + + + Дата прекращения действия аккредитации + + + + + Страна регистрации иностранного ЮЛ (Справочник ОКСМ, альфа-2) + + + + + + + + + + + + + Индивидуальный предприниматель + + + + + Фамилия + + + + + Имя + + + + + Отчество + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + ОГРН + + + + + Дата государственной регистрации + + + + + + + + Организация в реестре организаций + + + + + + + + + + Версия организации в реестре организаций + + + + + + + + + + Организация и версия организации в реестре организаций + + + + + + + + + Идентификатор корневой сущности организации в реестре организаций + + + + + Идентификатор версии записи в реестре организаций + + + + + Сокращенное наименование + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-service-async.wsdl b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-service-async.wsdl new file mode 100644 index 0000000..9bddff1 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-service-async.wsdl @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + экспорт сведений о поставщиках данных + + + + + + + + + + + Экспорт сведений об объектах из заявок на делегирование прав + + + + + + Экспорт сведений о территориях из заявок на делегирование прав + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-types.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-types.xsd new file mode 100644 index 0000000..b463946 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-organizations-registry-common-types.xsd @@ -0,0 +1,594 @@ + + + + + + + + + + ?????????????? ???????????????? ???? ?????????????? ?????????????????????? + + + + + + + + ???????????????? ???????????? ??????????????????????. + + + + + + + ?????????? ???? ????????????????????. + + + + + + + + + + + + + ?????????????????????????? ???????????????????????????????????? ?????????????????????? + + + + + + ?????????? ?????????? ??????????????????????, ?????????????? ???????????? ?????????????? + + + + + + + + ?????????? ???????????????????? ?????????????????? (????) + + + + + + + + + + + ?????????????????? ???????????????? ???????????????? ???? ?????????????? ?????????????????????? + + + + + + ???????????? ?????????????????????? ?? ?????????????? ?????????????????????? + + + + + + + ???????? ???????????????????? ?????????????????? + + + + + ?????????????? ???????????????????????? ???????????? + + + + + + ?????????????????????? ???????? + + + + + ???????????????????????? ?????????????????????????? + + + + + + + + ???????????? ???????????? + + + + + + + + ???????????????????? ?? ???????????????? ?????????????????????? + + + + + + + + + + + + + + + ???????????????????????????? ?????????????????????????????? + + + + + ?????????? (???????????? ?????? ?????????????????????????????????? ???????????????????????? ???????????????????????? ????????) + + + + + + ????????????: +(P)UBLISHED - ???????????????????????? ?? ?????????? ???? ???????????????????? ?? ???????????? ?????????????????? + + + + + + + + + + + + + + ???????????????????? ?????????????????????? (?????? ???20) + + + + + ???????????????????????????????? ?? ?????? ?????? + + + + + + + ?????????????? ???????????????? ?? ?????????????????????? ???????????????????? ????. ?? ???????????????? ???????????????????? ?????????????????? ???????????????????????? ?????????????????????????? ???? ???? RequestHeader + + + + + + + + ?????????????????? ???????????? ???????????????? ?????????????????????? ???????????? + + + + + + + + + + + ?????????????????? ???????????????? ???????????????? ?? ?????????????????????? ???????????????????? ???? + + + + + ?????????????????????????? ???????????????????? ???????????? + + + + + ???????????? ??????????: 1 - ??????????????, 0- ???????????????? + + + + + + + + ?????????????? ???????????????? ?? ???????????????????????????? ???????????? + + + + + + + + ???? ???????????? + + + + + + ???????????????? ??????????????. ???????????????????????? ???? 100 ??????????????????. + + + + + + + + + + ???????????? ????????????: +Created ??? ?????????????? +Accepted ??? ?????????????? +Declined - ?????????????????? +Revoked - ???????????????? +Annuled - ???????????????????????? +Closed - ?????????????? +Preset??? ?????????????????????????? +Waiting_approval - ???? ?????????????????????? + + + + + + + + + + + + ?????????????????? ???????????????? ???????????????? ?? ???????????????????????????? ???????????? + + + + + ???????????????????? ?? ???????????????? ?????????????????????? (?????? ???????????????????????? ??????????????????????????) + + + + + + + ???????????? ???? ???????????? + + + + + + + ?????????????? ???????????????? ???? ???????????????? ???? ???????????? ???? ?????????????????????????? ???????? + + + + + + + + ???? ?????????????????????????????? ??????????. +?????????? ???????????????? ?? ???????????????????? ???????????????????? exportDelegatedAccess + + + + + ???????????????? ??????????????. ???????????????????????? ???? 1000 ??????????????????. + + + + + + + + + + + + + + + + ?????????????? ???????????????? ?? ?????????????????????? ???? ???????????? ???? ?????????????????????????? ???????? + + + + + + + + ???? ?????????????????????????????? ??????????. +?????????? ???????????????? ?? ???????????????????? ???????????????????? exportDelegatedAccess + + + + + ???????????????? ??????????????. ???????????????????????? ???? 1000 ??????????????????. + + + + + + + + + + + + + + + + ?????????????? ?????????????? ?????????????????????????? ?????????????????? + + + + + + + + + + + + + + + + + ?????????????? ????????, ?????? ?????????????????? ???? ?????? ????????????. ???????????????????? ?????????????????? ?????? ???????? ????????????, ???????????????? Page ???? 1. + + + + + + + + + + + ???????????? ???? ???????????????????????????? ?????????????? + + + + + ???? ???????????? + + + + + ?????? ???????????? + + + + + ???????? ???????????? + + + + + ???????? ???????????? + + + + + ???????? ?????????????????? + + + + + ???????????? ????????????: +Created ??? ?????????????? +Accepted ??? ?????????????? +Declined - ?????????????????? +Revoked - ???????????????? +Annuled - ???????????????????????? +Closed - ?????????????? +Preset??? ?????????????????????????? +Waiting_approval - ???? ?????????????????????? + + + + + ???????? ?????????????? + + + + + ?????????????? ?????????????? + + + + + + + + + + ???????????????????????????? ?????????? ?????????????? + + + + + + ???? ?????????????????????????????? ?????????? + + + + + ?????????????????????????????? ???????????????????????????? + + + + + + ?????? ???????? ???????????????????? + + + + + ???????? = "true", ???? ???? ???????? ???????????????????? ?????????????? ???????????? ????????????????????, ???? ?????????????? ???????????????????????? ????????????. ?????? ?????????????????? ???????????? ?????????? ?????????????????????????????? ???????????????? exportTerritoryDelegatedAccess + + + + + + + + ?????????????? ?????????????? + + + + + + ?????? ???????? ???????????????? + + + + + ???????? = "true", ???? ???? ???????? ???????????????????? ?????????????? ???????????? ????????????????, ???? ?????????????? ???????????????????????? ????????????. ?????? ?????????????????? ???????????? ?????????? ?????????????????????????????? ???????????????? exportObjectsDelegatedAccess + + + + + + + + ?????????????? ???????????????????????? + + + + + ?????? ???? ?????????????????????? 291 - "???????? ????????????????????" + + + + + + + + + + ?????? ???????????? ???? ???????????????????????????? ?????????????? + + + + + ?????? ?????????????????? ???????????????????????????? ?????????????? + + + + + + ?????? ???????????????????? ???????????? + + + + + + + ???????????? ???????????? ???? ???????????????????????????? ?????????????? + + + + + ?????????????? + + + + + ?????????????? + + + + + + ???????????????? + + + + + + + + + + + + + + + + + ???????????????? ???? ???????????????? ???? ???????????? ???? ?????????????????????????? ???????? + + + + + ???? ?????????????????????????????? ??????????. +?????????? ???????????????? ?? ???????????????????? ???????????????????? exportDelegatedAccess + + + + + + ???????????? ?????????????? + + + + + + ???????????????? ???????????????? + + + + + ?????? ?????????????? + + + + + + + + + + + + + ?????? ???????? ???????????????? + + + + + + + + ???????????????? ?? ?????????????????????? ???? ???????????? ???? ?????????????????????????? ???????? + + + + + ???? ?????????????????????????????? ??????????. +?????????? ???????????????? ?? ???????????????????? ???????????????????? exportDelegatedAccess + + + + + + ???????????????? ???????????????????? ???????????????? + + + + + ???????????????? ?????????????????? ????, ???? ?????????????? ?????????????????? ??????????. (???????????? ???? ???????????????????? ???????????????? ????). ?????? 237 + + + + + ?????? ???????? ???????????????????? + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-premises-base.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-premises-base.xsd new file mode 100644 index 0000000..7f6914b --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/hcs-premises-base.xsd @@ -0,0 +1,73 @@ + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + Тип уникального номера дома + + + + + + + + Тип уникального номера помещения + + + + + + + + Тип уникального номера комнаты + + + + + + + + Площадь жилого помещения (7 до запятой, 2 после) + + + + + + + + + + Площадь территории/здания + + + + + + + + + + Площадь помещения + + + + + + + + + + Площадь помещения (для экспорта данных) + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/xmldsig-core-schema.xsd b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/xmldsig-core-schema.xsd new file mode 100644 index 0000000..e036087 --- /dev/null +++ b/Hcs.Client/Connected Services/Service.Async.OrgRegistryCommon.v14_5_0_1/xmldsig-core-schema.xsd @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn18BitCharString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn18BitCharString.cs new file mode 100644 index 0000000..f5e2e65 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn18BitCharString.cs @@ -0,0 +1,21 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn18BitCharString : Asn1CharString + { + public const int BitsPerCharA = 8; + public const int BitsPerCharU = 7; + + protected internal Asn18BitCharString(short typeCode) + : base(typeCode) + { + } + + protected internal Asn18BitCharString(string data, short typeCode) + : base(data, typeCode) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeBuffer.cs new file mode 100644 index 0000000..c4abc3f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeBuffer.cs @@ -0,0 +1,400 @@ +using GostCryptography.Properties; +using System; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerDecodeBuffer : Asn1DecodeBuffer + { + private readonly IntHolder _lenHolder; + private readonly Asn1Tag _tagHolder; + + private Asn1Tag _lastParsedTag; + private MemoryStream _openTypeCaptureBuffer; + private MemoryStream _parserCaptureBuffer; + + public Asn1BerDecodeBuffer(byte[] msgdata) + : base(msgdata) + { + _tagHolder = new Asn1Tag(); + _lenHolder = new IntHolder(); + } + + public Asn1BerDecodeBuffer(Stream inputStream) + : base(inputStream) + { + _tagHolder = new Asn1Tag(); + _lenHolder = new IntHolder(); + } + + public virtual Asn1Tag LastTag + { + get { return _lastParsedTag; } + } + + public static int CalcIndefLen(byte[] data, int offset, int len) + { + Asn1BerDecodeBuffer buffer; + + if ((offset == 0) && (len == data.Length)) + { + buffer = new Asn1BerDecodeBuffer(data); + } + else + { + var destinationArray = new byte[len]; + Array.Copy(data, offset, destinationArray, 0, len); + buffer = new Asn1BerDecodeBuffer(destinationArray); + } + + var tag = new Asn1Tag(); + var num = buffer.DecodeTagAndLength(tag); + + if (num == Asn1Status.IndefiniteLength) + { + var num2 = 1; + num = 0; + + while (num2 > 0) + { + var byteCount = buffer.ByteCount; + var num4 = buffer.DecodeTagAndLength(tag); + num += buffer.ByteCount - byteCount; + + if (num4 > 0) + { + buffer.Skip(num4); + num += num4; + } + else + { + if (num4 == Asn1Status.IndefiniteLength) + { + num2++; + continue; + } + if (tag.IsEoc() && (num4 == 0)) + { + num2--; + } + } + } + } + + return num; + } + + public virtual int DecodeLength() + { + var num3 = 0; + var num2 = Read(); + + if (num2 < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + if (num2 <= 0x80) + { + if (num2 == 0x80) + { + return Asn1Status.IndefiniteLength; + } + + return num2; + } + + var num = num2 & 0x7f; + + if (num > 4) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + while (num > 0) + { + num2 = Read(); + + if (num2 < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + num3 = (num3 * 0x100) + num2; + num--; + } + + return num3; + } + + public virtual byte[] DecodeOpenType() + { + return DecodeOpenType(true); + } + + public virtual byte[] DecodeOpenType(bool saveData) + { + if (saveData) + { + if (_openTypeCaptureBuffer == null) + { + _openTypeCaptureBuffer = new MemoryStream(0x100); + } + else + { + _openTypeCaptureBuffer.Seek(0L, SeekOrigin.Begin); + _openTypeCaptureBuffer.SetLength(0L); + } + + AddCaptureBuffer(_openTypeCaptureBuffer); + } + + DecodeOpenTypeElement(_tagHolder, _lenHolder, saveData); + + if (saveData) + { + var buffer = _openTypeCaptureBuffer.ToArray(); + RemoveCaptureBuffer(_openTypeCaptureBuffer); + return buffer; + } + + return null; + } + + private void DecodeOpenTypeElement(Asn1Tag tag, IntHolder len, bool saveData) + { + var nbytes = DecodeTagAndLength(tag); + var byteCount = base.ByteCount; + + if (nbytes > 0) + { + if (saveData) + { + Capture(nbytes); + } + else + { + Skip(nbytes); + } + } + else if (nbytes == Asn1Status.IndefiniteLength) + { + MovePastEoc(saveData); + } + + len.Value = base.ByteCount - byteCount; + } + + public virtual void DecodeTag(Asn1Tag tag) + { + var num = Read(); + + if (num < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + tag.Class = (short)(num & 0xc0); + tag.Form = (short)(num & 0x20); + tag.IdCode = num & 0x1f; + + if (tag.IdCode == 0x1f) + { + var num2 = 0L; + var num3 = 0; + + do + { + num = Read(); + + if (num < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + num2 = (num2 * 0x80L) + (num & 0x7f); + + if ((num2 > 0x7fffffffL) || (num3++ > 8)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidTagValue); + } + + } + while ((num & 0x80) != 0); + + tag.IdCode = (int)num2; + } + + _lastParsedTag = tag; + } + + public virtual int DecodeTagAndLength(Asn1Tag tag) + { + DecodeTag(tag); + return DecodeLength(); + } + + public virtual bool MatchTag(Asn1Tag tag) + { + return MatchTag(tag.Class, tag.Form, tag.IdCode, null, null); + } + + public virtual bool MatchTag(Asn1Tag tag, Asn1Tag parsedTag, IntHolder parsedLen) + { + return MatchTag(tag.Class, tag.Form, tag.IdCode, parsedTag, parsedLen); + } + + public virtual bool MatchTag(short tagClass, short tagForm, int tagIdCode, Asn1Tag parsedTag, IntHolder parsedLen) + { + Mark(); + + var tag = parsedTag ?? _tagHolder; + var holder = parsedLen ?? _lenHolder; + + holder.Value = DecodeTagAndLength(tag); + + if (!tag.Equals(tagClass, tagForm, tagIdCode)) + { + Reset(); + return false; + } + + return true; + } + + protected void MovePastEoc(bool saveData) + { + var tag = new Asn1Tag(); + var num = 1; + + while (num > 0) + { + var nbytes = DecodeTagAndLength(tag); + + if (nbytes > 0) + { + if (saveData) + { + Capture(nbytes); + } + else + { + Skip(nbytes); + } + } + else if (nbytes == Asn1Status.IndefiniteLength) + { + num++; + } + else if (tag.IsEoc() && (nbytes == 0)) + { + num--; + } + } + } + + public virtual void Parse(IAsn1TaggedEventHandler handler) + { + if (_parserCaptureBuffer == null) + { + RemoveCaptureBuffer(_parserCaptureBuffer); + } + + if (_parserCaptureBuffer == null) + { + _parserCaptureBuffer = new MemoryStream(0x100); + AddCaptureBuffer(_parserCaptureBuffer); + } + else + { + _parserCaptureBuffer.Seek(0L, SeekOrigin.Begin); + _parserCaptureBuffer.SetLength(0L); + } + + ParseElement(handler, _tagHolder, _lenHolder); + } + + private void ParseCons(IAsn1TaggedEventHandler handler, int len) + { + var tag2 = new Asn1Tag(); + var holder = new IntHolder(); + var byteCount = base.ByteCount; + + while (true) + { + ParseElement(handler, tag2, holder); + + if (len == Asn1Status.IndefiniteLength) + { + if (tag2.IsEoc() && (holder.Value == 0)) + { + return; + } + + continue; + } + + if ((base.ByteCount - byteCount) >= len) + { + return; + } + } + } + + private void ParseElement(IAsn1TaggedEventHandler handler, Asn1Tag tag, IntHolder len) + { + _parserCaptureBuffer.Seek(0L, SeekOrigin.Begin); + _parserCaptureBuffer.SetLength(0L); + + len.Value = DecodeTagAndLength(tag); + + if (!tag.IsEoc() || (len.Value != 0)) + { + handler.StartElement(tag, len.Value, _parserCaptureBuffer.ToArray()); + + _parserCaptureBuffer.Seek(0L, SeekOrigin.Begin); + _parserCaptureBuffer.SetLength(0L); + + if ((len.Value > 0) || (len.Value == Asn1Status.IndefiniteLength)) + { + if (tag.Constructed) + { + ParseCons(handler, len.Value); + } + else + { + ParsePrim(handler, len.Value); + } + } + + handler.EndElement(tag); + } + } + + private void ParsePrim(IAsn1TaggedEventHandler handler, int len) + { + var buffer = new byte[len]; + Read(buffer); + handler.Contents(buffer); + } + + public virtual Asn1Tag PeekTag() + { + var parsedTag = new Asn1Tag(); + PeekTag(parsedTag); + return parsedTag; + } + + public virtual void PeekTag(Asn1Tag parsedTag) + { + Mark(); + DecodeTag(parsedTag); + Reset(); + } + + public override int ReadByte() + { + return Read(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeContext.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeContext.cs new file mode 100644 index 0000000..d722fb2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerDecodeContext.cs @@ -0,0 +1,72 @@ +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerDecodeContext + { + private readonly int _decBufByteCount; + private readonly Asn1BerDecodeBuffer _decodeBuffer; + private readonly int _elemLength; + private readonly Asn1Tag _tagHolder; + + public Asn1BerDecodeContext(Asn1BerDecodeBuffer decodeBuffer, int elemLength) + { + _decodeBuffer = decodeBuffer; + _decBufByteCount = decodeBuffer.ByteCount; + _elemLength = elemLength; + _tagHolder = new Asn1Tag(); + } + + public virtual bool Expired() + { + if (_elemLength == Asn1Status.IndefiniteLength) + { + var parsedLen = new IntHolder(); + var flag = _decodeBuffer.MatchTag(0, 0, 0, null, parsedLen); + + if (flag) + { + _decodeBuffer.Reset(); + } + + return flag; + } + + var num = _decodeBuffer.ByteCount - _decBufByteCount; + + return (num >= _elemLength); + } + + public virtual bool MatchElemTag(Asn1Tag tag, IntHolder parsedLen, bool advance) + { + return MatchElemTag(tag.Class, tag.Form, tag.IdCode, parsedLen, advance); + } + + public virtual bool MatchElemTag(short tagClass, short tagForm, int tagIdCode, IntHolder parsedLen, bool advance) + { + if (Expired()) + { + return false; + } + + var flag = _decodeBuffer.MatchTag(tagClass, tagForm, tagIdCode, _tagHolder, parsedLen); + + if ((_elemLength != Asn1Status.IndefiniteLength) && (parsedLen.Value != Asn1Status.IndefiniteLength)) + { + var num = _decodeBuffer.ByteCount - _decBufByteCount; + + if ((parsedLen.Value < 0) || (parsedLen.Value > (_elemLength - num))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + } + + if (flag && !advance) + { + _decodeBuffer.Reset(); + } + + return flag; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerEncodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerEncodeBuffer.cs new file mode 100644 index 0000000..7c30475 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerEncodeBuffer.cs @@ -0,0 +1,305 @@ +using System; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerEncodeBuffer : Asn1EncodeBuffer + { + public Asn1BerEncodeBuffer() + { + ByteIndex = SizeIncrement - 1; + } + + public Asn1BerEncodeBuffer(int sizeIncrement) + : base(sizeIncrement) + { + ByteIndex = SizeIncrement - 1; + } + + public virtual MemoryStream ByteArrayInputStream + { + get + { + var index = ByteIndex + 1; + return new MemoryStream(Data, index, Data.Length - index); + } + } + + public override byte[] MsgCopy + { + get + { + var sourceIndex = ByteIndex + 1; + var length = Data.Length - sourceIndex; + var destinationArray = new byte[length]; + + Array.Copy(Data, sourceIndex, destinationArray, 0, length); + + return destinationArray; + } + } + + public override int MsgLength + { + get + { + var num = ByteIndex + 1; + return (Data.Length - num); + } + } + + public virtual void BinDump() + { + BinDump(null); + } + + public override void BinDump(StreamWriter outs, string varName) + { + var buffer = new Asn1BerDecodeBuffer(ByteArrayInputStream); + + try + { + buffer.Parse(new Asn1BerMessageDumpHandler(outs)); + } + catch (Exception exception) + { + Console.Out.WriteLine(exception.Message); + Console.Error.Write(exception.StackTrace); + Console.Error.Flush(); + } + } + + protected internal override void CheckSize(int bytesRequired) + { + if (bytesRequired > (ByteIndex + 1)) + { + var num = ((bytesRequired - 1) / SizeIncrement) + 1; + var num2 = num * SizeIncrement; + var destinationArray = new byte[Data.Length + num2]; + var destinationIndex = (ByteIndex + num2) + 1; + var length = Data.Length - (ByteIndex + 1); + + Array.Copy(Data, ByteIndex + 1, destinationArray, destinationIndex, length); + + Data = destinationArray; + ByteIndex = destinationIndex - 1; + } + } + + public override void Copy(byte data) + { + if (ByteIndex < 0) + { + CheckSize(1); + } + + Data[ByteIndex--] = data; + } + + public override void Copy(byte[] data) + { + CheckSize(data.Length); + ByteIndex -= data.Length; + + Array.Copy(data, 0, Data, ByteIndex + 1, data.Length); + } + + public virtual void Copy(string data) + { + var length = data.Length; + CheckSize(length); + ByteIndex -= length; + + for (var i = 0; i < length; ++i) + { + Data[(ByteIndex + i) + 1] = (byte)data[i]; + } + } + + public virtual void Copy(byte[] data, int startOffset, int length) + { + CheckSize(length); + ByteIndex -= length; + + Array.Copy(data, startOffset, Data, ByteIndex + 1, length); + } + + public virtual int EncodeIdentifier(int ident) + { + var flag = true; + var num = 0; + var num2 = ident; + + do + { + if (ByteIndex < 0) + { + CheckSize(1); + } + + Data[ByteIndex] = (byte)(num2 % 0x80); + + if (!flag) + { + Data[ByteIndex] = (byte)(Data[ByteIndex] | 0x80); + } + else + { + flag = false; + } + + ByteIndex--; + num2 /= 0x80; + num++; + + } + while (num2 > 0); + + return num; + } + + public virtual int EncodeIntValue(long ivalue) + { + long num2; + long num = ivalue; + + var num3 = 0; + + do + { + num2 = num % 0x100L; + num /= 0x100L; + + if ((num < 0L) && (num2 != 0L)) + { + num -= 1L; + } + + Copy((byte)num2); + + num3++; + } + while ((num != 0L) && (num != -1L)); + + if ((ivalue > 0L) && ((num2 & 0x80L) == 0x80L)) + { + Copy(0); + num3++; + return num3; + } + + if ((ivalue < 0L) && ((num2 & 0x80L) == 0L)) + { + Copy(0xff); + num3++; + } + + return num3; + } + + public virtual int EncodeLength(int len) + { + var num = 0; + + bool flag; + + if (len >= 0) + { + flag = len > 0x7f; + + var num2 = len; + + do + { + if (ByteIndex < 0) + { + CheckSize(1); + } + + Data[ByteIndex--] = (byte)(num2 % 0x100); + num++; + num2 /= 0x100; + } + while (num2 > 0); + } + else + { + flag = len == Asn1Status.IndefiniteLength; + } + + if (flag) + { + if (ByteIndex < 0) + { + CheckSize(1); + } + + Data[ByteIndex--] = (byte)(num | 0x80); + num++; + } + + return num; + } + + public virtual int EncodeTag(Asn1Tag tag) + { + var num = (byte)(((byte)tag.Class) | ((byte)tag.Form)); + var num2 = 0; + + if (tag.IdCode < 0x1f) + { + Copy((byte)(num | tag.IdCode)); + num2++; + return num2; + } + + num2 += EncodeIdentifier(tag.IdCode); + Copy((byte)(num | 0x1f)); + num2++; + + return num2; + } + + public virtual int EncodeTagAndLength(Asn1Tag tag, int len) + { + return (EncodeLength(len) + EncodeTag(tag)); + } + + public virtual int EncodeTagAndLength(short tagClass, short tagForm, int tagIdCode, int len) + { + var tag = new Asn1Tag(tagClass, tagForm, tagIdCode); + return EncodeTagAndLength(tag, len); + } + + public override Stream GetInputStream() + { + return ByteArrayInputStream; + } + + public override void Reset() + { + ByteIndex = Data.Length - 1; + } + + public override string ToString() + { + var num = ByteIndex + 1; + var num2 = Data.Length - num; + var str = new StringBuilder("").ToString(); + + for (var i = 0; i < num2; ++i) + { + str = str + Asn1Util.ToHexString(Data[i + num]); + } + + return str; + } + + public override void Write(Stream outs) + { + var offset = ByteIndex + 1; + outs.Write(Data, offset, Data.Length - offset); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerInputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerInputStream.cs new file mode 100644 index 0000000..ea16aa9 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerInputStream.cs @@ -0,0 +1,41 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerInputStream : Asn1BerDecodeBuffer, IAsn1InputStream + { + public Asn1BerInputStream(Stream inputStream) + : base(inputStream) + { + } + + public virtual int Available() + { + var inputStream = GetInputStream(); + + if (inputStream != null) + { + var num = inputStream.Length - inputStream.Position; + return (int)num; + } + + return 0; + } + + public virtual void Close() + { + var inputStream = GetInputStream(); + + if (inputStream != null) + { + inputStream.Close(); + } + } + + public virtual bool MarkSupported() + { + var inputStream = GetInputStream(); + return ((inputStream != null) && inputStream.CanSeek); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerMessageDumpHandler.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerMessageDumpHandler.cs new file mode 100644 index 0000000..fd37fb7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerMessageDumpHandler.cs @@ -0,0 +1,135 @@ +using System; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerMessageDumpHandler : IAsn1TaggedEventHandler + { + private const int MaxBytesPerLine = 12; + + private int _offset; + private readonly StreamWriter _printStream; + + public Asn1BerMessageDumpHandler() + { + _printStream = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true }; + _offset = 0; + } + + public Asn1BerMessageDumpHandler(StreamWriter outs) + { + _printStream = outs; + _offset = 0; + } + + public virtual void Contents(byte[] data) + { + if (data.Length != 0) + { + PrintOffset(); + + var flag = true; + var builder = new StringBuilder(100); + var builder2 = new StringBuilder(100); + + for (var i = 0; i < data.Length; ++i) + { + builder.Append(Asn1Util.ToHexString(data[i])); + builder.Append(' '); + + int num2 = data[i]; + + if ((num2 >= 0x20) && (num2 <= 0x7f)) + { + builder2.Append((char)num2); + } + else + { + builder2.Append('.'); + } + + if (((i + 1) % MaxBytesPerLine) == 0) + { + if (!flag) + { + _printStream.Write(" : "); + } + else + { + flag = false; + } + + _printStream.WriteLine(builder + ": " + builder2); + + builder.Length = 0; + builder2.Length = 0; + } + } + + if (builder.Length > 0) + { + while (builder.Length < 0x24) + { + builder.Append(' '); + } + + if (!flag) + { + _printStream.Write(" : "); + } + + _printStream.WriteLine(builder + ": " + builder2); + } + + _offset += data.Length; + } + } + + public virtual void EndElement(Asn1Tag tag) + { + } + + public virtual void StartElement(Asn1Tag tag, int len, byte[] tagLenBytes) + { + PrintOffset(); + + new StringBuilder(40); // WTF? + + var index = 0; + + while (index < tagLenBytes.Length) + { + _printStream.Write(Asn1Util.ToHexString(tagLenBytes[index])); + _printStream.Write(' '); + index++; + } + + while (index < MaxBytesPerLine) + { + _printStream.Write(" "); + index++; + } + + _printStream.Write(": "); + _printStream.Write(tag.Constructed ? "C " : "P "); + _printStream.Write(tag + " "); + _printStream.WriteLine(Convert.ToString(len)); + _offset += tagLenBytes.Length; + } + + private void PrintOffset() + { + var str = Convert.ToString(_offset); + var num = 4 - str.Length; + + for (var i = 0; i < num; ++i) + { + _printStream.Write('0'); + } + + _printStream.Write(str); + _printStream.Write(" : "); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerOutputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerOutputStream.cs new file mode 100644 index 0000000..97fbd26 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BerOutputStream.cs @@ -0,0 +1,277 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1BerOutputStream : Asn1OutputStream + { + private static readonly byte[] Eoc = new byte[2]; + + public Asn1BerOutputStream(Stream outputStream) + : base(new BufferedStream(outputStream)) + { + } + + public Asn1BerOutputStream(Stream outputStream, int bufSize) + : base((bufSize == 0) ? outputStream : new BufferedStream(outputStream, bufSize)) + { + } + + public virtual void Encode(Asn1Type type, bool explicitTagging) + { + type.Encode(this, explicitTagging); + } + + public virtual void EncodeBitString(byte[] data, int numbits, bool explicitTagging, Asn1Tag tag) + { + if (explicitTagging) + { + EncodeTag(tag); + } + + var count = (numbits + 7) / 8; + EncodeLength(count + 1); + + var num2 = numbits % 8; + + if (num2 != 0) + { + num2 = 8 - num2; + data[count - 1] = (byte)(data[count - 1] & ((byte)~((1 << num2) - 1))); + } + + OutputStream.WriteByte((byte)num2); + + if (count > 0) + { + OutputStream.Write(data, 0, count); + } + } + + public virtual void EncodeBmpString(string data, bool explicitTagging, Asn1Tag tag) + { + if (explicitTagging) + { + EncodeTag(tag); + } + + if (data == null) + { + EncodeLength(0); + } + else + { + EncodeLength(data.Length * 2); + + var length = data.Length; + + for (var i = 0; i < length; i++) + { + var num3 = data[i]; + var num2 = num3 / 0x100; + var num = num3 % 0x100; + + OutputStream.WriteByte((byte)num2); + OutputStream.WriteByte((byte)num); + } + } + } + + public virtual void EncodeCharString(string data, bool explicitTagging, Asn1Tag tag) + { + if (explicitTagging) + { + EncodeTag(tag); + } + + if (data == null) + { + EncodeLength(0); + } + else + { + EncodeLength(data.Length); + var buffer = Asn1Util.ToByteArray(data); + OutputStream.Write(buffer, 0, buffer.Length); + } + } + + public virtual void EncodeEoc() + { + OutputStream.Write(Eoc, 0, Eoc.Length); + } + + public virtual void EncodeIdentifier(long ident) + { + var number = 0x7fL; + var identBytesCount = Asn1RunTime.GetIdentBytesCount(ident); + + number = number << (7 * identBytesCount); + + if (identBytesCount > 0) + { + while (identBytesCount > 0) + { + number = Asn1Util.UrShift(number, 7); + identBytesCount--; + + var num3 = Asn1Util.UrShift(ident & number, identBytesCount * 7); + + if (identBytesCount != 0) + { + num3 |= 0x80L; + } + + OutputStream.WriteByte((byte)num3); + } + } + else + { + OutputStream.WriteByte(0); + } + } + + public virtual void EncodeIntValue(long data, bool encodeLen) + { + long num2; + var num = data; + var buffer = new byte[9]; + var len = 0; + var length = buffer.Length; + + do + { + num2 = num % 0x100L; + num /= 0x100L; + + if ((num < 0L) && (num2 != 0L)) + { + num -= 1L; + } + + buffer[--length] = (byte)num2; + len++; + } + while ((num != 0L) && (num != -1L)); + + if ((data > 0L) && ((num2 & 0x80L) == 0x80L)) + { + buffer[--length] = 0; + len++; + } + else if ((data < 0L) && ((num2 & 0x80L) == 0L)) + { + buffer[--length] = 0xff; + len++; + } + + if (encodeLen) + { + EncodeLength(len); + } + + OutputStream.Write(buffer, length, len); + } + + public virtual void EncodeLength(int len) + { + if (len >= 0) + { + var bytesCount = Asn1Util.GetBytesCount(len); + + if (len > 0x7f) + { + OutputStream.WriteByte((byte)(bytesCount | 0x80)); + } + for (var i = (8 * bytesCount) - 8; i >= 0; i -= 8) + { + var num3 = (byte)((len >> i) & 0xff); + OutputStream.WriteByte(num3); + } + } + else if (len == Asn1Status.IndefiniteLength) + { + OutputStream.WriteByte(0x80); + } + } + + public virtual void EncodeOctetString(byte[] data, bool explicitTagging, Asn1Tag tag) + { + if (explicitTagging) + { + EncodeTag(tag); + } + if (data == null) + { + EncodeLength(0); + } + else + { + EncodeLength(data.Length); + OutputStream.Write(data, 0, data.Length); + } + } + + public virtual void EncodeTag(Asn1Tag tag) + { + var num = (byte)(((byte)tag.Class) | ((byte)tag.Form)); + if (tag.IdCode < 0x1f) + { + OutputStream.WriteByte((byte)(num | tag.IdCode)); + } + else + { + OutputStream.WriteByte((byte)(num | 0x1f)); + EncodeIdentifier(tag.IdCode); + } + } + + public virtual void EncodeTag(short tagClass, short tagForm, int tagIdCode) + { + EncodeTag(new Asn1Tag(tagClass, tagForm, tagIdCode)); + } + + public virtual void EncodeTagAndIndefLen(Asn1Tag tag) + { + EncodeTag(tag); + OutputStream.WriteByte(0x80); + } + + public virtual void EncodeTagAndIndefLen(short tagClass, short tagForm, int tagIdCode) + { + EncodeTag(new Asn1Tag(tagClass, tagForm, tagIdCode)); + OutputStream.WriteByte(0x80); + } + + public virtual void EncodeTagAndLength(Asn1Tag tag, int len) + { + EncodeTag(tag); + EncodeLength(len); + } + + public virtual void EncodeUnivString(int[] data, bool explicitTagging, Asn1Tag tag) + { + if (explicitTagging) + { + EncodeTag(tag); + } + if (data == null) + { + EncodeLength(0); + } + else + { + EncodeLength(data.Length * 4); + var length = data.Length; + + for (var i = 0; i < length; ++i) + { + var number = data[i]; + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 0x18) & 0xff)); + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 0x10) & 0xff)); + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 8) & 0xff)); + OutputStream.WriteByte((byte)(number & 0xff)); + } + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BigInteger.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BigInteger.cs new file mode 100644 index 0000000..53cad2c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BigInteger.cs @@ -0,0 +1,136 @@ +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1BigInteger : Asn1Type + { + private const int MaxBigIntLen = 0x186a0; + + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, BigIntegerTypeCode); + public static readonly BigInteger Zero = new BigInteger(); + + private BigInteger _value; + + public Asn1BigInteger() + { + _value = new BigInteger(); + } + + public Asn1BigInteger(BigInteger value) + { + _value = value; + } + + public Asn1BigInteger(string value) + { + _value = new BigInteger(value); + } + + public Asn1BigInteger(string value, int radix) + { + _value = new BigInteger(value, radix); + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var length = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + _value = DecodeValue(buffer, length); + buffer.TypeCode = 2; + } + + public BigInteger DecodeValue(Asn1DecodeBuffer buffer, int length) + { + var ivalue = new byte[length]; + + if (length > MaxBigIntLen) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1TooBigIntegerValue, length); + } + + for (var i = 0; i < length; ++i) + { + ivalue[i] = (byte)buffer.ReadByte(); + } + + var integer = new BigInteger(); + + if (length > 0) + { + integer.SetData(ivalue); + } + + return integer; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = EncodeValue(buffer, _value, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + var buffer = new Asn1BerEncodeBuffer(); + var len = EncodeValue(buffer, _value, true); + + outs.EncodeLength(len); + outs.Write(buffer.MsgCopy); + } + + private static int EncodeValue(Asn1EncodeBuffer buffer, BigInteger ivalue, bool doCopy) + { + var data = ivalue.GetData(); + var length = data.Length; + + for (var i = length - 1; i >= 0; --i) + { + if (doCopy) + { + buffer.Copy(data[i]); + } + } + + return length; + } + + public virtual bool Equals(long value) + { + return _value.Equals(value); + } + + public override bool Equals(object value) + { + var integer = value as Asn1BigInteger; + + if (integer == null) + { + return false; + } + + return _value.Equals(integer._value); + } + + public override int GetHashCode() + { + return _value.GetHashCode(); + } + + public override string ToString() + { + return _value.ToString(10); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BitString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BitString.cs new file mode 100644 index 0000000..8b6e8dd --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BitString.cs @@ -0,0 +1,454 @@ +using GostCryptography.Properties; +using System; +using System.Collections; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1BitString : Asn1Type + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, BitStringTypeCode); + + [NonSerialized] + public byte[] Value; + + [NonSerialized] + public int NumBits; + + public Asn1BitString() + { + NumBits = 0; + Value = null; + } + + public Asn1BitString(bool[] bitValues) + { + AllocBitArray(bitValues.Length); + + var index = 0; + var num4 = 0x80; + var num = 0; + var num2 = 0; + + while (num < bitValues.Length) + { + if (bitValues[num]) + { + num2 |= num4; + } + + num4 = num4 >> 1; + + if (num4 == 0) + { + Value[index++] = (byte)num2; + num4 = 0x80; + num2 = 0; + } + + num++; + } + + if (num4 != 0x80) + { + Value[index] = (byte)num2; + } + } + + public Asn1BitString(BitArray bitArray) + { + AllocBitArray(bitArray.Length); + + var index = 0; + var num4 = 0x80; + var num = 0; + var num2 = 0; + + while (num < bitArray.Length) + { + if (bitArray.Get(num)) + { + num2 |= num4; + } + + num4 = num4 >> 1; + + if (num4 == 0) + { + Value[index++] = (byte)num2; + num4 = 0x80; + num2 = 0; + } + + num++; + } + + if (num4 != 0x80) + { + Value[index] = (byte)num2; + } + } + + public Asn1BitString(string value) + { + var numbits = new IntHolder(); + Value = Asn1Value.ParseString(value, numbits); + + NumBits = numbits.Value; + } + + public Asn1BitString(int numBits, byte[] data) + { + NumBits = numBits; + Value = data; + } + + private void AllocBitArray(int numbits) + { + NumBits = numbits; + + var num = (NumBits + 7) / 8; + + if ((Value == null) || (Value.Length < num)) + { + Value = new byte[num]; + } + } + + public virtual void Clear(int bitIndex) + { + this[bitIndex] = false; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + var lastTag = buffer.LastTag; + + if ((lastTag == null) || !lastTag.Constructed) + { + if (elemLength < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + if (elemLength != 0) + { + var num8 = elemLength - 1; + var num7 = buffer.Read(); + + if (num7 < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + if ((num7 < 0) || (num7 > 7)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfBitString, num7); + } + + if ((num8 == 0) && (num7 != 0)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + NumBits = (num8 * 8) - num7; + Value = new byte[num8]; + buffer.Read(Value); + } + else + { + NumBits = 0; + Value = null; + } + } + else + { + var num3 = 0; + var offset = 0; + var index = -1; + var num6 = 0; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + + while (!context.Expired()) + { + var nbytes = MatchTag(buffer, Tag); + + if (nbytes <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + num3 += nbytes; + + if (offset == 0) + { + AllocBitArray(num3 * 8); + } + else + { + ReallocBitArray(num3 * 8); + } + + index = offset; + buffer.Read(Value, offset, nbytes); + offset = num3; + } + + if (index >= 0) + { + num6 = Value[index]; + + if (((offset - index) - 1) > 0) + { + Array.Copy(Value, index + 1, Value, index, (offset - index) - 1); + } + + num3--; + } + + if ((num6 < 0) || (num6 > 7)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfBitString, num6); + } + + ReallocBitArray((num3 * 8) - num6); + + if (elemLength == Asn1Status.IndefiniteLength) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + buffer.TypeCode = 3; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var length = (NumBits + 7) / 8; + var num2 = NumBits % 8; + + if (num2 != 0) + { + num2 = 8 - num2; + Value[length - 1] = (byte)(Value[length - 1] & ((byte)~((1 << num2) - 1))); + } + + if (length != 0) + { + buffer.Copy(Value, 0, length); + } + + buffer.Copy((byte)num2); + length++; + + if (explicitTagging) + { + length += buffer.EncodeTagAndLength(Tag, length); + } + + return length; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeBitString(Value, NumBits, explicitTagging, Tag); + } + + public override bool Equals(object value) + { + var str = value as Asn1BitString; + + if (str == null) + { + return false; + } + + return Equals(str.NumBits, str.Value); + } + + public virtual bool Equals(int nbits, byte[] value) + { + if (nbits != NumBits) + { + return false; + } + + var num = ((nbits - 1) / 8) + 1; + + for (var i = 0; i < num; ++i) + { + if (value[i] != Value[i]) + { + return false; + } + } + + return true; + } + + public virtual bool Get(int bitno) + { + var index = bitno / 8; + var num2 = 1 << (7 - (bitno % 8)); + + if ((Value != null) && (Value.Length >= index)) + { + int num3 = Value[index]; + return ((num3 & num2) != 0); + } + + return false; + } + + public override int GetHashCode() + { + return (Value != null) ? Value.GetHashCode() : base.GetHashCode(); + } + + private void ReallocBitArray(int numbits) + { + NumBits = numbits; + var num = (NumBits + 7) / 8; + + if (Value.Length != num) + { + var value = Value; + Value = new byte[num]; + + if (value != null) + { + Array.Copy(value, 0, Value, 0, Math.Min(value.Length, num)); + } + } + } + + public virtual void Set(int bitIndex) + { + Set(bitIndex, true); + } + + public virtual void Set(int bitIndex, bool value) + { + var index = bitIndex / 8; + var num2 = 1 << (7 - (bitIndex % 8)); + var num3 = index + 1; + + if (Value == null) + { + Value = new byte[num3]; + } + else if (Value.Length < num3) + { + var destinationArray = new byte[num3]; + Array.Copy(Value, 0, destinationArray, 0, Value.Length); + Value = destinationArray; + } + + int num4 = Value[index]; + num4 = value ? (num4 | num2) : (num4 & ~num2); + Value[index] = (byte)num4; + + if ((bitIndex + 1) > NumBits) + { + NumBits = bitIndex + 1; + } + } + + public virtual bool[] ToBoolArray() + { + var flagArray = new bool[NumBits]; + + var num4 = 0; + var numbits = NumBits; + + foreach (var num3 in Value) + { + var num5 = 0x80; + var num = (numbits < 8) ? numbits : 8; + + for (var j = 0; j < num; ++j) + { + flagArray[num4++] = (num3 & num5) != 0; + num5 = num5 >> 1; + } + + numbits -= 8; + } + + return flagArray; + } + + public virtual string ToHexString() + { + var str = new StringBuilder("").ToString(); + + foreach (var b in Value) + { + str = str + Asn1Util.ToHexString(b); + } + + return str; + } + + public override string ToString() + { + var str = new StringBuilder("").ToString(); + + if (NumBits <= 0x10) + { + if (NumBits != 0) + { + var flagArray = ToBoolArray(); + + foreach (bool b in flagArray) + { + str = str + (b ? "1" : "0"); + } + } + + return str; + } + + var num2 = 4; + var capacity = (NumBits + 3) / 4; + var builder = new StringBuilder(capacity); + + if (Value != null) + { + var num4 = 0; + var index = 0; + + while (num4 < capacity) + { + var num6 = (Value[index] >> num2) & 15; + builder.Append((char)(num6 + ((num6 >= 10) ? 0x57 : 0x30))); + num2 -= 4; + + if (num2 < 0) + { + num2 = 4; + index++; + } + + num4++; + } + } + + return builder.ToString(); + } + + public virtual bool this[int bitIndex] + { + get { return Get(bitIndex); } + set { Set(bitIndex, value); } + } + + public override int Length + { + get { return NumBits; } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BmpString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BmpString.cs new file mode 100644 index 0000000..8fb53c8 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1BmpString.cs @@ -0,0 +1,124 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1BmpString : Asn1CharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, BmpStringTypeCode); + + public Asn1BmpString() + : base(BmpStringTypeCode) + { + } + + public Asn1BmpString(string data) + : base(data, BmpStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + var len = elemLength; + var sb = new StringBuilder(); + + var lastTag = buffer.LastTag; + + if ((lastTag == null) || !lastTag.Constructed) + { + sb.EnsureCapacity(elemLength / 2); + ReadSegment(buffer, sb, len); + } + else + { + var capacity = 0; + var context = new Asn1BerDecodeContext(buffer, elemLength); + + while (!context.Expired()) + { + var num3 = MatchTag(buffer, Asn1OctetString.Tag); + + if (num3 <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + capacity += num3; + sb.EnsureCapacity(capacity); + ReadSegment(buffer, sb, num3); + } + + if (elemLength == Asn1Status.IndefiniteLength) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + Value = sb.ToString(); + buffer.TypeCode = BmpStringTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var length = Value.Length; + + for (var i = length - 1; i >= 0; --i) + { + var num3 = Value[i]; + var num = num3 % 0x100; + var num2 = num3 / 0x100; + + buffer.Copy((byte)num); + buffer.Copy((byte)num2); + } + + length *= 2; + + if (explicitTagging) + { + length += buffer.EncodeTagAndLength(Tag, length); + } + + return length; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeBmpString(Value, explicitTagging, Tag); + } + + private static void ReadSegment(Asn1DecodeBuffer buffer, StringBuilder sb, int len) + { + if ((len % 2) != 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + while (len > 0) + { + var num = buffer.Read(); + + if (num == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + var num2 = num * 0x100; + len--; + num = buffer.Read(); + + if (num == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + num2 += num; + len--; + sb.Append((char)num2); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Boolean.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Boolean.cs new file mode 100644 index 0000000..80a2327 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Boolean.cs @@ -0,0 +1,101 @@ +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Boolean : Asn1Type + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, BooleanTypeCode); + public static readonly Asn1Boolean FalseValue = new Asn1Boolean(false); + public static readonly Asn1Boolean TrueValue = new Asn1Boolean(true); + + [NonSerialized] + public bool Value; + + public Asn1Boolean() + { + Value = false; + } + + public Asn1Boolean(bool value) + { + Value = value; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + if (explicitTagging) + { + MatchTag(buffer, Tag); + } + + var num = buffer.Read(); + + if (num < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + buffer.TypeCode = BooleanTypeCode; + Value = num != 0; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 1; + + buffer.Copy(Value ? byte.MaxValue : ((byte)0)); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeLength(1); + outs.WriteByte(Value ? -1 : 0); + } + + public virtual bool Equals(bool value) + { + return (Value == value); + } + + public override bool Equals(object value) + { + var flag = value as Asn1Boolean; + + if (flag == null) + { + return false; + } + + return (Value == flag.Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + + public override string ToString() + { + if (!Value) + { + return "FALSE"; + } + + return "TRUE"; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerInputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerInputStream.cs new file mode 100644 index 0000000..6daa3f9 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerInputStream.cs @@ -0,0 +1,12 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1CerInputStream : Asn1BerInputStream + { + public Asn1CerInputStream(Stream inputStream) + : base(inputStream) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerOutputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerOutputStream.cs new file mode 100644 index 0000000..ebf585f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CerOutputStream.cs @@ -0,0 +1,236 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1CerOutputStream : Asn1BerOutputStream + { + public Asn1CerOutputStream(Stream outputStream) + : base(outputStream) + { + } + + public Asn1CerOutputStream(Stream outputStream, int bufSize) + : base(outputStream, bufSize) + { + } + + public override void Encode(Asn1Type type, bool explicitTagging) + { + type.Encode(this, explicitTagging); + } + + public override void EncodeBitString(byte[] value, int numbits, bool explicitTagging, Asn1Tag tag) + { + if ((((numbits + 7) / 8) + 1) <= 0x3e8) + { + base.EncodeBitString(value, numbits, explicitTagging, tag); + } + else + { + if (explicitTagging) + { + EncodeTagAndIndefLen(Asn1BitString.Tag.Class, 0x20, Asn1BitString.Tag.IdCode); + } + else + { + OutputStream.WriteByte(0x80); + } + + var num = (numbits + 7) / 8; + var num2 = numbits % 8; + + if (num2 != 0) + { + num2 = 8 - num2; + value[num - 1] = (byte)(value[num - 1] & ((byte)~((1 << num2) - 1))); + } + + for (var i = 0; i < num; i += 0x3e8) + { + var len = num - i; + + if (len > 0x3e8) + { + len = 0x3e8; + EncodeTagAndLength(Asn1BitString.Tag, len); + } + else + { + EncodeTagAndLength(Asn1BitString.Tag, len + 1); + OutputStream.WriteByte((byte)num2); + } + + if (len > 0) + { + OutputStream.Write(value, i, len); + } + } + + EncodeEoc(); + } + } + + public override void EncodeBmpString(string value, bool explicitTagging, Asn1Tag tag) + { + if ((value == null) || (value.Length <= 500)) + { + base.EncodeBmpString(value, explicitTagging, tag); + } + else + { + if (explicitTagging) + { + EncodeTagAndIndefLen(Asn1BmpString.Tag.Class, 0x20, Asn1BmpString.Tag.IdCode); + } + else + { + OutputStream.WriteByte(0x80); + } + + for (var i = 0; i < value.Length; i += 500) + { + var num2 = value.Length - i; + + if (num2 > 500) + { + num2 = 500; + } + + EncodeTagAndLength(Asn1OctetString.Tag, num2 * 2); + + for (var j = 0; j < num2; j++) + { + var num5 = value[j + i]; + var num4 = num5 / 0x100; + + var num3 = num5 % 0x100; + OutputStream.WriteByte((byte)num4); + OutputStream.WriteByte((byte)num3); + } + } + + EncodeEoc(); + } + } + + public override void EncodeCharString(string value, bool explicitTagging, Asn1Tag tag) + { + if ((value == null) || (value.Length <= 0x3e8)) + { + base.EncodeCharString(value, explicitTagging, tag); + } + else + { + var data = Asn1Util.ToByteArray(value); + + if (explicitTagging) + { + EncodeTag(tag.Class, 0x20, tag.IdCode); + } + + EncodeOctetString(data, false, tag); + } + } + + public override void EncodeOctetString(byte[] value, bool explicitTagging, Asn1Tag tag) + { + if ((value == null) || (value.Length <= 0x3e8)) + { + base.EncodeOctetString(value, explicitTagging, tag); + } + else + { + if (explicitTagging) + { + EncodeTagAndIndefLen(Asn1OctetString.Tag.Class, 0x20, Asn1OctetString.Tag.IdCode); + } + else + { + OutputStream.WriteByte(0x80); + } + + for (var i = 0; i < value.Length; i += 0x3e8) + { + var len = value.Length - i; + + if (len > 0x3e8) + { + len = 0x3e8; + } + + EncodeTagAndLength(Asn1OctetString.Tag, len); + Write(value, i, len); + } + + EncodeEoc(); + } + } + + public virtual void EncodeStringTag(int nbytes, Asn1Tag tag) + { + if (nbytes <= 0x3e8) + { + EncodeTag(tag); + } + else + { + EncodeTag(tag.Class, 0x20, tag.IdCode); + } + } + + public virtual void EncodeStringTag(int nbytes, short tagClass, short tagForm, int tagIdCode) + { + if (nbytes <= 0x3e8) + { + EncodeTag(new Asn1Tag(tagClass, tagForm, tagIdCode)); + } + else + { + EncodeTag(tagClass, 0x20, tagIdCode); + } + } + + public override void EncodeUnivString(int[] value, bool explicitTagging, Asn1Tag tag) + { + if ((value == null) || (value.Length <= 250)) + { + base.EncodeUnivString(value, explicitTagging, tag); + } + else + { + if (explicitTagging) + { + EncodeTagAndIndefLen(Asn1UniversalString.Tag.Class, 0x20, Asn1UniversalString.Tag.IdCode); + } + else + { + OutputStream.WriteByte(0x80); + } + + for (var i = 0; i < value.Length; i += 250) + { + var num2 = value.Length - i; + + if (num2 > 250) + { + num2 = 250; + } + + EncodeTagAndLength(Asn1OctetString.Tag, num2 * 4); + + for (int j = 0; j < num2; j++) + { + var number = value[j + i]; + + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 0x18) & 0xff)); + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 0x10) & 0xff)); + OutputStream.WriteByte((byte)(Asn1Util.UrShift(number, 8) & 0xff)); + OutputStream.WriteByte((byte)(number & 0xff)); + } + } + + EncodeEoc(); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharRange.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharRange.cs new file mode 100644 index 0000000..f80bbb3 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharRange.cs @@ -0,0 +1,46 @@ +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1CharRange : Asn1CharSet + { + private readonly int _lower; + private readonly int _upper; + + public Asn1CharRange(int lower, int upper) + : base((upper - lower) + 1) + { + _lower = lower; + _upper = upper; + } + + public override int MaxValue + { + get { return _upper; } + } + + public override int GetCharAtIndex(int index) + { + index += _lower; + + if (index > _upper) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", index); + } + + return index; + } + + public override int GetCharIndex(int charValue) + { + var num = charValue - _lower; + + if (num < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", charValue); + } + + return num; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharSet.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharSet.cs new file mode 100644 index 0000000..43659b3 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharSet.cs @@ -0,0 +1,35 @@ +namespace GostCryptography.Asn1.Ber +{ + public abstract class Asn1CharSet + { + private readonly int _aBitsPerChar; + private readonly int _uBitsPerChar; + + protected internal Asn1CharSet(int nchars) + { + _uBitsPerChar = Asn1Integer.GetBitCount(nchars - 1); + _aBitsPerChar = 1; + + while (_uBitsPerChar > _aBitsPerChar) + { + _aBitsPerChar = _aBitsPerChar << 1; + } + } + + public abstract int MaxValue { get; } + + public abstract int GetCharAtIndex(int index); + + public abstract int GetCharIndex(int charValue); + + public virtual int GetNumBitsPerChar(bool aligned) + { + if (!aligned) + { + return _uBitsPerChar; + } + + return _aBitsPerChar; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharString.cs new file mode 100644 index 0000000..44b319f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1CharString.cs @@ -0,0 +1,153 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1CharString : Asn1Type + { + [NonSerialized] + protected StringBuilder StringBuffer; + + [NonSerialized] + private readonly short _typeCode; + + [NonSerialized] + public string Value; + + protected internal Asn1CharString(short typeCode) + { + Value = new StringBuilder().ToString(); + _typeCode = typeCode; + } + + protected internal Asn1CharString(string data, short typeCode) + { + Value = data; + _typeCode = typeCode; + } + + public override int Length + { + get { return Value.Length; } + } + + protected virtual void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength, Asn1Tag tag) + { + int num2; + var elemLength = explicitTagging ? MatchTag(buffer, tag) : implicitLength; + var num3 = elemLength; + var num4 = 0; + + if (StringBuffer == null) + { + StringBuffer = new StringBuilder(); + } + + var lastTag = buffer.LastTag; + + if ((lastTag == null) || !lastTag.Constructed) + { + if (num3 < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + StringBuffer.Length = num3; + + while (num3 > 0) + { + num2 = buffer.Read(); + + if (num2 == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + StringBuffer[num4++] = (char)num2; + num3--; + } + } + else + { + var capacity = 0; + var context = new Asn1BerDecodeContext(buffer, elemLength); + + while (!context.Expired()) + { + var num5 = MatchTag(buffer, Asn1OctetString.Tag); + + if (num5 <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + capacity += num5; + StringBuffer.EnsureCapacity(capacity); + + while (num5 > 0) + { + num2 = buffer.Read(); + + if (num2 == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + StringBuffer.Append((char)num2); + num5--; + } + } + + if (elemLength == Asn1Status.IndefiniteLength) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + Value = StringBuffer.ToString(); + buffer.TypeCode = (short)tag.IdCode; + } + + protected virtual int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging, Asn1Tag tag) + { + var length = Value.Length; + buffer.Copy(Value); + + if (explicitTagging) + { + length += buffer.EncodeTagAndLength(tag, length); + } + + return length; + } + + public override bool Equals(object value) + { + var str = value as Asn1CharString; + + if (str == null) + { + return false; + } + + return Equals(str.Value); + } + + public bool Equals(string value) + { + return Value.Equals(value); + } + + public override int GetHashCode() + { + return (Value != null) ? Value.GetHashCode() : base.GetHashCode(); + } + + public override string ToString() + { + return Value; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Choice.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Choice.cs new file mode 100644 index 0000000..435e9ef --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Choice.cs @@ -0,0 +1,52 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1Choice : Asn1Type + { + [NonSerialized] + private int _choiceId; + + [NonSerialized] + protected Asn1Type Element; + + public virtual int ChoiceId => _choiceId; + + public abstract string ElemName { get; } + + public virtual Asn1Type GetElement() + { + return Element; + } + + public virtual void SetElement(int choiceId, Asn1Type element) + { + _choiceId = choiceId; + + Element = element; + } + + public override bool Equals(object value) + { + var choice = value as Asn1Choice; + + if (choice == null) + { + return false; + } + + if (_choiceId != choice._choiceId) + { + return false; + } + + return Element.Equals(choice.Element); + } + + public override int GetHashCode() + { + return Element?.GetHashCode() ?? base.GetHashCode(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ChoiceExt.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ChoiceExt.cs new file mode 100644 index 0000000..c2c54f4 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ChoiceExt.cs @@ -0,0 +1,23 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1ChoiceExt : Asn1OpenType + { + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + base.Decode(buffer, false, 0); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return base.Encode(buffer, false); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + base.Encode(outs, false); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DecodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DecodeBuffer.cs new file mode 100644 index 0000000..92f9042 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DecodeBuffer.cs @@ -0,0 +1,325 @@ +using GostCryptography.Properties; +using System; +using System.Collections; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public abstract class Asn1DecodeBuffer : Asn1MessageBuffer + { + private readonly ArrayList _captureBufferList; + private int _byteCount; + private Stream _inputStream; + private long _markedPosition; + private ArrayList _namedEventHandlerList; + private int _savedByteCount; + private short _typeCode; + private int[] _oidBuffer; + + protected Asn1DecodeBuffer(byte[] msgdata) + { + _namedEventHandlerList = new ArrayList(); + _captureBufferList = new ArrayList(5); + + SetInputStream(msgdata, 0, msgdata.Length); + } + + protected Asn1DecodeBuffer(Stream inputStream) + { + _namedEventHandlerList = new ArrayList(); + _captureBufferList = new ArrayList(5); + + _inputStream = inputStream.CanSeek ? inputStream : new BufferedStream(inputStream); + + Init(); + } + + public virtual int ByteCount + { + get { return _byteCount; } + } + + public virtual Asn1DecodeBuffer EventHandlerList + { + set { _namedEventHandlerList = value._namedEventHandlerList; } + } + + public virtual short TypeCode + { + set { _typeCode = value; } + } + + public virtual void AddCaptureBuffer(MemoryStream buffer) + { + _captureBufferList.Add(buffer); + } + + public virtual void AddNamedEventHandler(IAsn1NamedEventHandler handler) + { + _namedEventHandlerList.Add(handler); + } + + public virtual void Capture(int nbytes) + { + for (var i = 0; i < nbytes; i++) + { + var num = _inputStream.ReadByte(); + + if (num == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + foreach (MemoryStream s in _captureBufferList) + { + s.WriteByte((byte)num); + } + + _byteCount++; + } + } + + public virtual long DecodeIntValue(int length, bool signExtend) + { + return Asn1RunTime.DecodeIntValue(this, length, signExtend); + } + + public virtual int[] DecodeOidContents(int llen) + { + var index = 0; + + if (_oidBuffer == null) + { + _oidBuffer = new int[0x80]; + } + + while (llen > 0) + { + int num; + + if (index >= 0x80) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidObjectIdException); + } + + _oidBuffer[index] = 0; + + do + { + num = ReadByte(); + _oidBuffer[index] = (_oidBuffer[index] * 0x80) + (num & 0x7f); + llen--; + } + while ((num & 0x80) != 0); + + if (index == 0) + { + var num3 = _oidBuffer[0]; + + _oidBuffer[0] = ((num3 / 40) >= 2) ? 2 : (num3 / 40); + _oidBuffer[1] = (_oidBuffer[0] == 2) ? (num3 - 80) : (num3 % 40); + + index = 2; + } + else + { + index++; + } + } + + if (llen != 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + var destinationArray = new int[index]; + Array.Copy(_oidBuffer, 0, destinationArray, 0, index); + return destinationArray; + } + + public virtual int[] DecodeRelOidContents(int llen) + { + var index = 0; + + if (_oidBuffer == null) + { + _oidBuffer = new int[0x80]; + } + + while (llen > 0) + { + int num; + + if (index >= 0x80) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidObjectIdException); + } + + _oidBuffer[index] = 0; + + do + { + num = ReadByte(); + _oidBuffer[index] = (_oidBuffer[index] * 0x80) + (num & 0x7f); + llen--; + } + while ((num & 0x80) != 0); + + index++; + } + + if (llen != 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + var destinationArray = new int[index]; + Array.Copy(_oidBuffer, 0, destinationArray, 0, index); + return destinationArray; + } + + public override Stream GetInputStream() + { + return _inputStream; + } + + public virtual void HexDump() + { + HexDump(_inputStream); + } + + protected virtual void Init() + { + _byteCount = 0; + _markedPosition = 0L; + _savedByteCount = 0; + } + + public virtual void InvokeCharacters(string svalue) + { + var enumerator = _namedEventHandlerList.GetEnumerator(); + + while (enumerator.MoveNext()) + { + ((IAsn1NamedEventHandler)enumerator.Current).Characters(svalue, _typeCode); + } + } + + public virtual void InvokeEndElement(string name, int index) + { + var enumerator = _namedEventHandlerList.GetEnumerator(); + + while (enumerator.MoveNext()) + { + ((IAsn1NamedEventHandler)enumerator.Current).EndElement(name, index); + } + } + + public virtual void InvokeStartElement(string name, int index) + { + var enumerator = _namedEventHandlerList.GetEnumerator(); + + while (enumerator.MoveNext()) + { + ((IAsn1NamedEventHandler)enumerator.Current).StartElement(name, index); + } + } + + public virtual void Mark() + { + _savedByteCount = _byteCount; + _markedPosition = _inputStream.Position; + } + + public virtual int Read() + { + var num = _inputStream.ReadByte(); + + if (num == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + foreach (MemoryStream s in _captureBufferList) + { + s.WriteByte((byte)num); + } + + _byteCount++; + + return num; + } + + public virtual void Read(byte[] buffer) + { + Read(buffer, 0, buffer.Length); + } + + public virtual void Read(byte[] buffer, int offset, int nbytes) + { + var count = nbytes; + var num3 = offset; + + while (count > 0) + { + var num = _inputStream.Read(buffer, num3, count); + + if (num <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, ByteCount); + } + + num3 += num; + count -= num; + } + + foreach (MemoryStream s in _captureBufferList) + { + s.Write(buffer, offset, nbytes); + } + + _byteCount += nbytes; + } + + public abstract int ReadByte(); + + public virtual void RemoveCaptureBuffer(MemoryStream buffer) + { + for (var i = 0; i < _captureBufferList.Count; i++) + { + if (buffer == _captureBufferList[i]) + { + _captureBufferList.RemoveAt(i); + return; + } + } + } + + public virtual void Reset() + { + try + { + _inputStream.Position = _markedPosition; + _byteCount = _savedByteCount; + } + catch (Exception) + { + } + } + + public virtual void SetInputStream(byte[] msgdata, int offset, int length) + { + _inputStream = new MemoryStream(msgdata, offset, length); + + Init(); + } + + public virtual long Skip(long nbytes) + { + var inputStream = _inputStream; + var position = inputStream.Position; + + return (inputStream.Seek(nbytes, SeekOrigin.Current) - position); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerDecodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerDecodeBuffer.cs new file mode 100644 index 0000000..ae9d954 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerDecodeBuffer.cs @@ -0,0 +1,17 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1DerDecodeBuffer : Asn1BerDecodeBuffer + { + public Asn1DerDecodeBuffer(byte[] msgdata) + : base(msgdata) + { + } + + public Asn1DerDecodeBuffer(Stream inputStream) + : base(inputStream) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerEncodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerEncodeBuffer.cs new file mode 100644 index 0000000..e164809 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerEncodeBuffer.cs @@ -0,0 +1,16 @@ +namespace GostCryptography.Asn1.Ber +{ + public class Asn1DerEncodeBuffer : Asn1BerEncodeBuffer + { + public Asn1DerEncodeBuffer() + { + ByteIndex = SizeIncrement - 1; + } + + public Asn1DerEncodeBuffer(int sizeIncrement) + : base(sizeIncrement) + { + ByteIndex = SizeIncrement - 1; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerInputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerInputStream.cs new file mode 100644 index 0000000..08f84eb --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DerInputStream.cs @@ -0,0 +1,42 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1DerInputStream : Asn1DerDecodeBuffer, IAsn1InputStream + { + public Asn1DerInputStream(Stream inputStream) + : base(inputStream) + { + } + + public virtual int Available() + { + var inputStream = GetInputStream(); + + if (inputStream != null) + { + var num = inputStream.Length - inputStream.Position; + return (int)num; + } + + return 0; + } + + public virtual void Close() + { + var inputStream = GetInputStream(); + + if (inputStream != null) + { + inputStream.Close(); + } + } + + public virtual bool MarkSupported() + { + var inputStream = GetInputStream(); + + return ((inputStream != null) && inputStream.CanSeek); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DiscreteCharSet.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DiscreteCharSet.cs new file mode 100644 index 0000000..9e12bcd --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1DiscreteCharSet.cs @@ -0,0 +1,58 @@ +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1DiscreteCharSet : Asn1CharSet + { + private readonly int[] _charSet; + + public Asn1DiscreteCharSet(string charSet) + : base(charSet.Length) + { + _charSet = new int[charSet.Length]; + + for (var i = 0; i < _charSet.Length; i++) + { + _charSet[i] = charSet[i]; + } + } + + public Asn1DiscreteCharSet(int[] charSet) + : base(charSet.Length) + { + _charSet = charSet; + } + + public override int MaxValue + { + get { return _charSet[_charSet.Length - 1]; } + } + + public override int GetCharAtIndex(int index) + { + if (index >= _charSet.Length) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", index); + } + + return _charSet[index]; + } + + public override int GetCharIndex(int charValue) + { + var index = 0; + + while ((index < _charSet.Length) && (_charSet[index] != charValue)) + { + index++; + } + + if (index >= _charSet.Length) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", charValue); + } + + return index; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1EncodeBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1EncodeBuffer.cs new file mode 100644 index 0000000..24ac31e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1EncodeBuffer.cs @@ -0,0 +1,84 @@ +using System; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public abstract class Asn1EncodeBuffer : Asn1MessageBuffer + { + public const int DefaultSizeIncrement = 0x400; + + protected byte[] Data; + protected int ByteIndex; + protected int SizeIncrement; + + protected Asn1EncodeBuffer() + { + InitBuffer(DefaultSizeIncrement); + } + + protected Asn1EncodeBuffer(int sizeIncrement) + { + if (sizeIncrement == 0) + { + sizeIncrement = DefaultSizeIncrement; + } + + InitBuffer(sizeIncrement); + } + + public abstract byte[] MsgCopy { get; } + + public abstract int MsgLength { get; } + + public virtual void BinDump(string varName) + { + var outs = new StreamWriter(Console.OpenStandardOutput(), Console.Out.Encoding) + { + AutoFlush = true + }; + + BinDump(outs, varName); + } + + public abstract void BinDump(StreamWriter outs, string varName); + + protected internal virtual void CheckSize(int bytesRequired) + { + if ((ByteIndex + bytesRequired) > Data.Length) + { + var num = ((bytesRequired - 1) / SizeIncrement) + 1; + var num2 = num * SizeIncrement; + var destinationArray = new byte[Data.Length + num2]; + + Array.Copy(Data, 0, destinationArray, 0, ByteIndex + 1); + + Data = destinationArray; + } + } + + public abstract void Copy(byte value); + + public abstract void Copy(byte[] value); + + public virtual void HexDump() + { + HexDump(GetInputStream()); + } + + public virtual void HexDump(StreamWriter outs) + { + HexDump(GetInputStream(), outs); + } + + protected virtual void InitBuffer(int sizeIncrement) + { + SizeIncrement = sizeIncrement; + Data = new byte[SizeIncrement]; + ByteIndex = 0; + } + + public abstract void Reset(); + + public abstract void Write(Stream outs); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Enumerated.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Enumerated.cs new file mode 100644 index 0000000..8fb4eb6 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Enumerated.cs @@ -0,0 +1,80 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1Enumerated : Asn1Type + { + public const int Undefined = -999; + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, EnumeratedTypeCode); + + [NonSerialized] + public int Value; + + public Asn1Enumerated() + { + Value = Undefined; + } + + public Asn1Enumerated(int value) + { + Value = value; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var length = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + Value = (int)Asn1RunTime.DecodeIntValue(buffer, length, true); + buffer.TypeCode = EnumeratedTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = buffer.EncodeIntValue(Value); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeIntValue(Value, true); + } + + public virtual bool Equals(int value) + { + return (Value == value); + } + + public override bool Equals(object value) + { + var enumerated = value as Asn1Enumerated; + + return (enumerated != null && Value == enumerated.Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + + public virtual int ParseValue(string value) + { + return -1; + } + + public override string ToString() + { + return null; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralString.cs new file mode 100644 index 0000000..1cde4f5 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1GeneralString : Asn1VarWidthCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, GeneralStringTypeCode); + + public Asn1GeneralString() + : base(GeneralStringTypeCode) + { + } + + public Asn1GeneralString(string data) + : base(data, GeneralStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralizedTime.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralizedTime.cs new file mode 100644 index 0000000..249dcfb --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GeneralizedTime.cs @@ -0,0 +1,343 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1GeneralizedTime : Asn1Time + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, GeneralTimeTypeCode); + + public Asn1GeneralizedTime() + : base(GeneralTimeTypeCode, false) + { + } + + public Asn1GeneralizedTime(bool useDerRules) + : base(GeneralTimeTypeCode, useDerRules) + { + } + + public Asn1GeneralizedTime(string data) + : base(data, GeneralTimeTypeCode, false) + { + } + + public Asn1GeneralizedTime(string data, bool useDerRules) + : base(data, GeneralTimeTypeCode, useDerRules) + { + } + + public virtual int Century + { + get + { + var yearValue = Year; + + if (yearValue < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValue, yearValue); + } + + return (yearValue / 100); + } + set + { + if ((value < 0) || (value > 0x63)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidCenturyValue, value); + } + + SafeParseString(); + YearValue = (value * 100) + (YearValue % 100); + CompileString(); + } + } + + protected override bool CompileString() + { + int minuteValue; + + if (((YearValue < 0) || (MonthValue <= 0)) || ((DayValue <= 0) || (HourValue < 0))) + { + return false; + } + + Value = ""; + + if (StringBuffer == null) + { + StringBuffer = new StringBuilder(); + } + else + { + StringBuffer.Length = 0; + } + + if ((DerRules || UtcFlag) && ((DiffHourValue != 0) || (DiffMinValue != 0))) + { + var time = GetTime(); + time.AddMinutes(-DiffMinValue); + time.AddHours(-DiffHourValue); + + PutInteger(4, time.Year); + PutInteger(2, time.Month); + PutInteger(2, time.Day); + PutInteger(2, time.Hour); + + minuteValue = time.Minute; + } + else + { + PutInteger(4, YearValue); + PutInteger(2, MonthValue); + PutInteger(2, DayValue); + PutInteger(2, HourValue); + + minuteValue = MinuteValue; + } + + if ((DerRules || (minuteValue > 0)) || ((SecondValue > 0) || (SecFraction.Length > 0))) + { + PutInteger(2, minuteValue); + + if ((DerRules || (SecondValue > 0)) || (SecFraction.Length > 0)) + { + PutInteger(2, SecondValue); + + if (SecFraction.Length > 0) + { + StringBuffer.Append('.'); + StringBuffer.Append(SecFraction); + } + } + } + + if (DerRules || UtcFlag) + { + StringBuffer.Append('Z'); + } + else if ((DiffHourValue != 0) || (DiffMinValue != 0)) + { + StringBuffer.Append((DiffHourValue > 0) ? '+' : '-'); + + if (DiffMinValue != 0) + { + PutInteger(2, Math.Abs(DiffHourValue)); + PutInteger(2, Math.Abs(DiffMinValue)); + } + else + { + PutInteger(2, Math.Abs(DiffHourValue)); + } + } + + Value = StringBuffer.ToString(); + + return true; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + Encode(outs, explicitTagging, Tag); + } + + public override void ParseString(string data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull("data"); + } + + Clear(); + + var off = new IntHolder(0); + + try + { + YearValue = ParseInt(data, off, 4); + MonthValue = ParseInt(data, off, 2); + DayValue = ParseInt(data, off, 2); + + if (YearValue < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValue, YearValue); + } + + if ((MonthValue < 1) || (MonthValue > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMonthValue, MonthValue); + } + + int num = DaysInMonth[MonthValue]; + + if (((MonthValue == 2) && ((YearValue % 4) == 0)) && (((YearValue % 100) != 0) || ((YearValue % 400) == 0))) + { + num++; + } + + if ((DayValue < 1) || (DayValue > num)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDayValue, DayValue); + } + + var num2 = 0; + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1HoursExpected); + } + + HourValue = ParseInt(data, off, 2); + num2++; + + if (char.IsDigit(CharAt(data, off.Value))) + { + MinuteValue = ParseInt(data, off, 2); + num2++; + + if (char.IsDigit(CharAt(data, off.Value))) + { + SecondValue = ParseInt(data, off, 2); + num2++; + } + } + + if ((num2 >= 1) && ((HourValue < 0) || (HourValue > 0x17))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidHourValue, HourValue); + } + + if ((num2 >= 2) && ((MinuteValue < 0) || (MinuteValue > 0x3b))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMinuteValue, MinuteValue); + } + + if ((num2 == 3) && ((SecondValue < 0) || (SecondValue > 0x3b))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidSecondValue, SecondValue); + } + + var ch = CharAt(data, off.Value); + + if (DerRules && (ch == ',')) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDecimalMark); + } + + if ((ch == '.') || (ch == ',')) + { + off.Value++; + + if (num2 != 3) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedSymbol); + } + + var length = 0; + + while (char.IsDigit(CharAt(data, off.Value + length))) + { + length++; + } + + if (length == 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedSymbol); + } + + SecFraction = data.Substring(off.Value, length); + off.Value += length; + } + + if (CharAt(data, off.Value) == 'Z') + { + off.Value++; + UtcFlag = true; + + if (off.Value != data.Length) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedValuesAtEndOfString); + } + } + else + { + if (DerRules) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedZoneOffset); + } + + UtcFlag = false; + + var ch2 = CharAt(data, off.Value); + + switch (ch2) + { + case '-': + case '+': + off.Value++; + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHour); + } + + DiffHourValue = ParseInt(data, off, 2); + + if (char.IsDigit(CharAt(data, off.Value))) + { + DiffMinValue = ParseInt(data, off, 2); + } + + if ((DiffHourValue < 0) || (DiffHourValue > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHourValue, DiffHourValue); + } + + if ((DiffMinValue < 0) || (DiffMinValue > 0x3b)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffMinuteValue, DiffMinValue); + } + + if (ch2 == '-') + { + DiffHourValue = -DiffHourValue; + DiffMinValue = -DiffMinValue; + } + break; + } + } + + Parsed = true; + + if (data != Value) + { + CompileString(); + } + } + catch (IndexOutOfRangeException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDateFormat); + } + catch (FormatException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidNumberFormat); + } + catch (ArgumentException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDateFormat); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GraphicString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GraphicString.cs new file mode 100644 index 0000000..03a6450 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1GraphicString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1GraphicString : Asn1VarWidthCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, GraphicStringTypeCode); + + public Asn1GraphicString() + : base(GraphicStringTypeCode) + { + } + + public Asn1GraphicString(string data) + : base(data, GraphicStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(base.Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Ia5String.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Ia5String.cs new file mode 100644 index 0000000..a017115 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Ia5String.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Ia5String : Asn18BitCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, Ia5StringTypeCode); + + public Asn1Ia5String() + : base(Ia5StringTypeCode) + { + } + + public Asn1Ia5String(string data) + : base(data, Ia5StringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Integer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Integer.cs new file mode 100644 index 0000000..1079db2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Integer.cs @@ -0,0 +1,91 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Integer : Asn1Type + { + public const int SizeOfInt = 4; + public const int SizeOfLong = 8; + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, BigIntegerTypeCode); + + [NonSerialized] + public long Value; + + public Asn1Integer() + { + Value = 0L; + } + + public Asn1Integer(long value) + { + Value = value; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var length = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + Value = Asn1RunTime.DecodeIntValue(buffer, length, true); + buffer.TypeCode = BigIntegerTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = buffer.EncodeIntValue(Value); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeIntValue(Value, true); + } + + public virtual bool Equals(long value) + { + return (Value == value); + } + + public override bool Equals(object value) + { + var integer = value as Asn1Integer; + + if (integer == null) + { + return false; + } + + return (Value == integer.Value); + } + + public virtual int GetBitCount() + { + return Asn1RunTime.GetLongBitCount(Value); + } + + public static int GetBitCount(long ivalue) + { + return Asn1RunTime.GetLongBitCount(ivalue); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + + public override string ToString() + { + return Convert.ToString(Value); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1MessageBuffer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1MessageBuffer.cs new file mode 100644 index 0000000..076f669 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1MessageBuffer.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public abstract class Asn1MessageBuffer + { + public abstract Stream GetInputStream(); + + public static void HexDump(Stream ins) + { + var outs = new StreamWriter(Console.OpenStandardOutput(), Console.Out.Encoding) + { + AutoFlush = true + }; + + HexDump(ins, outs); + } + + public static void HexDump(Stream ins, StreamWriter outs) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Null.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Null.cs new file mode 100644 index 0000000..3c28b23 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Null.cs @@ -0,0 +1,48 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Null : Asn1Type + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, NullTypeCode); + public static readonly Asn1Null NullValue = new Asn1Null(); + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + if (explicitTagging) + { + MatchTag(buffer, Tag); + } + + buffer.TypeCode = NullTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeLength(0); + } + + public override string ToString() + { + return "NULL"; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1NumericString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1NumericString.cs new file mode 100644 index 0000000..9618db6 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1NumericString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1NumericString : Asn18BitCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, NumericStringTypeCode); + + public Asn1NumericString() + : base(NumericStringTypeCode) + { + } + + public Asn1NumericString(string data) + : base(data, NumericStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectDescriptor.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectDescriptor.cs new file mode 100644 index 0000000..9923958 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectDescriptor.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1ObjectDescriptor : Asn1VarWidthCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, ObjectDescriptorTypeCode); + + public Asn1ObjectDescriptor() + : base(ObjectDescriptorTypeCode) + { + } + + public Asn1ObjectDescriptor(string data) + : base(data, ObjectDescriptorTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectIdentifier.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectIdentifier.cs new file mode 100644 index 0000000..1f82b71 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1ObjectIdentifier.cs @@ -0,0 +1,133 @@ +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1ObjectIdentifier : Asn1Type + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, ObjectIdentifierTypeCode); + + [NonSerialized] + protected OidValue OidValue; + + public OidValue Oid => OidValue; + + + public Asn1ObjectIdentifier() + { + OidValue = null; + } + + public Asn1ObjectIdentifier(OidValue oidValue) + { + OidValue = oidValue; + } + + public static Asn1ObjectIdentifier FromString(string value) + { + return string.IsNullOrEmpty(value) ? null : new Asn1ObjectIdentifier(OidValue.FromString(value)); + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var len = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + + if (len <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + OidValue = OidValue.FromArray(buffer.DecodeOidContents(len)); + buffer.TypeCode = ObjectIdentifierTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (((OidValue.Items.Length < 2) || (OidValue.Items[0] > 2)) || ((OidValue.Items[0] != 2) && (OidValue.Items[1] > 0x27))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidObjectIdException); + } + + var len = 0; + + for (var i = OidValue.Items.Length - 1; i >= 1; i--) + { + len += buffer.EncodeIdentifier((i == 1) ? ((OidValue.Items[0] * 40) + OidValue.Items[1]) : OidValue.Items[i]); + } + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (((OidValue.Items.Length < 2) || (OidValue.Items[0] > 2)) || ((OidValue.Items[0] != 2) && (OidValue.Items[1] > 0x27))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidObjectIdException); + } + + var len = 1; + + for (var i = 2; i < OidValue.Items.Length; i++) + { + len += Asn1RunTime.GetIdentBytesCount(OidValue.Items[i]); + } + + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeLength(len); + var ident = (OidValue.Items[0] * 40) + OidValue.Items[1]; + outs.EncodeIdentifier(ident); + + for (var i = 2; i < OidValue.Items.Length; i++) + { + outs.EncodeIdentifier(OidValue.Items[i]); + } + } + + public override bool Equals(object obj) + { + if (this == obj) + { + return true; + } + + if (!(obj is Asn1ObjectIdentifier)) + { + return false; + } + + var other = (Asn1ObjectIdentifier)obj; + + if (OidValue == other.OidValue) + { + return true; + } + + if (OidValue == null || other.OidValue == null) + { + return false; + } + + return OidValue.Equals(other.OidValue); + } + + public override int GetHashCode() + { + return OidValue?.GetHashCode() ?? base.GetHashCode(); + } + + public override string ToString() + { + return OidValue?.ToString() ?? base.ToString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OctetString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OctetString.cs new file mode 100644 index 0000000..9cd0255 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OctetString.cs @@ -0,0 +1,234 @@ +using GostCryptography.Properties; +using System; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1OctetString : Asn1Type, IComparable + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, OctetStringTypeCode); + + [NonSerialized] + public byte[] Value; + + public Asn1OctetString() + { + Value = null; + } + + public Asn1OctetString(byte[] data) + { + Value = data; + } + + public Asn1OctetString(string value) + { + Value = string.IsNullOrEmpty(value) ? new byte[0] : Asn1Value.ParseString(value); + } + + public Asn1OctetString(byte[] data, int offset, int nbytes) + { + Value = new byte[nbytes]; + + if (data != null) + { + Array.Copy(data, offset, Value, 0, nbytes); + } + } + + public override int Length + { + get { return Value.Length; } + } + + public virtual int CompareTo(object octstr) + { + var value = ((Asn1OctetString)octstr).Value; + var num = (Value.Length < value.Length) ? Value.Length : value.Length; + + for (var i = 0; i < num; i++) + { + var num2 = Value[i] & 0xff; + var num3 = value[i] & 0xff; + + if (num2 < num3) + { + return -1; + } + + if (num2 > num3) + { + return 1; + } + } + + if (Value.Length == value.Length) + { + return 0; + } + + if (Value.Length < value.Length) + { + return -1; + } + + return 1; + } + + private void AllocByteArray(int nbytes) + { + if (Value == null) + { + Value = new byte[nbytes]; + } + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + var lastTag = buffer.LastTag; + + if ((lastTag == null) || !lastTag.Constructed) + { + if (elemLength < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + Value = new byte[elemLength]; + + if (elemLength != 0) + { + buffer.Read(Value); + } + } + else + { + var nbytes = 0; + var offset = 0; + var context = new Asn1BerDecodeContext(buffer, elemLength); + + while (!context.Expired()) + { + var num2 = MatchTag(buffer, Tag); + + if (num2 <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + nbytes += num2; + + if (offset == 0) + { + Value = new byte[nbytes]; + } + else + { + ReAllocByteArray(nbytes); + } + + buffer.Read(Value, offset, num2); + offset = nbytes; + } + + if (elemLength == Asn1Status.IndefiniteLength) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + buffer.TypeCode = OctetStringTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (Value == null) + { + Value = new byte[0]; + } + + var length = Value.Length; + + if (length != 0) + { + buffer.Copy(Value); + } + + if (explicitTagging) + { + length += buffer.EncodeTagAndLength(Tag, length); + } + + return length; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeOctetString(Value, explicitTagging, Tag); + } + + public bool Equals(byte[] value) + { + if (value.Length != Value.Length) + { + return false; + } + + for (var i = 0; i < value.Length; i++) + { + if (value[i] != Value[i]) + { + return false; + } + } + + return true; + } + + public override bool Equals(object value) + { + var str = value as Asn1OctetString; + + return (str != null) && Equals(str.Value); + } + + public override int GetHashCode() + { + return (Value != null) ? Value.GetHashCode() : base.GetHashCode(); + } + + private void ReAllocByteArray(int nbytes) + { + var value = Value; + Value = new byte[nbytes]; + + if (value != null) + { + Array.Copy(value, 0, Value, 0, value.Length); + } + } + + public virtual Stream ToInputStream() + { + return new MemoryStream(Value, 0, Value.Length); + } + + public override string ToString() + { + var str = new StringBuilder("").ToString(); + + if (Value != null) + { + foreach (var b in Value) + { + str = str + Asn1Util.ToHexString(b); + } + } + + return str; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenExt.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenExt.cs new file mode 100644 index 0000000..bc901b2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenExt.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1OpenExt : Asn1Type + { + [NonSerialized] + public ArrayList Value = new ArrayList(); + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + DecodeComponent(buffer); + } + + public virtual void DecodeComponent(Asn1BerDecodeBuffer buffer) + { + var type = new Asn1OpenType(); + type.Decode(buffer, false, 0); + Value.Add(type); + } + + public virtual void DecodeEventComponent(Asn1BerDecodeBuffer buffer) + { + buffer.InvokeStartElement("...", -1); + + var type = new Asn1OpenType(); + type.Decode(buffer, false, 0); + + Value.Add(type); + + buffer.InvokeCharacters(type.ToString()); + buffer.InvokeEndElement("...", -1); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var num = 0; + + for (var i = Value.Count - 1; i >= 0; i--) + { + var type = (Asn1OpenType)Value[i]; + num += type.Encode(buffer, false); + } + + return num; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + foreach (Asn1OpenType type in Value) + { + if (type != null) + { + type.Encode(outs, false); + } + } + } + + public override string ToString() + { + if (Value == null) + { + return ""; + } + + var builder = new StringBuilder(); + + for (var i = 0; i < Value.Count; i++) + { + var type = (Asn1OpenType)Value[i]; + + if (i != 0) + { + builder.Append(", "); + } + + builder.Append(type); + } + + return builder.ToString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenType.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenType.cs new file mode 100644 index 0000000..c937781 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OpenType.cs @@ -0,0 +1,102 @@ +using System; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1OpenType : Asn1OctetString + { + private const string EncodedDataMessage = "ENCODED DATA"; + + [NonSerialized] + private readonly Asn1EncodeBuffer _encodeBuffer; + + [NonSerialized] + private readonly int _length; + + [NonSerialized] + private readonly bool _textEncoding; + + public Asn1OpenType() + { + _length = 0; + _textEncoding = false; + } + + public Asn1OpenType(byte[] data) + : base(data) + { + _length = 0; + _textEncoding = false; + } + + public Asn1OpenType(Asn1EncodeBuffer buffer) + { + if (buffer is Asn1BerEncodeBuffer) + { + _length = buffer.MsgLength; + _encodeBuffer = buffer; + } + else + { + Value = buffer.MsgCopy; + } + + _textEncoding = false; + } + + public Asn1OpenType(byte[] data, int offset, int nbytes) + : base(data, offset, nbytes) + { + _length = 0; + _textEncoding = false; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Value = buffer.DecodeOpenType(); + buffer.TypeCode = OpenTypeTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (Value == null) + { + return _length; + } + + return base.Encode(buffer, false); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (Value != null) + { + outs.Write(Value); + } + } + + public override string ToString() + { + if (Value != null) + { + try + { + return (_textEncoding ? Encoding.UTF8.GetString(Value, 0, Value.Length) : base.ToString()); + } + catch (IOException) + { + return null; + } + } + + if (_encodeBuffer != null) + { + return _encodeBuffer.ToString(); + } + + return EncodedDataMessage; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OutputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OutputStream.cs new file mode 100644 index 0000000..de0ca7d --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1OutputStream.cs @@ -0,0 +1,86 @@ +using GostCryptography.Properties; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public abstract class Asn1OutputStream : Stream + { + protected readonly Stream OutputStream; + + public Asn1OutputStream(Stream outputStream) + { + OutputStream = outputStream; + } + + public override bool CanRead + { + get { return false; } + } + + public override bool CanSeek + { + get { return OutputStream.CanSeek; } + } + + public override bool CanWrite + { + get { return OutputStream.CanWrite; } + } + + public override long Length + { + get { return OutputStream.Length; } + } + + public override long Position + { + get { return OutputStream.Position; } + set { OutputStream.Position = value; } + } + + public override void Close() + { + OutputStream.Close(); + } + + public override void Flush() + { + OutputStream.Flush(); + } + + public override int Read(byte[] buffer, int offset, int count) + { + throw ExceptionUtility.NotSupported(Resources.Asn1ReadOutputStreamNotSupported); + } + + public override long Seek(long offset, SeekOrigin origin) + { + return OutputStream.Seek(offset, origin); + } + + public override void SetLength(long value) + { + OutputStream.SetLength(value); + } + + public virtual void Write(byte[] b) + { + OutputStream.Write(b, 0, b.Length); + } + + public override void Write(byte[] b, int off, int len) + { + OutputStream.Write(b, off, len); + } + + public override void WriteByte(byte b) + { + OutputStream.WriteByte(b); + } + + public virtual void WriteByte(int b) + { + OutputStream.WriteByte((byte)b); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1PrintableString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1PrintableString.cs new file mode 100644 index 0000000..e0e7ffd --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1PrintableString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1PrintableString : Asn18BitCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, PrintableStringTypeCode); + + public Asn1PrintableString() + : base(PrintableStringTypeCode) + { + } + + public Asn1PrintableString(string data) + : base(data, PrintableStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Real.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Real.cs new file mode 100644 index 0000000..846bed0 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Real.cs @@ -0,0 +1,370 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Real : Asn1Type + { + private const int MinusInfinity = 0x41; + private const int PlusInfinity = 0x40; + private const int RealBase2 = 0; + private const int RealBase8 = 0x10; + private const int RealBase16 = 0x20; + private const int RealBaseMask = 0x30; + private const int RealBinary = 0x80; + private const int RealExplen1 = 0; + private const int RealExplen2 = 1; + private const int RealExplen3 = 2; + private const int RealExplenLong = 3; + private const int RealExplenMask = 3; + private const int RealFactorMask = 12; + private const int RealIso6093Mask = 0x3f; + + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, RealTypeCode); + + [NonSerialized] + public double Value; + + public Asn1Real() + { + Value = 0.0; + } + + public Asn1Real(double value) + { + Value = value; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var length = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + + if (length == 0) + { + Value = 0.0; + } + else + { + var num2 = buffer.ReadByte(); + + if (length == 1) + { + switch (num2) + { + case PlusInfinity: + Value = double.PositiveInfinity; + return; + + case MinusInfinity: + Value = double.NegativeInfinity; + return; + } + + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + length--; + + if ((num2 & RealBinary) == 0) + { + var num8 = length; + var num9 = 0; + + var builder = new StringBuilder { Length = num8 }; + + while (num8 > 0) + { + var num7 = buffer.Read(); + + if (num7 == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + builder[num9++] = (char)num7; + num8--; + } + + var num10 = num2 & RealIso6093Mask; + var num11 = 0; + + for (var i = 0; i < builder.Length; i++) + { + var ch = builder[i]; + + if ((num10 >= 2) && (ch == ',')) + { + builder[i] = '.'; + num11++; + } + else if (((num10 >= 1) && (((ch >= '0') && (ch <= '9')) || ((ch == '+') || (ch == '-')))) || (((num10 >= 2) && (ch == '.')) || ((num10 == 3) && ((ch == 'E') || (ch == 'e'))))) + { + num11++; + } + else if ((num11 != 0) || (ch != ' ')) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + } + try + { + Value = double.Parse(builder.ToString()); + } + catch (FormatException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + } + else + { + int num6; + int num3; + + switch ((num2 & RealExplenMask)) + { + case RealExplen1: + num3 = 1; + break; + + case RealExplen2: + num3 = 2; + break; + + case RealExplen3: + num3 = 3; + break; + + default: + num3 = buffer.ReadByte(); + length--; + break; + } + + var num4 = (int)Asn1RunTime.DecodeIntValue(buffer, num3, true); + length -= num3; + + var num5 = Asn1RunTime.DecodeIntValue(buffer, length, false) * (1L << ((num2 & RealFactorMask) >> 2)); + + switch ((num2 & RealBaseMask)) + { + case RealBase2: + num6 = 2; + break; + + case RealBase8: + num6 = 8; + break; + + case RealBase16: + num6 = 16; + break; + + default: + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + Value = num5 * Math.Pow(num6, num4); + + if ((num2 & PlusInfinity) != 0) + { + Value = -Value; + } + } + + buffer.TypeCode = RealTypeCode; + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (double.IsNegativeInfinity(Value)) + { + len = buffer.EncodeIntValue(MinusInfinity); + } + else if (double.IsPositiveInfinity(Value)) + { + len = buffer.EncodeIntValue(PlusInfinity); + } + + else if (Value != 0.0) + { + var num2 = BitConverter.DoubleToInt64Bits(Value); + var num3 = ((num2 >> RealIso6093Mask) == 0L) ? 1 : -1; + var num4 = ((int)((num2 >> 0x34) & 0x7ffL)) - 0x433; + var w = (num4 == 0) ? ((num2 & 0xfffffffffffffL) << 1) : ((num2 & 0xfffffffffffffL) | 0x10000000000000L); + + if (w != 0L) + { + var bits = TrailingZerosCnt(w); + w = Asn1Util.UrShift(w, bits); + num4 += bits; + } + + len += buffer.EncodeIntValue(w); + + var num7 = buffer.EncodeIntValue(num4); + len += num7; + + var num8 = RealBinary; + + if (num3 == -1) + { + num8 |= PlusInfinity; + } + + switch (num7) + { + case RealExplen2: + break; + + case RealExplen3: + num8 |= 1; + break; + + case RealExplenLong: + num8 |= 2; + break; + + default: + num8 |= 3; + len += buffer.EncodeIntValue(num7); + break; + } + + buffer.Copy((byte)num8); + len++; + } + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + if (Value == 0.0) + { + outs.EncodeLength(0); + } + else if (Value == double.NegativeInfinity) + { + outs.EncodeIntValue(MinusInfinity, true); + } + else if (Value == double.PositiveInfinity) + { + outs.EncodeIntValue(PlusInfinity, true); + } + else + { + var len = 1; + var num2 = BitConverter.DoubleToInt64Bits(Value); + var num3 = ((num2 >> RealIso6093Mask) == 0L) ? 1 : -1; + var num4 = ((int)((num2 >> 0x34) & 0x7ffL)) - 0x433; + var w = (num4 == 0) ? ((num2 & 0xfffffffffffffL) << 1) : ((num2 & 0xfffffffffffffL) | 0x10000000000000L); + + if (w != 0L) + { + var bits = TrailingZerosCnt(w); + w = Asn1Util.UrShift(w, bits); + num4 += bits; + len += Asn1Util.GetUlongBytesCount(w); + } + else + { + len++; + } + + var num7 = RealBinary; + + if (num3 == -1) + { + num7 |= PlusInfinity; + } + + var bytesCount = Asn1Util.GetBytesCount(num4); + len += bytesCount; + + switch (bytesCount) + { + case RealExplen2: + break; + + case RealExplen3: + num7 |= 1; + break; + + case RealExplenLong: + num7 |= 2; + break; + + default: + num7 |= 3; + len++; + break; + } + + outs.EncodeLength(len); + outs.WriteByte((byte)num7); + + if ((num7 & 3) == 3) + { + outs.EncodeIntValue(bytesCount, false); + } + + outs.EncodeIntValue(num4, false); + outs.EncodeIntValue(w, false); + } + } + + public virtual bool Equals(double value) + { + return (Value == value); + } + + public override bool Equals(object value) + { + var real = value as Asn1Real; + + if (real == null) + { + return false; + } + + return (Value == real.Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + + public override string ToString() + { + return Value.ToString(); + } + + private static int TrailingZerosCnt(long w) + { + var num = Asn1RunTime.IntTrailingZerosCnt((int)w); + + if (num >= RealBase16) + { + return (Asn1RunTime.IntTrailingZerosCnt((int)Asn1Util.UrShift(w, RealBase16)) + RealBase16); + } + + return num; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RelativeOid.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RelativeOid.cs new file mode 100644 index 0000000..f80db0c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RelativeOid.cs @@ -0,0 +1,71 @@ +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1RelativeOid : Asn1ObjectIdentifier + { + public new static readonly Asn1Tag Tag = new Asn1Tag(0, 0, RelativeOidTypeCode); + + public Asn1RelativeOid() + { + } + + public Asn1RelativeOid(OidValue oidValue) + : base(oidValue) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var len = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + OidValue = OidValue.FromArray(buffer.DecodeRelOidContents(len)); + buffer.TypeCode = RelativeOidTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (OidValue.Items.Length < 1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidObjectIdException); + } + + var len = 0; + + for (var i = OidValue.Items.Length - 1; i >= 0; i--) + { + len += buffer.EncodeIdentifier(OidValue.Items[i]); + } + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + var len = 0; + + foreach (var i in OidValue.Items) + { + len += Asn1RunTime.GetIdentBytesCount(i); + } + + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeLength(len); + + foreach (var i in OidValue.Items) + { + outs.EncodeIdentifier(i); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RunTime.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RunTime.cs new file mode 100644 index 0000000..e311a4f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1RunTime.cs @@ -0,0 +1,151 @@ +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Ber +{ + public static class Asn1RunTime + { + public const int LicBer = 1; + public const int LicPer = 2; + public const int LicXer = 4; + public const long Bit0Mask = -9223372036854775808L; + + public static long DecodeIntValue(Asn1DecodeBuffer buffer, int length, bool signExtend) + { + var num = 0L; + + if (length > 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1IntegerValueIsTooLarge); + } + + for (var i = 0; i < length; i++) + { + var num2 = buffer.ReadByte(); + + if (num2 < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + if ((i == 0) && signExtend) + { + num = (num2 > 0x7f) ? -1 : 0; + } + + num = (num * 0x100L) + num2; + } + + return num; + } + + public static int GetIdentBytesCount(long ident) + { + if (ident < 0x80L) + { + return 1; + } + + if (ident < 0x4000L) + { + return 2; + } + + if (ident < 0x200000L) + { + return 3; + } + + if (ident < 0x10000000L) + { + return 4; + } + + if (ident < 0x800000000L) + { + return 5; + } + + if (ident < 0x40000000000L) + { + return 6; + } + + if (ident < 0x2000000000000L) + { + return 7; + } + + if (ident < 0x100000000000000L) + { + return 8; + } + + return 9; + } + + public static int GetLongBitCount(long ivalue) + { + var num = ivalue & Bit0Mask; + var num2 = 0; + + if (ivalue != 0L) + { + while ((ivalue & Bit0Mask) == num) + { + num2++; + ivalue = ivalue << 1; + } + + if (num == Bit0Mask) + { + num2--; + } + + return (0x40 - num2); + } + + return 0; + } + + public static int GetLongBytesCount(long value) + { + var num = 0x7f80000000000000L; + var num2 = 8; + + if (value < 0L) + { + value ^= -1L; + } + + while ((num2 > 1) && ((value & num) == 0L)) + { + num = num >> 8; + num2--; + } + + return num2; + } + + public static int GetUlongBytesCount(long value) + { + var number = -72057594037927936L; + var num2 = 8; + + while ((num2 > 1) && ((value & number) == 0L)) + { + number = Asn1Util.UrShift(number, 8); + num2--; + } + + return num2; + } + + public static int IntTrailingZerosCnt(int w) + { + return (0x20 - + (((w & 0xffff) != 0) + ? (((w & 0xff) != 0) ? ((((w & 15) != 0) ? (((w & 3) != 0) ? (((w & 1) != 0) ? 8 : 7) : (((w & 4) != 0) ? 6 : 5)) : (((w & 0x30) != 0) ? (((w & 0x10) != 0) ? 4 : 3) : (((w & 0x40) != 0) ? 2 : (((w & 0x80) != 0) ? 1 : 0)))) + 0x18) : (((((w = Asn1Util.UrShift(w, 8)) & 15) != 0) ? (((w & 3) != 0) ? (((w & 1) != 0) ? 8 : 7) : (((w & 4) != 0) ? 6 : 5)) : (((w & 0x30) != 0) ? (((w & 0x10) != 0) ? 4 : 3) : (((w & 0x40) != 0) ? 2 : (((w & 0x80) != 0) ? 1 : 0)))) + 0x10)) + : ((((w = Asn1Util.UrShift(w, 0x10)) & 0xff) != 0) ? ((((w & 15) != 0) ? (((w & 3) != 0) ? (((w & 1) != 0) ? 8 : 7) : (((w & 4) != 0) ? 6 : 5)) : (((w & 0x30) != 0) ? (((w & 0x10) != 0) ? 4 : 3) : (((w & 0x40) != 0) ? 2 : (((w & 0x80) != 0) ? 1 : 0)))) + 8) : ((((w = Asn1Util.UrShift(w, 8)) & 15) != 0) ? (((w & 3) != 0) ? (((w & 1) != 0) ? 8 : 7) : (((w & 4) != 0) ? 6 : 5)) : (((w & 0x30) != 0) ? (((w & 0x10) != 0) ? 4 : 3) : (((w & 0x40) != 0) ? 2 : (((w & 0x80) != 0) ? 1 : 0))))))); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Status.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Status.cs new file mode 100644 index 0000000..f4b714b --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Status.cs @@ -0,0 +1,7 @@ +namespace GostCryptography.Asn1.Ber +{ + public static class Asn1Status + { + public const int IndefiniteLength = -9999; + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1T61String.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1T61String.cs new file mode 100644 index 0000000..19942de --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1T61String.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1T61String : Asn1VarWidthCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, T61StringTypeCode); + + public Asn1T61String() + : base(T61StringTypeCode) + { + } + + public Asn1T61String(string data) + : base(data, T61StringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Tag.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Tag.cs new file mode 100644 index 0000000..d901a05 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Tag.cs @@ -0,0 +1,106 @@ +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Tag + { + public const short Universal = 0; + public const short Private = 0xc0; + public const short Application = 0x40; + + public const short Bit8Mask = 0x80; + public const short ClassMask = 0xc0; + public const short CONS = 0x20; + public const short CTXT = 0x80; + public const bool EXPL = true; + public const short EXTIDCODE = 0x1f; + public const short FormMask = 0x20; + public const short IDMask = 0x1f; + public const bool IMPL = false; + public const short L7BitsMask = 0x7f; + public const short PRIM = 0; + + public static readonly Asn1Tag Eoc = new Asn1Tag(0, 0, Asn1Type.EocTypeCode); + public static readonly Asn1Tag Set = new Asn1Tag(0, 0x20, Asn1Type.SetTypeCode); + public static readonly Asn1Tag Sequence = new Asn1Tag(0, 0x20, Asn1Type.SequenceTypeCode); + public static readonly Asn1Tag Enumerated = new Asn1Tag(0, 0, Asn1Type.EnumeratedTypeCode); + + [NonSerialized] + public short Class; + + [NonSerialized] + public short Form; + + [NonSerialized] + public int IdCode; + + public Asn1Tag() + { + Class = 0; + Form = 0; + IdCode = 0; + } + + public Asn1Tag(short tagclass, short form, int idCode) + { + Class = tagclass; + Form = form; + IdCode = idCode; + } + + public virtual bool Constructed + { + get { return (Form == 0x20); } + } + + public bool Equals(Asn1Tag tag) + { + return Equals(tag.Class, tag.Form, tag.IdCode); + } + + public virtual bool Equals(short tagclass, short form, int idCode) + { + return ((Class == tagclass) && (IdCode == idCode)); + } + + public virtual bool IsEoc() + { + return Equals(0, 0, 0); + } + + public override string ToString() + { + var builder = new StringBuilder(); + builder.Append("["); + + switch (Class) + { + case 0x80: + break; + + case Private: + builder.Append("PRIVATE "); + break; + + case Universal: + builder.Append("UNIVERSAL "); + break; + + case Application: + builder.Append("APPLICATION "); + break; + + default: + builder.Append("??? "); + break; + } + + builder.Append(Convert.ToString(IdCode)); + builder.Append("]"); + + return builder.ToString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Time.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Time.cs new file mode 100644 index 0000000..e3a924c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Time.cs @@ -0,0 +1,554 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1Time : Asn18BitCharString, IComparable + { + public const int January = 1; + public const int February = 2; + public const int March = 3; + public const int April = 4; + public const int May = 5; + public const int June = 6; + public const int July = 7; + public const int August = 8; + public const int September = 9; + public const int October = 10; + public const int November = 11; + public const int December = 12; + + public static readonly short[] DaysInMonth = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + + public Asn1Time(short typeCode, bool useDerRules) + : base(typeCode) + { + DerRules = useDerRules; + Init(); + } + + public Asn1Time(string data, short typeCode, bool useDerRules) + : base(data, typeCode) + { + DerRules = useDerRules; + Init(); + } + + [NonSerialized] + protected bool Parsed; + + [NonSerialized] + protected bool DerRules; + + [NonSerialized] + protected int DiffHourValue; + + public virtual int DiffHour + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return DiffHourValue; + } + set + { + if ((value < -12) || (value > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHourValue, value); + } + + SafeParseString(); + DiffHourValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int DiffMinValue; + + public virtual int DiffMinute + { + get + { + if (!Parsed) + { + ParseString(Value); + } + + return DiffMinValue; + } + } + + [NonSerialized] + protected string SecFraction; + + public virtual string Fraction + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return SecFraction; + } + set + { + SafeParseString(); + SecFraction = value; + CompileString(); + } + } + + [NonSerialized] + protected int YearValue; + + public virtual int Year + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return YearValue; + } + set + { + if (value < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValue, value); + } + + if (!CheckDate(DayValue, MonthValue, value)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValueForDayAndMonth, value, DayValue, MonthValue); + } + + SafeParseString(); + YearValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int MonthValue; + + public virtual int Month + { + get + { + if (!Parsed) + { + ParseString(Value); + } + + return MonthValue; + } + set + { + if ((value < 1) || (value > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMonthValue, value); + } + + if (!CheckDate(DayValue, value, YearValue)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMonthValueForDayAndYear, value, DayValue, YearValue); + } + + SafeParseString(); + MonthValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int DayValue; + + public virtual int Day + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return DayValue; + } + set + { + if (((value < 1) || (value > 31)) || !CheckDate(value, MonthValue, YearValue)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDayValueForMonthAndYear, value, MonthValue, YearValue); + } + + SafeParseString(); + DayValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int HourValue; + + public virtual int Hour + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return HourValue; + } + set + { + if ((value < 0) || (value > 23)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidHourValue, value); + } + + SafeParseString(); + HourValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int MinuteValue; + + public virtual int Minute + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return MinuteValue; + } + set + { + if ((value < 0) || (value > 59)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMinuteValue, value); + } + + SafeParseString(); + MinuteValue = value; + CompileString(); + } + } + + [NonSerialized] + protected int SecondValue; + + public virtual int Second + { + get + { + if (!Parsed) + { + ParseString(Value); + } + return SecondValue; + } + set + { + if ((value < 0) || (value > 59)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidSecondValue, value); + } + + SafeParseString(); + SecondValue = value; + CompileString(); + } + } + + [NonSerialized] + protected bool UtcFlag; + + public virtual bool Utc + { + get + { + if (!Parsed) + { + ParseString(Value); + } + + return UtcFlag; + } + set + { + if (!DerRules) + { + SafeParseString(); + UtcFlag = value; + CompileString(); + } + } + } + + public virtual int CompareTo(object other) + { + if (other is DateTime) + { + var time2 = (DateTime)other; + return (int)(GetTime().Ticks - time2.Ticks); + } + return (int)(GetTime().Ticks - ((Asn1Time)other).GetTime().Ticks); + } + + protected static char CharAt(string s, int index) + { + if (index >= s.Length) + { + return '\0'; + } + + return s[index]; + } + + private static bool CheckDate(int day, int month, int year) + { + if ((day <= 0) || (month <= 0)) + { + return true; + } + + if ((year >= 0) && (month > 0)) + { + int num = DaysInMonth[month]; + + if (((month == 2) && ((year % 4) == 0)) && (((year % 100) != 0) || ((year % 400) == 0))) + { + num++; + } + + if ((day >= 1) && (day <= num)) + { + return true; + } + } + else if (month > 0) + { + if (day <= DaysInMonth[month]) + { + return true; + } + + if ((month == 2) && (day <= (DaysInMonth[month] + 1))) + { + return true; + } + } + + return false; + } + + public virtual void Clear() + { + YearValue = MonthValue = DayValue = HourValue = -1; + MinuteValue = SecondValue = DiffHourValue = DiffMinValue = 0; + UtcFlag = DerRules; + Parsed = true; + SecFraction = ""; + Value = ""; + } + + protected abstract bool CompileString(); + + protected override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength, Asn1Tag tag) + { + Parsed = false; + base.Decode(buffer, explicitTagging, implicitLength, tag); + DerRules = buffer is Asn1DerDecodeBuffer; + } + + protected override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging, Asn1Tag tag) + { + SafeParseString(); + + var flag = buffer is Asn1DerEncodeBuffer; + + if (DerRules != flag) + { + DerRules = flag; + + if (!CompileString()) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1TimeStringCouldNotBeGenerated); + } + } + + return base.Encode(buffer, explicitTagging, tag); + } + + public virtual void Encode(Asn1BerOutputStream outs, bool explicitTagging, Asn1Tag tag) + { + SafeParseString(); + outs.EncodeCharString(Value, explicitTagging, tag); + } + + public override bool Equals(object value) + { + if (value is Asn1Time) + { + return GetTime().Equals(((Asn1Time)value).GetTime()); + } + + return ((value is DateTime) && GetTime().Equals((DateTime)value)); + } + + public virtual int GetDiff() + { + if (!Parsed) + { + ParseString(Value); + } + + return ((DiffHourValue * 60) + DiffMinValue); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + + public virtual DateTime GetTime() + { + if (!string.IsNullOrEmpty(SecFraction)) + { + return new DateTime(YearValue, MonthValue, DayValue, HourValue, MinuteValue, SecondValue, int.Parse(SecFraction)); + } + + return new DateTime(YearValue, MonthValue, DayValue, HourValue, MinuteValue, SecondValue); + } + + protected virtual void Init() + { + YearValue = MonthValue = DayValue = HourValue = -1; + MinuteValue = SecondValue = 0; + DiffHourValue = DiffMinValue = 0; + UtcFlag = DerRules; + SecFraction = ""; + } + + protected static int ParseInt(string str, IntHolder off, int len) + { + if ((off.Value + len) > str.Length) + { + throw ExceptionUtility.ArgumentOutOfRange("off"); + } + + var mValue = off.Value; + off.Value += len; + + return int.Parse(str.Substring(mValue, len)); + } + + public abstract void ParseString(string data); + + protected virtual void PutInteger(int width, int value) + { + PutInteger(StringBuffer, width, value); + } + + public static void PutInteger(StringBuilder data, int width, int value) + { + var str = Convert.ToString(value); + var length = str.Length; + + if (length < width) + { + for (var i = length; i < width; i++) + { + data.Append('0'); + } + } + else if (length > width) + { + str = str.Substring(length - width); + } + + data.Append(str); + } + + protected virtual void SafeParseString() + { + try + { + if (!Parsed) + { + ParseString(Value); + } + } + catch (Exception) + { + } + } + + public virtual void SetDiff(int inMinutes) + { + if (Math.Abs(inMinutes) > 720) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidDiffValue, inMinutes); + } + + SafeParseString(); + DiffHourValue = inMinutes / 60; + DiffMinValue = inMinutes % 60; + CompileString(); + } + + public virtual void SetDiff(int dhour, int dminute) + { + if ((dhour < -12) || (dhour > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHourValue, dhour); + } + + if (Math.Abs(dminute) > 59) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffMinuteValue, dminute); + } + + SafeParseString(); + DiffHourValue = dhour; + + if (dhour < 0) + { + DiffMinValue = -Math.Abs(dminute); + } + else + { + DiffMinValue = Math.Abs(dminute); + } + + CompileString(); + } + + public virtual void SetTime(DateTime time) + { + Clear(); + YearValue = time.Year; + MonthValue = time.Month; + DayValue = time.Day; + HourValue = time.Hour; + MinuteValue = time.Minute; + SecondValue = time.Second; + SecFraction = Convert.ToString(time.Millisecond); + DiffHourValue = DiffMinValue = 0; + UtcFlag = DerRules; + CompileString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1TraceHandler.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1TraceHandler.cs new file mode 100644 index 0000000..aefc1d7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1TraceHandler.cs @@ -0,0 +1,46 @@ +using System; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public class Asn1TraceHandler : IAsn1NamedEventHandler + { + internal StreamWriter mPrintStream; + + public Asn1TraceHandler() + { + mPrintStream = new StreamWriter(Console.OpenStandardOutput(), Console.Out.Encoding); + mPrintStream.AutoFlush = true; + } + + public Asn1TraceHandler(StreamWriter ps) + { + mPrintStream = ps; + } + + public virtual void Characters(string svalue, short typeCode) + { + mPrintStream.WriteLine("data: " + svalue); + } + + public virtual void EndElement(string name, int index) + { + mPrintStream.Write(name); + if (index >= 0) + { + mPrintStream.Write("[" + index + "]"); + } + mPrintStream.WriteLine(": end"); + } + + public virtual void StartElement(string name, int index) + { + mPrintStream.Write(name); + if (index >= 0) + { + mPrintStream.Write("[" + index + "]"); + } + mPrintStream.WriteLine(": start"); + } + } +} \ No newline at end of file diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Type.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Type.cs new file mode 100644 index 0000000..88e9f67 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Type.cs @@ -0,0 +1,167 @@ +using GostCryptography.Properties; +using System; +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1Type : IAsn1Type + { + public const short EocTypeCode = 0; + public const short BooleanTypeCode = 1; + public const short BigIntegerTypeCode = 2; + public const short BitStringTypeCode = 3; + public const short OctetStringTypeCode = 4; + public const short NullTypeCode = 5; + public const short ObjectIdentifierTypeCode = 6; + public const short ObjectDescriptorTypeCode = 7; + public const short ExternalTypeCode = 8; + public const short RealTypeCode = 9; + public const short EnumeratedTypeCode = 10; + public const short Utf8StringTypeCode = 12; + public const short RelativeOidTypeCode = 13; + public const short SequenceTypeCode = 0x10; + public const short SetTypeCode = 0x11; + public const short NumericStringTypeCode = 0x12; + public const short PrintableStringTypeCode = 0x13; + public const short T61StringTypeCode = 20; + public const short VideoTexStringTypeCode = 0x15; + public const short Ia5StringTypeCode = 0x16; + public const short UtcTimeTypeCode = 0x17; + public const short GeneralTimeTypeCode = 0x18; + public const short GraphicStringTypeCode = 0x19; + public const short VisibleStringTypeCode = 0x1a; + public const short GeneralStringTypeCode = 0x1b; + public const short UniversalStringTypeCode = 0x1c; + public const short BmpStringTypeCode = 30; + public const short OpenTypeTypeCode = 0x63; + + [NonSerialized] + private readonly IntHolder _parsedLen = new IntHolder(); + + [NonSerialized] + private readonly Asn1Tag _parsedTag = new Asn1Tag(); + + public virtual int Length + { + get { throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); } + } + + public virtual void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + } + + public virtual int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return 0; + } + + public virtual void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + } + + public virtual void Print(TextWriter outs, string varName, int level) + { + Indent(outs, level); + outs.WriteLine(varName + " = " + ToString()); + } + + public virtual void Decode(Asn1BerDecodeBuffer buffer) + { + Decode(buffer, true, 0); + } + + public virtual int Encode(Asn1BerEncodeBuffer buffer) + { + return Encode(buffer, true); + } + + public static string GetTypeName(short typeCode) + { + switch (typeCode) + { + case EocTypeCode: + return "EOC"; + case BooleanTypeCode: + return "BOOLEAN"; + case BigIntegerTypeCode: + return "INTEGER"; + case BitStringTypeCode: + return "BIT STRING"; + case OctetStringTypeCode: + return "OCTET STRING"; + case NullTypeCode: + return "NULL"; + case ObjectIdentifierTypeCode: + return "OBJECT IDENTIFIER"; + case ObjectDescriptorTypeCode: + return "ObjectDescriptor"; + case ExternalTypeCode: + return "EXTERNAL"; + case RealTypeCode: + return "REAL"; + case EnumeratedTypeCode: + return "ENUMERATED"; + case Utf8StringTypeCode: + return "UTF8String"; + case SequenceTypeCode: + return "SEQUENCE"; + case SetTypeCode: + return "SET"; + case NumericStringTypeCode: + return "NumericString"; + case PrintableStringTypeCode: + return "PrintableString"; + case T61StringTypeCode: + return "T61String"; + case VideoTexStringTypeCode: + return "VideotexString"; + case Ia5StringTypeCode: + return "IA5String"; + case UtcTimeTypeCode: + return "UTCTime"; + case GeneralTimeTypeCode: + return "GeneralTime"; + case GraphicStringTypeCode: + return "GraphicString"; + case VisibleStringTypeCode: + return "VisibleString"; + case GeneralStringTypeCode: + return "GeneralString"; + case UniversalStringTypeCode: + return "UniversalString"; + case BmpStringTypeCode: + return "BMPString"; + case OpenTypeTypeCode: + return "ANY"; + } + + return "?"; + } + + public virtual void Indent(TextWriter outs, int level) + { + var num2 = level * 3; + + for (var i = 0; i < num2; i++) + { + outs.Write(" "); + } + } + + protected virtual int MatchTag(Asn1BerDecodeBuffer buffer, Asn1Tag tag) + { + return MatchTag(buffer, tag.Class, tag.Form, tag.IdCode); + } + + protected virtual int MatchTag(Asn1BerDecodeBuffer buffer, short tagClass, short tagForm, int tagIdCode) + { + if (!buffer.MatchTag(tagClass, tagForm, tagIdCode, _parsedTag, _parsedLen)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1TagMatchFailedException, new Asn1Tag(tagClass, tagForm, tagIdCode), _parsedTag, buffer.ByteCount); + } + + return _parsedLen.Value; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UniversalString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UniversalString.cs new file mode 100644 index 0000000..30e0d90 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UniversalString.cs @@ -0,0 +1,224 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1UniversalString : Asn1Type + { + public const int BitsPerChar = 0x20; + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, UniversalStringTypeCode); + + [NonSerialized] + private StringBuilder _stringBuffer; + + [NonSerialized] + private int[] _value; + + public Asn1UniversalString() + { + _value = new int[0]; + } + + public Asn1UniversalString(int[] value) + { + _value = value; + } + + public Asn1UniversalString(string value) + { + _value = new int[value.Length]; + + for (var i = 0; i < value.Length; i++) + { + _value[i] = value[i]; + } + } + + public override int Length + { + get { return _value.Length; } + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var llen = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + var idx = new IntHolder(0); + var lastTag = buffer.LastTag; + + if ((lastTag == null) || !lastTag.Constructed) + { + ReadSegment(buffer, llen, idx); + } + else + { + var context = new Asn1BerDecodeContext(buffer, llen); + + while (!context.Expired()) + { + var num2 = MatchTag(buffer, Asn1OctetString.Tag); + + if (num2 <= 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidFormatOfConstructedValue, buffer.ByteCount); + } + + ReadSegment(buffer, num2, idx); + } + + if (llen == Asn1Status.IndefiniteLength) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + buffer.TypeCode = UniversalStringTypeCode; + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var length = _value.Length; + + for (var i = length - 1; i >= 0; i--) + { + var num3 = _value[i]; + + for (var j = 0; j < 4; j++) + { + var num = num3 % 0x100; + num3 /= 0x100; + buffer.Copy((byte)num); + } + } + + length *= 4; + + if (explicitTagging) + { + length += buffer.EncodeTagAndLength(Tag, length); + } + + return length; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeUnivString(_value, explicitTagging, Tag); + } + + public override bool Equals(object value) + { + var str = value as Asn1UniversalString; + + if (str == null) + { + return false; + } + + if (_value.Length != str._value.Length) + { + return false; + } + + for (var i = 0; i < _value.Length; i++) + { + if (_value[i] != str._value[i]) + { + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + if (_value.Length == 0) + { + return base.GetHashCode(); + } + + var num = 0; + var num2 = (_value.Length > 20) ? 20 : _value.Length; + + for (var i = 0; i < num2; i++) + { + num ^= _value[i]; + } + + return num; + } + + private void ReadSegment(Asn1BerDecodeBuffer buffer, int llen, IntHolder idx) + { + if ((llen < 0) || ((llen % 4) != 0)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidLengthException); + } + + var num4 = llen / 4; + + if (_value.Length == 0) + { + _value = new int[num4]; + } + else if ((idx.Value + num4) >= _value.Length) + { + ReallocIntArray(idx.Value + num4); + } + + var value = idx.Value; + + while (value < (idx.Value + num4)) + { + _value[value] = 0; + + for (var i = 0; i < 4; i++) + { + var num = buffer.Read(); + + if (num == -1) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1EndOfBufferException, buffer.ByteCount); + } + + _value[value] = (_value[value] * 0x100) + num; + } + + value++; + } + + idx.Value = value; + } + + private void ReallocIntArray(int nint) + { + var value = _value; + + _value = new int[nint]; + + if (value != null) + { + Array.Copy(value, 0, _value, 0, value.Length); + } + } + + public override string ToString() + { + if (_stringBuffer == null) + { + _stringBuffer = new StringBuilder(); + } + + _stringBuffer.Length = _value.Length; + + for (var i = 0; i < _value.Length; i++) + { + _stringBuffer[i] = (char)_value[i]; + } + + return _stringBuffer.ToString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UtcTime.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UtcTime.cs new file mode 100644 index 0000000..2675573 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1UtcTime.cs @@ -0,0 +1,358 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1UtcTime : Asn1Time + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, UtcTimeTypeCode); + + public Asn1UtcTime() + : base(UtcTimeTypeCode, false) + { + } + + public Asn1UtcTime(bool useDerRules) + : base(UtcTimeTypeCode, useDerRules) + { + } + + public Asn1UtcTime(string data) + : base(data, UtcTimeTypeCode, false) + { + } + + public Asn1UtcTime(string data, bool useDerRules) + : base(data, UtcTimeTypeCode, useDerRules) + { + } + + public override string Fraction + { + get + { + return ""; + } + set + { + SecFraction = ""; + + throw ExceptionUtility.CryptographicException(Resources.Asn1FractionNotSupportedForUtcTime); + } + } + + public override int Year + { + get + { + if (!Parsed) + { + ParseString(Value); + } + + return YearValue; + } + set + { + if (value < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValue, YearValue); + } + + if (value < 100) + { + if (value >= 50) + { + Year = value + 0x76c; + } + else + { + Year = value + 0x7d0; + } + } + + Year = value; + } + } + + public override void Clear() + { + Clear(); + HourValue = MinuteValue = -1; + UtcFlag = true; + } + + public override int CompareTo(object obj) + { + return base.CompareTo(obj); + } + + protected override bool CompileString() + { + Value = ""; + + if (((YearValue < 0) || (DayValue <= 0)) || (((MonthValue <= 0) || (HourValue < 0)) || (MinuteValue < 0))) + { + return false; + } + + if (StringBuffer == null) + { + StringBuffer = new StringBuilder(); + } + else + { + StringBuffer.Length = 0; + } + + if ((DerRules || UtcFlag) && ((DiffHourValue != 0) || (DiffMinValue != 0))) + { + var time = GetTime(); + time.AddMinutes(-DiffMinValue); + time.AddHours(-DiffHourValue); + + PutInteger(2, time.Year); + PutInteger(2, time.Month); + PutInteger(2, time.Day); + PutInteger(2, time.Hour); + PutInteger(2, time.Minute); + } + else + { + PutInteger(2, YearValue); + PutInteger(2, MonthValue); + PutInteger(2, DayValue); + PutInteger(2, HourValue); + PutInteger(2, MinuteValue); + } + + PutInteger(2, SecondValue); + + if (DerRules || UtcFlag) + { + StringBuffer.Append('Z'); + } + else if ((DiffHourValue != 0) || (DiffMinValue != 0)) + { + StringBuffer.Append((DiffHourValue > 0) ? '+' : '-'); + PutInteger(2, Math.Abs(DiffHourValue)); + PutInteger(2, Math.Abs(DiffMinValue)); + } + + Value = StringBuffer.ToString(); + + return true; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + Encode(outs, explicitTagging, Tag); + } + + protected override void Init() + { + Init(); + HourValue = MinuteValue = -1; + UtcFlag = true; + } + + public override void ParseString(string data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull("data"); + } + + Clear(); + + var off = new IntHolder(0); + + try + { + YearValue = ParseInt(data, off, 2); + MonthValue = ParseInt(data, off, 2); + DayValue = ParseInt(data, off, 2); + + if (YearValue < 0) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidYearValue, YearValue); + } + + if (YearValue < 100) + { + if (YearValue > 70) + { + YearValue += 0x76c; + } + else + { + YearValue += 0x7d0; + } + } + + if ((MonthValue < 1) || (MonthValue > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMonthValue, MonthValue); + } + + var num = DaysInMonth[MonthValue]; + + if (((MonthValue == 2) && ((YearValue % 4) == 0)) && (((YearValue % 100) != 0) || ((YearValue % 400) == 0))) + { + num++; + } + + if ((DayValue < 1) || (DayValue > num)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDayValue, DayValue); + } + + var num2 = 0; + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1HoursExpected); + } + + HourValue = ParseInt(data, off, 2); + num2++; + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MinutesExpected); + } + + MinuteValue = ParseInt(data, off, 2); + num2++; + + if (char.IsDigit(CharAt(data, off.Value))) + { + SecondValue = ParseInt(data, off, 2); + num2++; + } + + if ((num2 >= 2) && ((HourValue < 0) || (HourValue > UtcTimeTypeCode))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidHourValue, HourValue); + } + + if ((num2 >= 2) && ((MinuteValue < 0) || (MinuteValue > 0x3b))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidMinuteValue, MinuteValue); + } + + if ((num2 == 3) && ((SecondValue < 0) || (SecondValue > 0x3b))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidSecondValue, SecondValue); + } + + CharAt(data, off.Value); + + if (CharAt(data, off.Value) == 'Z') + { + off.Value++; + UtcFlag = true; + + if (off.Value != data.Length) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedValuesAtEndOfString); + } + } + else + { + if (DerRules) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1UnexpectedZoneOffset); + } + + UtcFlag = false; + var ch = CharAt(data, off.Value); + + switch (ch) + { + case '-': + case '+': + off.Value++; + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHour); + } + + DiffHourValue = ParseInt(data, off, 2); + + if (!char.IsDigit(CharAt(data, off.Value))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffMinute); + } + + DiffMinValue = ParseInt(data, off, 2); + + if ((DiffHourValue < 0) || (DiffHourValue > 12)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffHourValue, DiffHourValue); + } + + if ((DiffMinValue < 0) || (DiffMinValue > 0x3b)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDiffMinuteValue, DiffMinValue); + } + + if (ch == '-') + { + DiffHourValue = -DiffHourValue; + DiffMinValue = -DiffMinValue; + } + break; + } + } + + Parsed = true; + + if (data != Value) + { + CompileString(); + } + } + catch (IndexOutOfRangeException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDateFormat); + } + catch (FormatException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidNumberFormat); + } + catch (ArgumentException) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidDateFormat); + } + } + + public override void SetTime(DateTime time) + { + Clear(); + YearValue = time.Year; + MonthValue = time.Month; + DayValue = time.Day; + HourValue = time.Hour; + MinuteValue = time.Minute; + SecondValue = time.Second; + SecFraction = ""; + DiffHourValue = DiffMinValue = 0; + UtcFlag = true; + CompileString(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Utf8String.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Utf8String.cs new file mode 100644 index 0000000..7d3508b --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Utf8String.cs @@ -0,0 +1,98 @@ +using System; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1Utf8String : Asn1CharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, Utf8StringTypeCode); + + public Asn1Utf8String() + : base(Utf8StringTypeCode) + { + } + + public Asn1Utf8String(string data) + : base(data, Utf8StringTypeCode) + { + } + + private byte[] AllocByteArray(int nbytes) + { + return new byte[nbytes]; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var num = explicitTagging ? MatchTag(buffer, Tag) : implicitLength; + var str = new Asn1OctetString(); + str.Decode(buffer, false, num); + + Value = Encoding.UTF8.GetString(str.Value, 0, str.Value.Length); + + if (explicitTagging && (num == Asn1Status.IndefiniteLength)) + { + MatchTag(buffer, Asn1Tag.Eoc); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + try + { + var bytes = Encoding.UTF8.GetBytes(Value); + len = bytes.Length; + buffer.Copy(bytes); + } + catch (IOException exception) + { + Console.Out.WriteLine("This JVM does not support UTF-8 encoding"); + Asn1Util.WriteStackTrace(exception, Console.Error); + } + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + try + { + var bytes = Encoding.UTF8.GetBytes(Value); + + if (explicitTagging) + { + outs.EncodeTag(Tag); + } + + outs.EncodeLength(bytes.Length); + outs.Write(bytes); + } + catch (IOException exception) + { + Console.Out.WriteLine("This JVM does not support UTF-8 encoding"); + Asn1Util.WriteStackTrace(exception, Console.Error); + } + } + + private byte[] ReAllocByteArray(byte[] ba1, int nbytes) + { + var destinationArray = new byte[nbytes]; + + if (ba1 != null) + { + Array.Copy(ba1, 0, destinationArray, 0, ba1.Length); + } + + return destinationArray; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Util.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Util.cs new file mode 100644 index 0000000..991bf47 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Util.cs @@ -0,0 +1,337 @@ +using GostCryptography.Properties; +using System; +using System.Collections; +using System.IO; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + public static class Asn1Util + { + private static readonly byte[] Base64DecodeTable = + { + 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 60, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 0x10, 0x11, 0x12, 0x13, 20, 0x15, 0x16, + 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 30, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 40, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 50, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff + }; + + private static readonly byte[] Base64EncodeTable = + { + 0x41, 0x42, 0x43, 0x44, 0x45, 70, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 80, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 90, 0x61, 0x62, 0x63, 100, 0x65, 0x66, + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 110, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, + 0x77, 120, 0x79, 0x7a, 0x30, 0x31, 50, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f + }; + + public static string BcdToString(byte[] bcd) + { + var index = 0; + var builder = new StringBuilder(bcd.Length * 2); + + for (var i = 0; i < (bcd.Length * 2); i++) + { + byte num3; + + if ((i % 2) == 0) + { + num3 = (byte)(bcd[index] & 15); + } + else + { + num3 = (byte)UrShift(bcd[index++], 4); + } + + if (num3 == 15) + { + break; + } + + builder.Append((num3 < 10) ? ((char)(num3 + 0x30)) : ((char)((num3 + 0x41) - 10))); + } + + return builder.ToString(); + } + + public static byte[] DecodeBase64Array(byte[] srcArray) + { + var num = srcArray.Length / 4; + + if ((4 * num) != srcArray.Length) + { + throw ExceptionUtility.Argument("srcArray", Resources.Asn1InvalidEncodedDataLength); + } + + var num2 = 0; + var num3 = num; + + if (srcArray.Length != 0) + { + if (srcArray[srcArray.Length - 1] == 0x3d) + { + num2++; + num3--; + } + if (srcArray[srcArray.Length - 2] == 0x3d) + { + num2++; + } + } + + var buffer = new byte[(3 * num) - num2]; + var num4 = 0; + var num5 = 0; + + for (var i = 0; i < num3; i++) + { + var num7 = DecodeBase64Char(srcArray[num4++]); + var num8 = DecodeBase64Char(srcArray[num4++]); + var num9 = DecodeBase64Char(srcArray[num4++]); + var num10 = DecodeBase64Char(srcArray[num4++]); + + buffer[num5++] = (byte)((num7 << 2) | (num8 >> 4)); + buffer[num5++] = (byte)((num8 << 4) | (num9 >> 2)); + buffer[num5++] = (byte)((num9 << 6) | num10); + } + + if (num2 != 0) + { + var num11 = DecodeBase64Char(srcArray[num4++]); + var num12 = DecodeBase64Char(srcArray[num4++]); + + buffer[num5++] = (byte)((num11 << 2) | (num12 >> 4)); + + if (num2 == 1) + { + var num13 = DecodeBase64Char(srcArray[num4++]); + buffer[num5++] = (byte)((num12 << 4) | (num13 >> 2)); + } + } + + return buffer; + } + + private static int DecodeBase64Char(byte c) + { + var num = (c < 0x80) ? Base64DecodeTable[c - 40] : -1; + + if (num < 0) + { + throw ExceptionUtility.Argument("c", Resources.Asn1IllegalCharacter, c); + } + + return num; + } + + public static byte[] EncodeBase64Array(byte[] srcArray) + { + var num = srcArray.Length / 3; + var num2 = srcArray.Length - (3 * num); + var num3 = 4 * ((srcArray.Length + 2) / 3); + var buffer = new byte[num3]; + var num4 = 0; + var num5 = 0; + + for (var i = 0; i < num; i++) + { + var num7 = srcArray[num4++] & 0xff; + var num8 = srcArray[num4++] & 0xff; + var num9 = srcArray[num4++] & 0xff; + + buffer[num5++] = Base64EncodeTable[num7 >> 2]; + buffer[num5++] = Base64EncodeTable[((num7 << 4) & 0x3f) | (num8 >> 4)]; + buffer[num5++] = Base64EncodeTable[((num8 << 2) & 0x3f) | (num9 >> 6)]; + buffer[num5++] = Base64EncodeTable[num9 & 0x3f]; + } + + if (num2 != 0) + { + var num10 = srcArray[num4++] & 0xff; + buffer[num5++] = Base64EncodeTable[num10 >> 2]; + + if (num2 == 1) + { + buffer[num5++] = Base64EncodeTable[(num10 << 4) & 0x3f]; + buffer[num5++] = 0x3d; + buffer[num5++] = 0x3d; + + return buffer; + } + + var num11 = srcArray[num4++] & 0xff; + buffer[num5++] = Base64EncodeTable[((num10 << 4) & 0x3f) | (num11 >> 4)]; + buffer[num5++] = Base64EncodeTable[(num11 << 2) & 0x3f]; + buffer[num5++] = 0x3d; + } + + return buffer; + } + + public static byte[] GetAddressBytes(string ipaddress) + { + var index = 0; + var buffer = new byte[4]; + var tokenizer = new Tokenizer(ipaddress, "."); + + try + { + while (tokenizer.HasMoreTokens()) + { + buffer[index] = Convert.ToByte(tokenizer.NextToken()); + index++; + } + } + catch (Exception) + { + } + + return buffer; + } + + public static int GetBytesCount(long val) + { + return Asn1RunTime.GetLongBytesCount(val); + } + + public static int GetUlongBytesCount(long val) + { + return Asn1RunTime.GetUlongBytesCount(val); + } + + // Commented out unsed method that gives compile-time warning (SL 03/06/2022) +#if false + public static byte[] StringToBcd(string str) + { + int num2; + var buffer = new byte[(str.Length + 1) / 2]; + byte num = 0; + var num3 = num2 = 0; + + while (num3 < str.Length) + { + var c = char.ToUpper(str[num3]); + var flag = char.IsDigit(c); + + if (!flag && ((c < 'A') || (c >= 'F'))) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ValueParseException, str, num3); + } + + if ((num3 % 2) != 0) + { + num = (byte)(num | ((byte)(((byte)((flag != null) ? (c - 0x30) : ((c - 0x41) + 10))) << 4))); + buffer[num2++] = num; + } + else + { + num = flag ? ((byte)(c - '0')) : ((byte)((c - 'A') + 10)); + } + + num3++; + } + + if ((num3 % 2) != 0) + { + buffer[num2++] = (byte)(num | 240); + } + + return buffer; + } +#endif + public static void ToArray(ICollection c, object[] objects) + { + var num = 0; + var enumerator = c.GetEnumerator(); + + while (enumerator.MoveNext()) + { + objects[num++] = enumerator.Current; + } + } + + public static byte[] ToByteArray(string sourceString) + { + return Encoding.UTF8.GetBytes(sourceString); + } + + public static char[] ToCharArray(byte[] byteArray) + { + return Encoding.UTF8.GetChars(byteArray); + } + + public static string ToHexString(byte b) + { + var builder = new StringBuilder(4); + var str = Convert.ToString(b, 0x10); + var length = str.Length; + + if (length < 2) + { + builder.Append('0'); + builder.Append(str); + } + else if (length > 2) + { + builder.Append(str[length - 2]); + builder.Append(str[length - 1]); + } + else + { + builder.Append(str); + } + + return builder.ToString(); + } + + public static string ToHexString(byte[] b, int offset, int nbytes) + { + var builder = new StringBuilder(nbytes * 4); + + for (var i = 0; i < nbytes; i++) + { + builder.Append(ToHexString(b[offset + i])); + builder.Append(" "); + } + + return builder.ToString(); + } + + public static int UrShift(int number, int bits) + { + if (number >= 0) + { + return (number >> bits); + } + + return ((number >> bits) + (2 << ~bits)); + } + + public static int UrShift(int number, long bits) + { + return UrShift(number, (int)bits); + } + + public static long UrShift(long number, int bits) + { + if (number >= 0L) + { + return (number >> bits); + } + + return ((number >> bits) + (2L << ~bits)); + } + + public static long UrShift(long number, long bits) + { + return UrShift(number, (int)bits); + } + + public static void WriteStackTrace(Exception throwable, TextWriter stream) + { + stream.Write(throwable.StackTrace); + stream.Flush(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Value.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Value.cs new file mode 100644 index 0000000..65aa6ce --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1Value.cs @@ -0,0 +1,169 @@ +using GostCryptography.Properties; +using System; +using System.Text; + +namespace GostCryptography.Asn1.Ber +{ + public static class Asn1Value + { + private static byte[] AllocBitArray(int numbits) + { + var num = numbits / 8; + + if ((numbits % 8) != 0) + { + num++; + } + + return new byte[num]; + } + + public static byte[] ParseString(string data) + { + return ParseString(data, null); + } + + public static byte[] ParseString(string data, IntHolder numbits) + { + char ch; + int num; + int num2; + int num3; + int num4; + int num5; + + char ch2 = data[0]; + byte[] buffer; + + switch (ch2) + { + case '\'': + case '"': + if (!data.EndsWith("B")) + { + if (data.EndsWith("H")) + { + var builder = new StringBuilder(); + num3 = (data.Length - 3) * 4; + buffer = AllocBitArray(num3); + builder.Length = 2; + num = 1; + num2 = 0; + ch = '\0'; + + while ((num < data.Length) && (ch != ch2)) + { + ch = data[num++]; + + if (ch != ch2) + { + builder[0] = ch; + ch = (num >= data.Length) ? '0' : data[num]; + builder[1] = (ch == ch2) ? '0' : ch; + buffer[num2++] = (byte)Convert.ToInt32(builder.ToString(), 0x10); + } + + num++; + } + } + else + { + if (data[data.Length - 1] != ch2) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ValueParseException, data, data.Length - 1); + } + + num3 = (data.Length - 2) * 8; + buffer = AllocBitArray(num3); + num = 1; + ch = '\0'; + + while ((num < data.Length) && (ch != ch2)) + { + ch = data[num]; + + if (ch != ch2) + { + buffer[num - 1] = (byte)ch; + } + + num++; + } + } + + return SetNumBits(numbits, num3, buffer); + } + + num3 = data.Length - 3; + buffer = AllocBitArray(num3); + num5 = 0x80; + num = 1; + num4 = 0; + num2 = 0; + + while (num < data.Length) + { + ch = data[num]; + + if (ch == '1') + { + num4 |= num5; + } + else + { + if (ch == ch2) + { + break; + } + if (ch != '0') + { + ExceptionUtility.CryptographicException(Resources.Asn1ValueParseException, data, num); + } + } + + num5 = num5 >> 1; + + if (num5 == 0) + { + buffer[num2++] = (byte)num4; + num5 = 0x80; + num4 = 0; + } + + num++; + } + break; + default: + num3 = data.Length * 8; + buffer = AllocBitArray(num3); + num = 0; + + while (num < data.Length) + { + ch = data[num]; + buffer[num] = (byte)ch; + num++; + } + + return SetNumBits(numbits, num3, buffer); + } + + if (num5 != 0x80) + { + buffer[num2] = (byte)num4; + } + + return SetNumBits(numbits, num3, buffer); + } + + private static byte[] SetNumBits(IntHolder numbits, int num3, byte[] buffer) + { + if (numbits != null) + { + numbits.Value = num3; + } + + return buffer; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VarWidthCharString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VarWidthCharString.cs new file mode 100644 index 0000000..c21518c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VarWidthCharString.cs @@ -0,0 +1,21 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public abstract class Asn1VarWidthCharString : Asn1CharString + { + public const int BitsPerCharA = 8; + public const int BitsPerCharU = 8; + + protected internal Asn1VarWidthCharString(short typeCode) + : base(typeCode) + { + } + + protected internal Asn1VarWidthCharString(string data, short typeCode) + : base(data, typeCode) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VideotexString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VideotexString.cs new file mode 100644 index 0000000..ac88d0c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VideotexString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1VideotexString : Asn1VarWidthCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, VideoTexStringTypeCode); + + public Asn1VideotexString() + : base(VideoTexStringTypeCode) + { + } + + public Asn1VideotexString(string data) + : base(data, VideoTexStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VisibleString.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VisibleString.cs new file mode 100644 index 0000000..276b171 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Asn1VisibleString.cs @@ -0,0 +1,35 @@ +using System; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class Asn1VisibleString : Asn18BitCharString + { + public static readonly Asn1Tag Tag = new Asn1Tag(0, 0, VisibleStringTypeCode); + + public Asn1VisibleString() + : base(VisibleStringTypeCode) + { + } + + public Asn1VisibleString(string data) + : base(data, VisibleStringTypeCode) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + Decode(buffer, explicitTagging, implicitLength, Tag); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + return Encode(buffer, explicitTagging, Tag); + } + + public override void Encode(Asn1BerOutputStream outs, bool explicitTagging) + { + outs.EncodeCharString(Value, explicitTagging, Tag); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/BigInteger.cs b/Hcs.Client/GostCryptography/Asn1/Ber/BigInteger.cs new file mode 100644 index 0000000..ce6e07e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/BigInteger.cs @@ -0,0 +1,809 @@ +using System; + +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Ber +{ + [Serializable] + public class BigInteger + { + private const int AddressBits = 3; + private const int BitIndexMask = 7; + private const int BitsPerUnit = 8; + internal const int MaxBigIntLen = 100000; + private const int UnitMask = -1; + + [NonSerialized] + private static readonly int[] BitsPerDigit = + { + 0, 0, 0x400, 0x658, 0x800, 0x94a, 0xa58, 0xb3b, 0xc00, 0xcaf, 0xd4a, 0xdd7, 0xe58, 0xece, 0xf3b, 0xfa1, + 0x1000, 0x105a, 0x10af, 0x10fe, 0x114a, 0x1192, 0x11d7, 0x1219, 0x1258, 0x1294, 0x12ce, 0x1306, 0x133b, 0x136f, 0x13a1, 0x13d2, + 0x1400, 0x142e, 0x145a, 0x1485, 0x14af + }; + + [NonSerialized] + private static readonly int[] ByteRadix = + { + 0, 0, 0x80, 0, 0, 0, 0, 0, 0x40, 0, 100, 0, 0, 0, 0, 0, 0x10 + }; + + [NonSerialized] + private static readonly int[] DigitsPerByte = + { + 0, 0, 7, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1 + }; + + private static readonly byte[] Zero = new byte[0]; + + [NonSerialized] + private int _sign; + + [NonSerialized] + private byte[] _value; + + public BigInteger() + { + _value = Zero; + _sign = 0; + } + + public BigInteger(long value) + : this(value.ToString()) + { + } + + public BigInteger(string value) + { + Init(value, 10); + } + + public BigInteger(byte[] value, int sign) + { + _value = value; + _sign = sign; + } + + public BigInteger(string value, int radix) + { + Init(value, radix); + } + + private static int BitsLeftOf(int x) + { + if (x != 0) + { + return (UnitMask << (BitsPerUnit - x)); + } + + return UnitMask; + } + + private static void DestructiveMulAdd(byte[] x, int y, byte z) + { + var num = (byte)(y & 0xff); + var num2 = z; + var length = x.Length; + var num5 = 0; + + for (var i = length - 1; i >= 0; i--) + { + var num4 = (num * x[i]) + num5; + x[i] = (byte)num4; + num5 = num4 >> BitsPerUnit; + } + + var num7 = x[length - 1] + num2; + x[length - 1] = (byte)num7; + num5 = num7 >> BitsPerUnit; + + for (var j = length - 2; j >= 0; j--) + { + num7 = x[j] + num5; + x[j] = (byte)num7; + num5 = num7 >> BitsPerUnit; + } + } + + private static void DivideByInt(ref BigInteger divident, int divisor, ref BigInteger quotient, ref int reminder) + { + var index = 0; + var num3 = 4; + var num4 = 0; + var num5 = 0; + + if (divisor == 0) + { + return; + } + + reminder = 0; + + if (divident._sign == 0) + { + quotient._sign = 0; + quotient._value = Zero; + return; + } + + quotient._value = new byte[divident._value.Length]; + + var num2 = quotient._value.Length - 1; + quotient._sign = ((quotient._sign * divisor) > 0) ? 1 : -1; + + var num6 = divident._value.Length * 2; + + while (num4 < num6) + { + num5 = num5 << 4; + num4++; + num5 |= (divident._value[index] >> num3) & 15; + + if (num3 == 0) + { + num3 = 4; + index++; + } + else + { + num3 = 0; + } + + ShiftLeft(quotient, 4); + + if (num5 >= divisor) + { + quotient._value[num2] = (byte)(quotient._value[num2] | ((byte)((num5 / divisor) & 15))); + num5 = num5 % divisor; + } + + reminder = num5; + } + + quotient._value = RemoveLeadingZeroBytes(quotient._value); + } + + public bool Equals(long value) + { + return Equals(new BigInteger(value)); + } + + public override bool Equals(object value) + { + var integer = value as BigInteger; + + if (integer == null) + { + return false; + } + + if (_value.Length != integer._value.Length) + { + return false; + } + + for (var i = 0; i < _value.Length; i++) + { + if (_value[i] != integer._value[i]) + { + return false; + } + } + + return true; + } + + private static void FastCopy(ref BigInteger src, ref BigInteger dst) + { + dst._value = new byte[src._value.Length]; + Array.Copy(src._value, 0, dst._value, 0, src._value.Length); + dst._sign = src._sign; + } + + private BigInteger GetCopy() + { + var integer = new BigInteger(); + + if (_value.Length > 0) + { + integer._value = new byte[_value.Length]; + Array.Copy(_value, 0, integer._value, 0, _value.Length); + } + else + { + integer._value = Zero; + } + + integer._sign = _sign; + + return integer; + } + + private BigInteger GetCopyAndInverse() + { + var integer = new BigInteger(); + + if (_value.Length > 0) + { + integer._value = new byte[_value.Length]; + + if (_sign < 0) + { + integer._value = GetData(); + integer._sign = 1; + return integer; + } + + Array.Copy(_value, 0, integer._value, 0, _value.Length); + integer._sign = _sign; + + return integer; + } + + integer._value = Zero; + + return integer; + } + + public byte[] GetData() + { + int num2; + var dataLen = GetDataLen(); + var index = _value.Length - 1; + var num4 = dataLen - 1; + + if (_sign == 0) + { + return Zero; + } + + var buffer = new byte[dataLen]; + + if (_sign >= 0) + { + num2 = _value.Length - 1; + + while (((num2 >= 0) && (num4 >= 0)) && (index >= 0)) + { + buffer[num4] = _value[index]; + num2--; + num4--; + index--; + } + + if ((dataLen - _value.Length) > 0) + { + buffer[num4] = 0; + } + + return buffer; + } + + num2 = _value.Length - 1; + + while (((num2 >= 0) && (num4 >= 0)) && (index >= 0)) + { + unchecked + { + buffer[num4] = (byte)-_value[index]; + } + + if (_value[index] != 0) + { + num2--; + num4--; + index--; + break; + } + + num2--; + num4--; + index--; + } + + while (((num2 >= 0) && (num4 >= 0)) && (index >= 0)) + { + unchecked + { + buffer[num4] = (byte)~_value[index]; + } + + num2--; + num4--; + index--; + } + + if ((dataLen - _value.Length) > 0) + { + buffer[num4] = 0xff; + } + + return buffer; + } + + private int GetDataLen() + { + if (_sign == 0) + { + return 1; + } + + if ((_sign > 0) && ((_value[0] & 0x80) != 0)) + { + return (_value.Length + 1); + } + + if (_sign < 0) + { + var num = _value[0]; + + if ((_value.Length == 1) || ((_value.Length > 1) && (_value[1] == 0))) + { + num = (byte)~(num - 1); + } + else + { + unchecked + { + num = (byte)~num; + } + } + + if ((num & 0x80) == 0) + { + return (_value.Length + 1); + } + } + + return _value.Length; + } + + public override int GetHashCode() + { + if (_value == null) + { + return base.GetHashCode(); + } + + if (_value.Length == 0) + { + return base.GetHashCode(); + } + + var num = 0; + var num2 = (_value.Length > 20) ? 20 : _value.Length; + + for (var i = 0; i < num2; i++) + { + num ^= _value[i]; + } + + return num; + } + + public void Init(string val, int radix) + { + var str = ""; + + if (val[0] == '-') + { + val = val.Substring(1); + str = "-"; + } + + if (val.StartsWith("0x")) + { + radix = 0x10; + val = val.Substring(2); + } + else if (val.StartsWith("0b")) + { + radix = 2; + val = val.Substring(2); + } + else if (val.StartsWith("0o")) + { + radix = 8; + val = val.Substring(2); + } + + val = str + val; + var startIndex = 0; + var length = val.Length; + + if (((radix != 2) && (radix != 0x10)) && ((radix != 10) && (radix != 8))) + { + throw new FormatException(Resources.Asn1InvalidFormatForBigIntegerValue); + } + + if (val.Length == 0) + { + throw new FormatException(Resources.Asn1ZeroLengthBigInteger); + } + + _sign = 1; + + var index = val.IndexOf('-'); + + if (index != -1) + { + if (index != 0) + { + throw new FormatException(Resources.Asn1IllegalEmbeddedMinusSign); + } + + if (val.Length == 1) + { + throw new FormatException(Resources.Asn1ZeroLengthBigInteger); + } + + _sign = -1; + + startIndex = 1; + } + + while ((startIndex < length) && (val[startIndex] == '0')) + { + startIndex++; + } + + if (startIndex == length) + { + _sign = 0; + _value = Zero; + } + else + { + var num2 = length - startIndex; + var num5 = Asn1Util.UrShift(num2 * BitsPerDigit[radix], 10) + 1; + var num1 = (num5 + 0x1f) / 0x20; + + _value = new byte[num2]; + + var num6 = num2 % DigitsPerByte[radix]; + + if (num6 == 0) + { + num6 = DigitsPerByte[radix]; + } + + var str2 = val.Substring(startIndex, num6); + startIndex += num6; + + _value[_value.Length - 1] = Convert.ToByte(str2, radix); + + if (_value[_value.Length - 1] < 0) + { + throw new FormatException(Resources.Asn1IllegalDigit); + } + + var y = ByteRadix[radix]; + byte z; + + while (startIndex < val.Length) + { + str2 = val.Substring(startIndex, DigitsPerByte[radix]); + startIndex += DigitsPerByte[radix]; + z = Convert.ToByte(str2, radix); + + if (z < 0) + { + throw new FormatException(Resources.Asn1IllegalDigit); + } + + DestructiveMulAdd(_value, y, z); + } + + _value = TrustedStripLeadingZeroInts(_value); + } + } + + private static string IntToStr(long value, int radix) + { + var chArray = new char[0x22]; + var num = 0; + var str = ""; + + if ((radix >= 2) && (radix <= 0x10)) + { + while (num < 0x22) + { + chArray[num++] = (char)((ushort)(value % radix)); + + if ((value /= radix) == 0L) + { + break; + } + } + + while (num != 0) + { + var ch = chArray[--num]; + + if (ch < '\n') + { + str = str + ((char)(ch + '0')); + } + else + { + str = str + ((char)((ch - '\n') + 0x41)); + } + } + } + + return str; + } + + public bool IsNegative() + { + return (_sign < 0); + } + + private char NibbleToHexChar(int b) + { + if ((b >= 0) && (b <= 9)) + { + return (char)(b + 0x30); + } + + if ((b >= 10) && (b <= 15)) + { + return (char)((b - 10) + 0x61); + } + + return '?'; + } + + public static implicit operator BigInteger(long value) + { + return new BigInteger(value); + } + + private static byte[] RemoveLeadingZeroBytes(byte[] data) + { + if (data.Length == 0) + { + return data; + } + + var index = 0; + + while ((index < data.Length) && (data[index] == 0)) + { + index++; + } + + var destinationArray = new byte[data.Length - index]; + Array.Copy(data, index, destinationArray, 0, data.Length - index); + + return destinationArray; + } + + public void SetData(byte[] ivalue) + { + if (ivalue.Length > MaxBigIntLen) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1TooBigIntegerValue, ivalue.Length); + } + + if ((ivalue.Length > 0) && ((ivalue[0] & 0x80) != 0)) + { + var index = 0; + var num = 0; + + _sign = -1; + + while ((num < ivalue.Length) && (ivalue[index] == 0xff)) + { + num++; + index++; + } + + var num2 = num; + + while ((num2 < ivalue.Length) && (ivalue[index] == 0)) + { + num2++; + index++; + } + + var num3 = (num2 == ivalue.Length) ? 1 : 0; + _value = new byte[(ivalue.Length - num) + num3]; + index = num; + + var num4 = num; + + while (num < ivalue.Length) + { + unchecked + { + _value[(num - num4) + num3] = (byte)~ivalue[index]; + } + + num++; + index++; + } + + for (num = _value.Length - 1; (_value[num] = (byte)(_value[num] + 1)) == 0; num--) + { + } + + _value = RemoveLeadingZeroBytes(_value); + } + else + { + _value = RemoveLeadingZeroBytes(ivalue); + _sign = (ivalue.Length == 0) ? 0 : 1; + } + } + + private static int ShiftLeft(BigInteger data, uint shift) + { + var value = data._value; + var length = value.Length; + var index = (int)(shift >> AddressBits); + var num3 = ((int)shift) & BitIndexMask; + var num4 = 8 - num3; + var num5 = 0; + var num7 = length; + + if (length != 0) + { + length = length << AddressBits; + var num6 = (int)((((length - shift) + 8L) - 1L) >> AddressBits); + + while (num5 < (num6 - 1)) + { + value[num5++] = (byte)((value[index] << num3) | ((num4 == 8) ? 0 : (value[index + 1] >> num4))); + index++; + } + + length &= BitIndexMask; + value[num5] = (num7 == num6) ? ((byte)((value[index] & BitsLeftOf(length)) << num3)) : ((byte)((value[index] << num3) | ((num4 == 8) ? 0 : ((value[index + 1] & BitsLeftOf(length)) >> num4)))); + + if (num6 < num7) + { + for (var i = num6; i < (num7 - num6); i++) + { + value[i] = 0; + } + } + } + + return 0; + } + + public override string ToString() + { + return ToString(10); + } + + public string ToString(int radix) + { + if ((radix == 2) || (radix == 0x10)) + { + int num; + int num2; + + if (radix == 2) + { + num2 = 8; + num = 1; + } + else + { + num2 = 2; + num = 4; + } + + var num3 = num2 * GetDataLen(); + var chArray = new char[num3]; + var index = num3 - 1; + + for (var i = _value.Length - 1; i >= 0; i--) + { + byte num6; + int num8; + + if (_sign < 0) + { + unchecked + { + num6 = (byte)~_value[i]; + } + + if ((_sign < 0) && ((num6 = (byte)(num6 + 1)) != 0)) + { + _sign = 0; + } + } + else + { + num6 = _value[i]; + } + + var num7 = num8 = 0; + + while (num7 < num2) + { + var b = (num6 >> num8) & ((1 << num) - 1); + chArray[index] = NibbleToHexChar(b); + num7++; + index--; + num8 += num; + } + } + + while (index >= 0) + { + chArray[index--] = '0'; + } + + return new string(chArray); + } + + var reminder = 0; + var str = ""; + var quotient = new BigInteger(); + + var copy = (radix == 10) ? GetCopy() : GetCopyAndInverse(); + + do + { + DivideByInt(ref copy, ByteRadix[radix], ref quotient, ref reminder); + var str2 = IntToStr(reminder, radix); + var length = str2.Length; + + str = str2 + str; + + if ((quotient._value.Length != 0) || (radix != 10)) + { + int num12; + + for (num12 = length; num12 < DigitsPerByte[radix]; num12++) + { + str = '0' + str; + } + + FastCopy(ref quotient, ref copy); + + if (((quotient._value.Length == 0) && (_sign > 0)) && ((radix != 10) && ((reminder & 0x80) != 0))) + { + str = '0' + str; + } + } + else if ((_sign < 0) && (radix == 10)) + { + str = '-' + str; + } + + } + while ((quotient._value != null) && (quotient._value.Length != 0)); + + return str; + } + + private static byte[] TrustedStripLeadingZeroInts(byte[] val) + { + var index = 0; + + while ((index < val.Length) && (val[index] == 0)) + { + index++; + } + + if (index <= 0) + { + return val; + } + + var buffer = new byte[val.Length - index]; + + for (var i = 0; i < (val.Length - index); i++) + { + buffer[i] = val[index + i]; + } + + return buffer; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1InputStream.cs b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1InputStream.cs new file mode 100644 index 0000000..81df7f9 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1InputStream.cs @@ -0,0 +1,12 @@ +namespace GostCryptography.Asn1.Ber +{ + public interface IAsn1InputStream + { + int Available(); + void Close(); + void Mark(); + bool MarkSupported(); + void Reset(); + long Skip(long nbytes); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1NamedEventHandler.cs b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1NamedEventHandler.cs new file mode 100644 index 0000000..dfc2b82 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1NamedEventHandler.cs @@ -0,0 +1,9 @@ +namespace GostCryptography.Asn1.Ber +{ + public interface IAsn1NamedEventHandler + { + void Characters(string svalue, short typeCode); + void EndElement(string name, int index); + void StartElement(string name, int index); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1TaggedEventHandler.cs b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1TaggedEventHandler.cs new file mode 100644 index 0000000..f7c2260 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1TaggedEventHandler.cs @@ -0,0 +1,9 @@ +namespace GostCryptography.Asn1.Ber +{ + public interface IAsn1TaggedEventHandler + { + void Contents(byte[] data); + void EndElement(Asn1Tag tag); + void StartElement(Asn1Tag tag, int len, byte[] tagLenBytes); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1Type.cs b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1Type.cs new file mode 100644 index 0000000..35d188c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/IAsn1Type.cs @@ -0,0 +1,12 @@ +using System.IO; + +namespace GostCryptography.Asn1.Ber +{ + public interface IAsn1Type + { + void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength); + int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging); + void Encode(Asn1BerOutputStream outs, bool explicitTagging); + void Print(TextWriter outs, string varName, int level); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/IntHolder.cs b/Hcs.Client/GostCryptography/Asn1/Ber/IntHolder.cs new file mode 100644 index 0000000..185a41f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/IntHolder.cs @@ -0,0 +1,16 @@ +namespace GostCryptography.Asn1.Ber +{ + public class IntHolder + { + public int Value; + + public IntHolder() + { + } + + public IntHolder(int value) + { + Value = value; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Ber/Tokenizer.cs b/Hcs.Client/GostCryptography/Asn1/Ber/Tokenizer.cs new file mode 100644 index 0000000..016bed8 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Ber/Tokenizer.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections; + +namespace GostCryptography.Asn1.Ber +{ + class Tokenizer : IEnumerator + { + private readonly char[] _chars; + private readonly bool _includeDelims; + private long _currentPos; + private string _delimiters; + + public Tokenizer(string source) + { + _delimiters = " \t\n\r\f"; + _chars = source.ToCharArray(); + } + + public Tokenizer(string source, string delimiters) + : this(source) + { + _delimiters = delimiters; + } + + public Tokenizer(string source, string delimiters, bool includeDelims) + : this(source, delimiters) + { + _includeDelims = includeDelims; + } + + public int Count + { + get + { + int num3; + var currentPos = _currentPos; + var num2 = 0; + + try + { + while (true) + { + NextToken(); + num2++; + } + } + catch (ArgumentOutOfRangeException) + { + _currentPos = currentPos; + num3 = num2; + } + + return num3; + } + } + + public bool MoveNext() + { + return HasMoreTokens(); + } + + public void Reset() + { + } + + public object Current + { + get { return NextToken(); } + } + + public bool HasMoreTokens() + { + var currentPos = _currentPos; + + try + { + NextToken(); + } + catch (ArgumentOutOfRangeException) + { + return false; + } + finally + { + _currentPos = currentPos; + } + + return true; + } + + public string NextToken() + { + return NextToken(_delimiters); + } + + public string NextToken(string delimiters) + { + _delimiters = delimiters; + + var array = delimiters.ToCharArray(); + + if (_currentPos == _chars.Length) + { + throw ExceptionUtility.ArgumentOutOfRange("delimiters"); + } + + if ((Array.IndexOf(array, _chars[(int)((IntPtr)_currentPos)], 0, array.Length) != -1) && _includeDelims) + { + long num; + _currentPos = (num = _currentPos) + 1L; + + return ("" + _chars[(int)((IntPtr)num)]); + } + + return NextToken(delimiters.ToCharArray()); + } + + private string NextToken(char[] delimiters) + { + var str = ""; + var currentPos = _currentPos; + + while (Array.IndexOf(delimiters, _chars[(int)((IntPtr)_currentPos)], 0, delimiters.Length) != -1) + { + if ((_currentPos += 1L) == _chars.Length) + { + _currentPos = currentPos; + + throw ExceptionUtility.ArgumentOutOfRange("delimiters"); + } + } + + while (Array.IndexOf(delimiters, _chars[(int)((IntPtr)_currentPos)], 0, delimiters.Length) == -1) + { + str = str + _chars[(int)((IntPtr)_currentPos)]; + + if ((_currentPos += 1L) == _chars.Length) + { + return str; + } + } + + return str; + } + + public string RemainingString() + { + if ((_chars != null) && (_currentPos < _chars.Length)) + { + return new string(_chars, (int)_currentPos, _chars.Length); + } + + return null; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/GostAsn1Choice.cs b/Hcs.Client/GostCryptography/Asn1/Gost/GostAsn1Choice.cs new file mode 100644 index 0000000..9198ad3 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/GostAsn1Choice.cs @@ -0,0 +1,72 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost +{ + public abstract class GostAsn1Choice : Asn1Choice + { + private const byte Null = 1; + private const byte Params = 2; + + protected abstract short TagForm { get; } + protected abstract int TagIdCode { get; } + protected abstract Asn1Type CreateParams(); + + public override string ElemName + { + get + { + switch (ChoiceId) + { + case Null: + return "null_"; + case Params: + return "params_"; + } + + return "UNDEFINED"; + } + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var tag = new Asn1Tag(); + buffer.Mark(); + + var num = buffer.DecodeTagAndLength(tag); + + if (tag.Equals(0, 0, NullTypeCode)) + { + buffer.Reset(); + + SetElement(Null, new NullParams()); + Element.Decode(buffer, true, num); + } + else + { + if (!tag.Equals(0, TagForm, TagIdCode)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidChoiceOptionTagException, tag, buffer.ByteCount); + } + + buffer.Reset(); + + SetElement(Params, CreateParams()); + Element.Decode(buffer, true, num); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + switch (ChoiceId) + { + case Null: + return GetElement().Encode(buffer, true); + case Params: + return GetElement().Encode(buffer, true); + } + + throw ExceptionUtility.CryptographicException(Resources.Asn1InvalidChoiceOptionException); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_BlobParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_BlobParams.cs new file mode 100644 index 0000000..f37e6d1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_BlobParams.cs @@ -0,0 +1,69 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_BlobParams : Asn1Type + { + public Asn1ObjectIdentifier EncryptionParamSet { get; set; } + + public Asn1OpenExt ExtElement { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptionParamSet = null; + ExtElement = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptionParamSet = new Asn1ObjectIdentifier(); + EncryptionParamSet.Decode(buffer, true, parsedLen.Value); + + if (!context.Expired()) + { + if (buffer.PeekTag().Equals(0, 0, ObjectIdentifierTypeCode)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1SeqOrderException); + } + + ExtElement = new Asn1OpenExt(); + + while (!context.Expired()) + { + ExtElement.DecodeComponent(buffer); + } + } + else + { + ExtElement = null; + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (ExtElement != null) + { + len += ExtElement.Encode(buffer, false); + } + + len += EncryptionParamSet.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Constants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Constants.cs new file mode 100644 index 0000000..371f931 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Constants.cs @@ -0,0 +1,10 @@ +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public static class Gost_28147_89_Constants + { + /// + /// Алгоритм шифрования ГОСТ 28147-89 + /// + public static readonly OidValue EncryptAlgorithm = OidValue.FromString("1.2.643.2.2.21"); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_EncryptedKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_EncryptedKey.cs new file mode 100644 index 0000000..d4d551f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_EncryptedKey.cs @@ -0,0 +1,82 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_EncryptedKey : Asn1Type + { + public Gost_28147_89_Key EncryptedKey { get; set; } + + public Gost_28147_89_Mac MacKey { get; set; } + + public Gost_28147_89_Key MaskKey { get; set; } + + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptedKey = null; + MacKey = null; + MaskKey = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, OctetStringTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptedKey = new Gost_28147_89_Key(); + EncryptedKey.Decode(buffer, true, parsedLen.Value); + + if (context.MatchElemTag(0x80, 0, EocTypeCode, parsedLen, true)) + { + MaskKey = new Gost_28147_89_Key(); + MaskKey.Decode(buffer, false, parsedLen.Value); + } + + if (!context.MatchElemTag(0, 0, OctetStringTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + MacKey = new Gost_28147_89_Mac(); + MacKey.Decode(buffer, true, parsedLen.Value); + + if (MacKey.Length != 4) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(MacKey.Length), MacKey.Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (MacKey.Length != 4) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(MacKey.Length), MacKey.Length); + } + + len += MacKey.Encode(buffer, true); + + if (MaskKey != null) + { + var maskKeyLen = MaskKey.Encode(buffer, false); + len += maskKeyLen; + len += buffer.EncodeTagAndLength(0x80, 0, EocTypeCode, maskKeyLen); + } + + len += EncryptedKey.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Iv.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Iv.cs new file mode 100644 index 0000000..465c06c --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Iv.cs @@ -0,0 +1,35 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_Iv : Asn1OctetString + { + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + base.Decode(buffer, explicitTagging, implicitLength); + + if (Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + + var len = base.Encode(buffer, false); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Key.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Key.cs new file mode 100644 index 0000000..8c8cd3e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Key.cs @@ -0,0 +1,44 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_Key : Asn1OctetString + { + public Gost_28147_89_Key() + { + } + + public Gost_28147_89_Key(byte[] data) + : base(data) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + base.Decode(buffer, explicitTagging, implicitLength); + + if (Length != 32) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (Length != 32) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + + var len = base.Encode(buffer, false); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyExchangeInfo.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyExchangeInfo.cs new file mode 100644 index 0000000..be1d1a7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyExchangeInfo.cs @@ -0,0 +1,151 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + /// + /// Информация о зашифрованном ключе ГОСТ 28147-89 + /// + public sealed class Gost_28147_89_KeyExchangeInfo + { + /// + /// Идентификатор OID параметров шифрования + /// + public string EncryptionParamSet { get; set; } + + /// + /// Зашифрованный ключ + /// + public byte[] EncryptedKey { get; set; } + + /// + /// Контрольная сумма зашифрованного ключа (Message Authentication Code, MAC) + /// + public byte[] Mac { get; set; } + + /// + /// Материал ключа пользователя (User Keying Material, UKM) + /// + public byte[] Ukm { get; set; } + + /// + /// Зашифровать информацию о ключе + /// + public void Decode(byte[] data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + try + { + var asnDecoder = new Asn1BerDecodeBuffer(data); + var keyWrap = new Gost_28147_89_KeyWrap(); + keyWrap.Decode(asnDecoder); + + EncryptionParamSet = keyWrap.EncryptedParams.EncryptionParamSet.Oid.Value; + EncryptedKey = keyWrap.EncryptedKey.EncryptedKey.Value; + Mac = keyWrap.EncryptedKey.MacKey.Value; + Ukm = keyWrap.EncryptedParams.Ukm.Value; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, nameof(Gost_28147_89_KeyWrap)); + } + } + + /// + /// Расшифровать информацию о ключе + /// + public byte[] Encode() + { + byte[] data; + + var keyWrap = new Gost_28147_89_KeyWrap(); + + try + { + keyWrap.EncryptedKey = new Gost_28147_89_EncryptedKey + { + EncryptedKey = new Gost_28147_89_Key(EncryptedKey), + MacKey = new Gost_28147_89_Mac(Mac) + }; + + keyWrap.EncryptedParams = new Gost_28147_89_KeyWrapParams + { + EncryptionParamSet = Asn1ObjectIdentifier.FromString(EncryptionParamSet), + Ukm = new Asn1OctetString(Ukm) + }; + + var asnEncoder = new Asn1BerEncodeBuffer(); + keyWrap.Encode(asnEncoder); + data = asnEncoder.MsgCopy; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, nameof(Gost_28147_89_KeyWrap)); + } + + return data; + } + + + /// + /// Расшифровать идентификатор OID параметров шифрования + /// + public static string DecodeEncryptionParamSet(byte[] data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + string encryptionParamSet; + + try + { + var asnDecoder = new Asn1BerDecodeBuffer(data); + var parameters = new Gost_28147_89_BlobParams(); + parameters.Decode(asnDecoder); + + encryptionParamSet = parameters.EncryptionParamSet.Oid.Value; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, typeof(Gost_28147_89_BlobParams).FullName); + } + + return encryptionParamSet; + } + + /// + /// Зашифровать идентификатор OID параметров шифрования + /// + public static byte[] EncodeEncryptionParamSet(string encryptionParamSet) + { + if (encryptionParamSet == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptionParamSet)); + } + + byte[] data; + + try + { + var parameters = new Gost_28147_89_BlobParams { EncryptionParamSet = Asn1ObjectIdentifier.FromString(encryptionParamSet) }; + + var asnEncoder = new Asn1BerEncodeBuffer(); + parameters.Encode(asnEncoder); + data = asnEncoder.MsgCopy; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1EncodeError, nameof(Gost_28147_89_BlobParams)); + } + + return data; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrap.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrap.cs new file mode 100644 index 0000000..f2181a7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrap.cs @@ -0,0 +1,53 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_KeyWrap : Asn1Type + { + public Gost_28147_89_EncryptedKey EncryptedKey { get; set; } + + public Gost_28147_89_KeyWrapParams EncryptedParams { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptedKey = null; + EncryptedParams = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0x20, SequenceTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptedKey = new Gost_28147_89_EncryptedKey(); + EncryptedKey.Decode(buffer, true, parsedLen.Value); + + if (!context.MatchElemTag(0, 0x20, SequenceTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptedParams = new Gost_28147_89_KeyWrapParams(); + EncryptedParams.Decode(buffer, true, parsedLen.Value); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + len += EncryptedParams.Encode(buffer, true); + len += EncryptedKey.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrapParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrapParams.cs new file mode 100644 index 0000000..f596a15 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_KeyWrapParams.cs @@ -0,0 +1,66 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_KeyWrapParams : Asn1Type + { + public Asn1ObjectIdentifier EncryptionParamSet { get; set; } + + public Asn1OctetString Ukm { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptionParamSet = null; + Ukm = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptionParamSet = new Asn1ObjectIdentifier(); + EncryptionParamSet.Decode(buffer, true, parsedLen.Value); + + if (context.MatchElemTag(0, 0, OctetStringTypeCode, parsedLen, false)) + { + Ukm = new Asn1OctetString(); + Ukm.Decode(buffer, true, parsedLen.Value); + + if (Ukm.Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Ukm.Length), Ukm.Length); + } + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (Ukm != null) + { + if (Ukm.Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Ukm.Length), Ukm.Length); + } + + len += Ukm.Encode(buffer, true); + } + + len += EncryptionParamSet.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Mac.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Mac.cs new file mode 100644 index 0000000..9ec6f55 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Mac.cs @@ -0,0 +1,44 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_Mac : Asn1OctetString + { + public Gost_28147_89_Mac() + { + } + + public Gost_28147_89_Mac(byte[] data) + : base(data) + { + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + base.Decode(buffer, explicitTagging, implicitLength); + + if ((Length < 1) || (Length > 4)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if ((Length < 1) || (Length > 4)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + + var len = base.Encode(buffer, false); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Params.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Params.cs new file mode 100644 index 0000000..3f24b53 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_28147_89/Gost_28147_89_Params.cs @@ -0,0 +1,54 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_28147_89 +{ + public sealed class Gost_28147_89_Params : Asn1Type + { + public Asn1ObjectIdentifier EncryptionParamSet { get; private set; } + + public Gost_28147_89_Iv Iv { get; private set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptionParamSet = null; + Iv = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, OctetStringTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + Iv = new Gost_28147_89_Iv(); + Iv.Decode(buffer, true, parsedLen.Value); + + if (!context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptionParamSet = new Asn1ObjectIdentifier(); + EncryptionParamSet.Decode(buffer, true, parsedLen.Value); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + len += EncryptionParamSet.Encode(buffer, true); + len += Iv.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchange.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchange.cs new file mode 100644 index 0000000..27e07c8 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchange.cs @@ -0,0 +1,161 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.PublicKey; +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + /// + /// Информация о ключе цифровой подписи ГОСТ Р 34.10 + /// + public abstract class Gost_R3410_KeyExchange + { + /// + /// Информация о зашифрованном ключе ГОСТ 28147-89 + /// + public Gost_28147_89_KeyExchangeInfo SessionEncryptedKey { get; set; } + + /// + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + /// + public Gost_R3410_KeyExchangeParams TransportParameters { get; set; } + + protected abstract OidValue KeyAlgorithm { get; } + + protected abstract Gost_R3410_PublicKeyParams CreatePublicKeyParams(); + + protected abstract Gost_R3410_KeyExchangeParams CreateKeyExchangeParams(); + + /// + /// Расшифровать информацию о ключе + /// + public void Decode(byte[] data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + try + { + var asnDecoder = new Asn1BerDecodeBuffer(data); + var keyTransport = new Gost_R3410_KeyTransport(); + keyTransport.Decode(asnDecoder); + DecodeSessionKey(keyTransport); + DecodePublicKey(keyTransport); + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, nameof(Gost_R3410_KeyTransport)); + } + } + + private void DecodeSessionKey(Gost_R3410_KeyTransport keyTransport) + { + SessionEncryptedKey = new Gost_28147_89_KeyExchangeInfo + { + EncryptionParamSet = keyTransport.TransportParams.EncryptionParamSet.Oid.Value, + EncryptedKey = keyTransport.SessionEncryptedKey.EncryptedKey.Value, + Mac = keyTransport.SessionEncryptedKey.MacKey.Value, + Ukm = keyTransport.TransportParams.Ukm.Value + }; + } + + private void DecodePublicKey(Gost_R3410_KeyTransport keyTransport) + { + var publicKeyInfo = keyTransport.TransportParams.EphemeralPublicKey; + var publicKeyAlgOid = publicKeyInfo.Algorithm.Algorithm.Oid.Value; + + if (!publicKeyAlgOid.Equals(KeyAlgorithm.Value)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1DecodeAlg, publicKeyAlgOid); + } + + var choice = publicKeyInfo.Algorithm.Parameters as Asn1Choice; + + if (choice == null) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1DecodeAlgorithmParameters); + } + + var publicKeyParams = choice.GetElement() as Gost_R3410_PublicKeyParams; + + if (publicKeyParams == null) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1DecodeAlgorithmParameters); + } + + var asnDecoder = new Asn1BerDecodeBuffer(publicKeyInfo.SubjectPublicKey.Value); + var publicKey = new Asn1OctetString(); + publicKey.Decode(asnDecoder); + + TransportParameters = CreateKeyExchangeParams(); + TransportParameters.PublicKeyParamSet = publicKeyParams.PublicKeyParamSet.Oid.Value; + TransportParameters.DigestParamSet = publicKeyParams.DigestParamSet?.Oid.Value; + TransportParameters.EncryptionParamSet = publicKeyParams.EncryptionParamSet?.Oid.Value; + TransportParameters.PublicKey = publicKey.Value; + TransportParameters.PrivateKey = null; + } + + /// + /// Зашифровать информацию о ключе + /// + public byte[] Encode() + { + var asnEncoder = new Asn1BerEncodeBuffer(); + var keyTransport = new Gost_R3410_KeyTransport(); + + try + { + keyTransport.SessionEncryptedKey = new Gost_28147_89_EncryptedKey + { + EncryptedKey = new Gost_28147_89_Key(SessionEncryptedKey.EncryptedKey), + MacKey = new Gost_28147_89_Mac(SessionEncryptedKey.Mac) + }; + + keyTransport.TransportParams = new Gost_R3410_TransportParams + { + EncryptionParamSet = Asn1ObjectIdentifier.FromString(SessionEncryptedKey.EncryptionParamSet), + EphemeralPublicKey = EncodePublicKey(TransportParameters), + Ukm = new Asn1OctetString(SessionEncryptedKey.Ukm) + }; + + keyTransport.Encode(asnEncoder); + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1EncodeError, nameof(Gost_R3410_KeyTransport)); + } + + return asnEncoder.MsgCopy; + } + + private SubjectPublicKeyInfo EncodePublicKey(Gost_R3410_KeyExchangeParams transportParameters) + { + var asnEncoder = new Asn1BerEncodeBuffer(); + var publicKey = new Asn1OctetString(transportParameters.PublicKey); + publicKey.Encode(asnEncoder); + + var publicKeyValue = asnEncoder.MsgCopy; + + var publicKeyInfo = new SubjectPublicKeyInfo + { + SubjectPublicKey = new Asn1BitString(publicKeyValue.Length * 8, publicKeyValue) + }; + + var publicKeyParams = CreatePublicKeyParams(); + publicKeyParams.PublicKeyParamSet = Asn1ObjectIdentifier.FromString(transportParameters.PublicKeyParamSet); + publicKeyParams.DigestParamSet = Asn1ObjectIdentifier.FromString(transportParameters.DigestParamSet); + publicKeyParams.EncryptionParamSet = Asn1ObjectIdentifier.FromString(transportParameters.EncryptionParamSet); + + asnEncoder.Reset(); + publicKeyParams.Encode(asnEncoder); + + var publicKeyAlgOid = new Asn1ObjectIdentifier(KeyAlgorithm); + publicKeyInfo.Algorithm = new AlgorithmIdentifier(publicKeyAlgOid, new Asn1OpenType(asnEncoder.MsgCopy)); + + return publicKeyInfo; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchangeParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchangeParams.cs new file mode 100644 index 0000000..4ad1d20 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyExchangeParams.cs @@ -0,0 +1,157 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + /// + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + /// + public abstract class Gost_R3410_KeyExchangeParams + { + protected Gost_R3410_KeyExchangeParams() + { + } + + protected Gost_R3410_KeyExchangeParams(Gost_R3410_KeyExchangeParams other) + { + DigestParamSet = other.DigestParamSet; + PublicKeyParamSet = other.PublicKeyParamSet; + EncryptionParamSet = other.EncryptionParamSet; + PublicKey = other.PublicKey; + PrivateKey = other.PrivateKey; + } + + /// + /// Идентификатор OID параметров хэширования + /// + public string DigestParamSet { get; set; } + + /// + /// Идентификатор OID параметров открытого ключа + /// + public string PublicKeyParamSet { get; set; } + + /// + /// Идентификатор OID параметров шифрования + /// + public string EncryptionParamSet { get; set; } + + /// + /// Открытый ключ + /// + public byte[] PublicKey { get; set; } + + /// + /// Закрытый ключ + /// + public byte[] PrivateKey { get; set; } + + public abstract Gost_R3410_KeyExchangeParams Clone(); + + protected abstract Gost_R3410_PublicKey CreatePublicKey(); + + protected abstract Gost_R3410_PublicKeyParams CreatePublicKeyParams(); + + /// + /// Расшифровать параметры + /// + public void DecodeParameters(byte[] data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + try + { + var asnDecoder = new Asn1BerDecodeBuffer(data); + var publicKeyParams = CreatePublicKeyParams(); + publicKeyParams.Decode(asnDecoder); + + PublicKeyParamSet = publicKeyParams.PublicKeyParamSet.Oid.Value; + DigestParamSet = publicKeyParams.DigestParamSet?.Oid.Value; + EncryptionParamSet = publicKeyParams.EncryptionParamSet?.Oid.Value; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, nameof(Gost_R3410_PublicKeyParams)); + } + } + + /// + /// Зашифровать параметры + /// + public byte[] EncodeParameters() + { + byte[] data; + + try + { + var publicKeyParams = CreatePublicKeyParams(); + publicKeyParams.PublicKeyParamSet = Asn1ObjectIdentifier.FromString(PublicKeyParamSet); + publicKeyParams.DigestParamSet = Asn1ObjectIdentifier.FromString(DigestParamSet); + publicKeyParams.EncryptionParamSet = Asn1ObjectIdentifier.FromString(EncryptionParamSet); + + var asnEncoder = new Asn1BerEncodeBuffer(); + publicKeyParams.Encode(asnEncoder); + data = asnEncoder.MsgCopy; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1EncodeError, nameof(Gost_R3410_PublicKeyParams)); + } + + return data; + } + + + /// + /// Расшифровать публичный ключ + /// + public void DecodePublicKey(byte[] data) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + try + { + var asnDecoder = new Asn1BerDecodeBuffer(data); + var publicKey = CreatePublicKey(); + publicKey.Decode(asnDecoder); + + PublicKey = publicKey.Value; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1DecodeError, nameof(Gost_R3410_PublicKey)); + } + } + + /// + /// Зашифровать публичный ключ + /// + public byte[] EncodePublicKey() + { + byte[] data; + + try + { + var publicKey = CreatePublicKey(); + publicKey.Value = PublicKey; + + var asnEncoder = new Asn1BerEncodeBuffer(); + publicKey.Encode(asnEncoder); + data = asnEncoder.MsgCopy; + } + catch (Exception exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.Asn1EncodeError, nameof(Gost_R3410_PublicKeyParams)); + } + + return data; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyTransport.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyTransport.cs new file mode 100644 index 0000000..386235e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_KeyTransport.cs @@ -0,0 +1,60 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + public sealed class Gost_R3410_KeyTransport : Asn1Type + { + public Gost_28147_89_EncryptedKey SessionEncryptedKey { get; set; } + + public Gost_R3410_TransportParams TransportParams { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + SessionEncryptedKey = null; + TransportParams = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0x20, SequenceTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + SessionEncryptedKey = new Gost_28147_89_EncryptedKey(); + SessionEncryptedKey.Decode(buffer, true, parsedLen.Value); + + if (context.MatchElemTag(0x80, 0x20, EocTypeCode, parsedLen, true)) + { + TransportParams = new Gost_R3410_TransportParams(); + TransportParams.Decode(buffer, false, parsedLen.Value); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (TransportParams != null) + { + var tpLength = TransportParams.Encode(buffer, false); + + len += tpLength; + len += buffer.EncodeTagAndLength(0x80, 0x20, EocTypeCode, tpLength); + } + + len += SessionEncryptedKey.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKey.cs new file mode 100644 index 0000000..bb9ef4f --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKey.cs @@ -0,0 +1,42 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + public abstract class Gost_R3410_PublicKey : Asn1OctetString + { + private readonly int _keySize; + + protected Gost_R3410_PublicKey(int keySize) + { + _keySize = keySize; + } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + base.Decode(buffer, explicitTagging, implicitLength); + + if (Length != _keySize) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + if (Length != _keySize) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Length), Length); + } + + var len = base.Encode(buffer, false); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Tag, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyParams.cs new file mode 100644 index 0000000..d4a4e8e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyParams.cs @@ -0,0 +1,82 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + public abstract class Gost_R3410_PublicKeyParams : Asn1Type + { + public Asn1ObjectIdentifier PublicKeyParamSet { get; set; } + + public Asn1ObjectIdentifier DigestParamSet { get; set; } + + public Asn1ObjectIdentifier EncryptionParamSet { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + PublicKeyParamSet = null; + DigestParamSet = null; + EncryptionParamSet = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + PublicKeyParamSet = new Asn1ObjectIdentifier(); + PublicKeyParamSet.Decode(buffer, true, parsedLen.Value); + } + else + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + if (context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + DigestParamSet = new Asn1ObjectIdentifier(); + DigestParamSet.Decode(buffer, true, parsedLen.Value); + } + + if (context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + EncryptionParamSet = new Asn1ObjectIdentifier(); + EncryptionParamSet.Decode(buffer, true, parsedLen.Value); + } + + if (!context.Expired()) + { + var lastTag = buffer.PeekTag(); + + if (lastTag.Equals(0, 0, ObjectIdentifierTypeCode)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1SeqOrderException); + } + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (EncryptionParamSet != null) + { + len += EncryptionParamSet.Encode(buffer, true); + } + + if (DigestParamSet != null) + { + len += DigestParamSet.Encode(buffer, true); + } + + len += PublicKeyParamSet.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyType.cs new file mode 100644 index 0000000..b482419 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_PublicKeyType.cs @@ -0,0 +1,9 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + public abstract class Gost_R3410_PublicKeyType : GostAsn1Choice + { + protected override short TagForm => 0x20; + + protected override int TagIdCode => SequenceTypeCode; + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_TransportParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_TransportParams.cs new file mode 100644 index 0000000..8ed4ec6 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410/Gost_R3410_TransportParams.cs @@ -0,0 +1,83 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.PublicKey; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.Gost_R3410 +{ + public sealed class Gost_R3410_TransportParams : Asn1Type + { + public Asn1ObjectIdentifier EncryptionParamSet { get; set; } + + public SubjectPublicKeyInfo EphemeralPublicKey { get; set; } + + public Asn1OctetString Ukm { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + EncryptionParamSet = null; + EphemeralPublicKey = null; + Ukm = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + EncryptionParamSet = new Asn1ObjectIdentifier(); + EncryptionParamSet.Decode(buffer, true, parsedLen.Value); + + if (context.MatchElemTag(0x80, 0x20, EocTypeCode, parsedLen, true)) + { + EphemeralPublicKey = new SubjectPublicKeyInfo(); + EphemeralPublicKey.Decode(buffer, false, parsedLen.Value); + } + + if (!context.MatchElemTag(0, 0, OctetStringTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + Ukm = new Asn1OctetString(); + Ukm.Decode(buffer, true, parsedLen.Value); + + if (Ukm.Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Ukm.Length), Ukm.Length); + } + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + + if (Ukm.Length != 8) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(Ukm.Length), Ukm.Length); + } + + len += Ukm.Encode(buffer, true); + + if (EphemeralPublicKey != null) + { + var epkLength = EphemeralPublicKey.Encode(buffer, false); + + len += epkLength; + len += buffer.EncodeTagAndLength(0x80, 0x20, EocTypeCode, epkLength); + } + + len += EncryptionParamSet.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_Constants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_Constants.cs new file mode 100644 index 0000000..200d666 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_Constants.cs @@ -0,0 +1,25 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public static class Gost_R3410_2001_Constants + { + /// + /// Алгоритм ГОСТ Р 34.10-2001, используемый при экспорте/импорте ключей + /// + public static readonly OidValue KeyAlgorithm = OidValue.FromString("1.2.643.2.2.19"); + + /// + /// Алгоритм Диффи-Хеллмана на базе эллиптической кривой + /// + public static readonly OidValue DhAlgorithm = OidValue.FromString("1.2.643.2.2.98"); + + /// + /// Алгоритм цифровой подписи ГОСТ Р 34.10-2001 + /// + public static readonly OidValue SignatureAlgorithm = OidValue.FromString("1.2.643.2.2.3"); + + /// + /// Функция хэширования ГОСТ Р 34.11-94 + /// + public static readonly OidValue HashAlgorithm = OidValue.FromString("1.2.643.2.2.9"); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_DhPublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_DhPublicKeyType.cs new file mode 100644 index 0000000..ee5d27e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_DhPublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public sealed class Gost_R3410_2001_DhPublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2001_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchange.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchange.cs new file mode 100644 index 0000000..dbcc42a --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchange.cs @@ -0,0 +1,17 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + /// + public sealed class Gost_R3410_2001_KeyExchange : Gost_R3410_KeyExchange + { + /// + protected override OidValue KeyAlgorithm => Gost_R3410_2001_Constants.KeyAlgorithm; + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2001_PublicKeyParams(); + + /// + protected override Gost_R3410_KeyExchangeParams CreateKeyExchangeParams() => new Gost_R3410_2001_KeyExchangeParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchangeParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchangeParams.cs new file mode 100644 index 0000000..8f9d6de --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_KeyExchangeParams.cs @@ -0,0 +1,27 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + /// + public sealed class Gost_R3410_2001_KeyExchangeParams : Gost_R3410_KeyExchangeParams + { + /// + public Gost_R3410_2001_KeyExchangeParams() + { + } + + /// + public Gost_R3410_2001_KeyExchangeParams(Gost_R3410_2001_KeyExchangeParams other) : base(other) + { + } + + /// + public override Gost_R3410_KeyExchangeParams Clone() => new Gost_R3410_2001_KeyExchangeParams(this); + + /// + protected override Gost_R3410_PublicKey CreatePublicKey() => new Gost_R3410_2001_PublicKey(); + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2001_PublicKeyParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKey.cs new file mode 100644 index 0000000..1152104 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKey.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + /// + public sealed class Gost_R3410_2001_PublicKey : Gost_R3410_PublicKey + { + /// + public Gost_R3410_2001_PublicKey() : base(64) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyParams.cs new file mode 100644 index 0000000..1a08c16 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public sealed class Gost_R3410_2001_PublicKeyParams : Gost_R3410_PublicKeyParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyType.cs new file mode 100644 index 0000000..5d9e681 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3410_2001_PublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public sealed class Gost_R3410_2001_PublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2001_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParams.cs new file mode 100644 index 0000000..a8e06ab --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public sealed class Gost_R3411_2001_DigestParams : Gost_R3411_DigestParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParamsType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParamsType.cs new file mode 100644 index 0000000..6159adf --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2001/Gost_R3411_2001_DigestParamsType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2001 +{ + public sealed class Gost_R3411_2001_DigestParamsType : Gost_R3411_DigestParamsType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3411_2001_DigestParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_Constants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_Constants.cs new file mode 100644 index 0000000..12b4f81 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_Constants.cs @@ -0,0 +1,25 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public static class Gost_R3410_2012_256_Constants + { + /// + /// Алгоритм ГОСТ Р 34.10-2012 для ключей длины 256 бит, используемый при экспорте/импорте ключей + /// + public static readonly OidValue KeyAlgorithm = OidValue.FromString("1.2.643.7.1.1.1.1"); + + /// + /// Алгоритм Диффи-Хеллмана на базе эллиптической кривой для ключей длины 256 бит + /// + public static readonly OidValue DhAlgorithm = OidValue.FromString("1.2.643.7.1.1.6.1"); + + /// + /// Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 256 бит + /// + public static readonly OidValue SignatureAlgorithm = OidValue.FromString("1.2.643.7.1.1.3.2"); + + /// + /// Функция хэширования ГОСТ Р 34.11-2012, длина выхода 256 бит + /// + public static readonly OidValue HashAlgorithm = OidValue.FromString("1.2.643.7.1.1.2.2"); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_DhPublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_DhPublicKeyType.cs new file mode 100644 index 0000000..22faffe --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_DhPublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public sealed class Gost_R3410_2012_256_DhPublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2012_256_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchange.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchange.cs new file mode 100644 index 0000000..1bbc207 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchange.cs @@ -0,0 +1,17 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + /// + public sealed class Gost_R3410_2012_256_KeyExchange : Gost_R3410_KeyExchange + { + /// + protected override OidValue KeyAlgorithm => Gost_R3410_2012_256_Constants.KeyAlgorithm; + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2012_256_PublicKeyParams(); + + /// + protected override Gost_R3410_KeyExchangeParams CreateKeyExchangeParams() => new Gost_R3410_2012_256_KeyExchangeParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchangeParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchangeParams.cs new file mode 100644 index 0000000..110fadf --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_KeyExchangeParams.cs @@ -0,0 +1,27 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + /// + public sealed class Gost_R3410_2012_256_KeyExchangeParams : Gost_R3410_KeyExchangeParams + { + /// + public Gost_R3410_2012_256_KeyExchangeParams() + { + } + + /// + public Gost_R3410_2012_256_KeyExchangeParams(Gost_R3410_2012_256_KeyExchangeParams other) : base(other) + { + } + + /// + public override Gost_R3410_KeyExchangeParams Clone() => new Gost_R3410_2012_256_KeyExchangeParams(this); + + /// + protected override Gost_R3410_PublicKey CreatePublicKey() => new Gost_R3410_2012_256_PublicKey(); + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2012_256_PublicKeyParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKey.cs new file mode 100644 index 0000000..13943f5 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKey.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + /// + public sealed class Gost_R3410_2012_256_PublicKey : Gost_R3410_PublicKey + { + /// + public Gost_R3410_2012_256_PublicKey() : base(64) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyParams.cs new file mode 100644 index 0000000..4ccd1b8 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public sealed class Gost_R3410_2012_256_PublicKeyParams : Gost_R3410_PublicKeyParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyType.cs new file mode 100644 index 0000000..c3fdd71 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3410_2012_256_PublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public sealed class Gost_R3410_2012_256_PublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2012_256_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParams.cs new file mode 100644 index 0000000..fdec015 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public sealed class Gost_R3411_2012_256_DigestParams : Gost_R3411_DigestParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParamsType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParamsType.cs new file mode 100644 index 0000000..59f9699 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_256/Gost_R3411_2012_256_DigestParamsType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_256 +{ + public sealed class Gost_R3411_2012_256_DigestParamsType : Gost_R3411_DigestParamsType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3411_2012_256_DigestParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_Constants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_Constants.cs new file mode 100644 index 0000000..870f4f1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_Constants.cs @@ -0,0 +1,25 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public static class Gost_R3410_2012_512_Constants + { + /// + /// Алгоритм ГОСТ Р 34.10-2012 для ключей длины 512 бит, используемый при экспорте/импорте ключей + /// + public static readonly OidValue KeyAlgorithm = OidValue.FromString("1.2.643.7.1.1.1.2"); + + /// + /// Алгоритм Диффи-Хеллмана на базе эллиптической кривой для ключей длины 512 бит + /// + public static readonly OidValue DhAlgorithm = OidValue.FromString("1.2.643.7.1.1.6.2"); + + /// + /// Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 512 бит + /// + public static readonly OidValue SignatureAlgorithm = OidValue.FromString("1.2.643.7.1.1.3.3"); + + /// + /// Функция хэширования ГОСТ Р 34.11-2012, длина выхода 512 бит + /// + public static readonly OidValue HashAlgorithm = OidValue.FromString("1.2.643.7.1.1.2.3"); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_DhPublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_DhPublicKeyType.cs new file mode 100644 index 0000000..7d6ee3e --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_DhPublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public sealed class Gost_R3410_2012_512_DhPublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2012_512_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchange.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchange.cs new file mode 100644 index 0000000..ea478c7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchange.cs @@ -0,0 +1,17 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + /// + public sealed class Gost_R3410_2012_512_KeyExchange : Gost_R3410_KeyExchange + { + /// + protected override OidValue KeyAlgorithm => Gost_R3410_2012_512_Constants.KeyAlgorithm; + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2012_512_PublicKeyParams(); + + /// + protected override Gost_R3410_KeyExchangeParams CreateKeyExchangeParams() => new Gost_R3410_2012_512_KeyExchangeParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchangeParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchangeParams.cs new file mode 100644 index 0000000..4ccdf72 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_KeyExchangeParams.cs @@ -0,0 +1,27 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + /// + public sealed class Gost_R3410_2012_512_KeyExchangeParams : Gost_R3410_KeyExchangeParams + { + /// + public Gost_R3410_2012_512_KeyExchangeParams() + { + } + + /// + public Gost_R3410_2012_512_KeyExchangeParams(Gost_R3410_2012_512_KeyExchangeParams other) : base(other) + { + } + + /// + public override Gost_R3410_KeyExchangeParams Clone() => new Gost_R3410_2012_512_KeyExchangeParams(this); + + /// + protected override Gost_R3410_PublicKey CreatePublicKey() => new Gost_R3410_2012_512_PublicKey(); + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_2012_512_PublicKeyParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKey.cs new file mode 100644 index 0000000..9c73502 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKey.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + /// + public sealed class Gost_R3410_2012_512_PublicKey : Gost_R3410_PublicKey + { + /// + public Gost_R3410_2012_512_PublicKey() : base(128) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyParams.cs new file mode 100644 index 0000000..e1b3b57 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public sealed class Gost_R3410_2012_512_PublicKeyParams : Gost_R3410_PublicKeyParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyType.cs new file mode 100644 index 0000000..fc34262 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3410_2012_512_PublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public sealed class Gost_R3410_2012_512_PublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_2012_512_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParams.cs new file mode 100644 index 0000000..7484d96 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public sealed class Gost_R3411_2012_512_DigestParams : Gost_R3411_DigestParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParamsType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParamsType.cs new file mode 100644 index 0000000..756da5a --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_2012_512/Gost_R3411_2012_512_DigestParamsType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_2012_512 +{ + public sealed class Gost_R3411_2012_512_DigestParamsType : Gost_R3411_DigestParamsType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3411_2012_512_DigestParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_Constants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_Constants.cs new file mode 100644 index 0000000..f5fd018 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_Constants.cs @@ -0,0 +1,25 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public static class Gost_R3410_94_Constants + { + /// + /// Алгоритм ГОСТ Р 34.10-94, используемый при экспорте/импорте ключей + /// + public static readonly OidValue KeyAlgorithm = OidValue.FromString("1.2.643.2.2.20"); + + /// + /// Алгоритм Диффи-Хеллмана на базе потенциальной функции + /// + public static readonly OidValue DhAlgorithm = OidValue.FromString("1.2.643.2.2.99"); + + /// + /// Алгоритм цифровой подписи ГОСТ Р 34.10-94 + /// + public static readonly OidValue SignatureAlgorithm = OidValue.FromString("1.2.643.2.2.4"); + + /// + /// Функция хэширования ГОСТ Р 34.11-94 + /// + public static readonly OidValue HashAlgorithm = OidValue.FromString("1.2.643.2.2.9"); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_DhPublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_DhPublicKeyType.cs new file mode 100644 index 0000000..dc4a55b --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_DhPublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public sealed class Gost_R3410_94_DhPublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_94_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchange.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchange.cs new file mode 100644 index 0000000..9e78b76 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchange.cs @@ -0,0 +1,17 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + /// + public sealed class Gost_R3410_94_KeyExchange : Gost_R3410_KeyExchange + { + /// + protected override OidValue KeyAlgorithm => Gost_R3410_94_Constants.KeyAlgorithm; + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_94_PublicKeyParams(); + + /// + protected override Gost_R3410_KeyExchangeParams CreateKeyExchangeParams() => new Gost_R3410_94_KeyExchangeParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchangeParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchangeParams.cs new file mode 100644 index 0000000..2be0c12 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_KeyExchangeParams.cs @@ -0,0 +1,27 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + /// + public sealed class Gost_R3410_94_KeyExchangeParams : Gost_R3410_KeyExchangeParams + { + /// + public Gost_R3410_94_KeyExchangeParams() + { + } + + /// + public Gost_R3410_94_KeyExchangeParams(Gost_R3410_94_KeyExchangeParams other) : base(other) + { + } + + /// + public override Gost_R3410_KeyExchangeParams Clone() => new Gost_R3410_94_KeyExchangeParams(this); + + /// + protected override Gost_R3410_PublicKey CreatePublicKey() => new Gost_R3410_94_PublicKey(); + + /// + protected override Gost_R3410_PublicKeyParams CreatePublicKeyParams() => new Gost_R3410_94_PublicKeyParams(); + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKey.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKey.cs new file mode 100644 index 0000000..cdf4907 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKey.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + /// + public sealed class Gost_R3410_94_PublicKey : Gost_R3410_PublicKey + { + /// + public Gost_R3410_94_PublicKey() : base(64) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyParams.cs new file mode 100644 index 0000000..3ae3733 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public sealed class Gost_R3410_94_PublicKeyParams : Gost_R3410_PublicKeyParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyType.cs new file mode 100644 index 0000000..0bd60b1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3410_94_PublicKeyType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3410; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public sealed class Gost_R3410_94_PublicKeyType : Gost_R3410_PublicKeyType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3410_94_PublicKeyParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParams.cs new file mode 100644 index 0000000..d38ad97 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public sealed class Gost_R3411_94_DigestParams : Gost_R3411_DigestParams + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParamsType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParamsType.cs new file mode 100644 index 0000000..0c016f1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3410_94/Gost_R3411_94_DigestParamsType.cs @@ -0,0 +1,13 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_R3411; + +namespace GostCryptography.Asn1.Gost.Gost_R3410_94 +{ + public sealed class Gost_R3411_94_DigestParamsType : Gost_R3411_DigestParamsType + { + protected override Asn1Type CreateParams() + { + return new Gost_R3411_94_DigestParams(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParams.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParams.cs new file mode 100644 index 0000000..3b44500 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Ber; + +namespace GostCryptography.Asn1.Gost.Gost_R3411 +{ + public abstract class Gost_R3411_DigestParams : Asn1ObjectIdentifier + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParamsType.cs b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParamsType.cs new file mode 100644 index 0000000..aa2eadf --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/Gost_R3411/Gost_R3411_DigestParamsType.cs @@ -0,0 +1,9 @@ +namespace GostCryptography.Asn1.Gost.Gost_R3411 +{ + public abstract class Gost_R3411_DigestParamsType : GostAsn1Choice + { + protected override short TagForm => 0x00; + + protected override int TagIdCode => ObjectIdentifierTypeCode; + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmId.cs b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmId.cs new file mode 100644 index 0000000..08ea7a1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmId.cs @@ -0,0 +1,17 @@ +using GostCryptography.Asn1.Ber; + +namespace GostCryptography.Asn1.Gost.PublicKey +{ + public sealed class AlgorithmId + { + public AlgorithmId(Asn1ObjectIdentifier id, Asn1Type type) + { + Id = id; + Type = type; + } + + public Asn1ObjectIdentifier Id { get; } + + public Asn1Type Type { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmIdentifier.cs b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmIdentifier.cs new file mode 100644 index 0000000..16c8152 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/AlgorithmIdentifier.cs @@ -0,0 +1,100 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; +using System; + +namespace GostCryptography.Asn1.Gost.PublicKey +{ + public sealed class AlgorithmIdentifier : Asn1Type + { + public AlgorithmIdentifier() + { + } + + public AlgorithmIdentifier(Asn1ObjectIdentifier algorithm, Asn1OpenType parameters) + { + Algorithm = algorithm; + Parameters = parameters; + } + + public Asn1ObjectIdentifier Algorithm { get; private set; } + + public Asn1Type Parameters { get; private set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + Algorithm = null; + Parameters = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0, ObjectIdentifierTypeCode, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + Algorithm = new Asn1ObjectIdentifier(); + Algorithm.Decode(buffer, true, parsedLen.Value); + + if (!context.Expired()) + { + Parameters = new Asn1OpenType(); + Parameters.Decode(buffer, true, 0); + } + + CheckAlg(true); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + CheckAlg(false); + + if (Parameters != null) + { + len += Parameters.Encode(buffer, true); + } + + len += Algorithm.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + + private void CheckAlg(bool decode) + { + AlgorithmId algorithmId = null; + + foreach (var alg in PkiConstants.SupportedAlgorithms) + { + if (alg.Id.Equals(Algorithm)) + { + algorithmId = alg; + break; + } + } + + if ((algorithmId != null) && ((decode && (Parameters != null)) && (algorithmId.Type != null))) + { + try + { + var buffer = new Asn1BerDecodeBuffer(((Asn1OpenType)Parameters).Value); + Parameters = (Asn1Type)Activator.CreateInstance(algorithmId.Type.GetType()); + Parameters.Decode(buffer, true, 0); + buffer.InvokeEndElement("parameters", -1); + } + catch (Exception exception) + { + Asn1Util.WriteStackTrace(exception, Console.Error); + throw ExceptionUtility.CryptographicException(Resources.Asn1TableConstraint); + } + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/PkiConstants.cs b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/PkiConstants.cs new file mode 100644 index 0000000..69ce4f1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/PkiConstants.cs @@ -0,0 +1,116 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Asn1.Gost.Gost_R3410_94; + +namespace GostCryptography.Asn1.Gost.PublicKey +{ + static class PkiConstants + { + // ГОСТ 28147-89 + + private static readonly AlgorithmId Gost_28147_89_EncryptAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_28147_89_Constants.EncryptAlgorithm), + new Gost_28147_89_Params()); + + // ГОСТ Р 34.10-94 + + private static readonly AlgorithmId Gost_R3410_94_KeyAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_94_Constants.KeyAlgorithm), + new Gost_R3410_94_PublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_94_DhAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_94_Constants.DhAlgorithm), + new Gost_R3410_94_DhPublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_94_SignatureAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_94_Constants.SignatureAlgorithm), + new NullParams()); + + private static readonly AlgorithmId Gost_R3411_94_HashAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_94_Constants.HashAlgorithm), + new Gost_R3411_94_DigestParamsType()); + + // ГОСТ Р 34.10-2001 + + private static readonly AlgorithmId Gost_R3410_2001_KeyAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2001_Constants.KeyAlgorithm), + new Gost_R3410_2001_PublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2001_DhAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2001_Constants.DhAlgorithm), + new Gost_R3410_2001_DhPublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2001_SignatureAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2001_Constants.SignatureAlgorithm), + new NullParams()); + + private static readonly AlgorithmId Gost_R3411_2001_HashAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2001_Constants.HashAlgorithm), + new Gost_R3411_2001_DigestParamsType()); + + // ГОСТ Р 34.10-2012/256 + + private static readonly AlgorithmId Gost_R3410_2012_256_KeyAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_256_Constants.KeyAlgorithm), + new Gost_R3410_2012_256_PublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2012_256_DhAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_256_Constants.DhAlgorithm), + new Gost_R3410_2012_256_DhPublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2012_256_SignatureAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_256_Constants.SignatureAlgorithm), + new NullParams()); + + private static readonly AlgorithmId Gost_R3411_2012_256_HashAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_256_Constants.HashAlgorithm), + new Gost_R3411_2012_256_DigestParamsType()); + + // ГОСТ Р 34.10-2012/512 + + private static readonly AlgorithmId Gost_R3410_2012_512_KeyAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_512_Constants.KeyAlgorithm), + new Gost_R3410_2012_512_PublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2012_512_DhAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_512_Constants.DhAlgorithm), + new Gost_R3410_2012_512_DhPublicKeyType()); + + private static readonly AlgorithmId Gost_R3410_2012_512_SignatureAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_512_Constants.SignatureAlgorithm), + new NullParams()); + + private static readonly AlgorithmId Gost_R3411_2012_512_HashAlgorithm = new AlgorithmId( + new Asn1ObjectIdentifier(Gost_R3410_2012_512_Constants.HashAlgorithm), + new Gost_R3411_2012_512_DigestParamsType()); + + + public static readonly AlgorithmId[] SupportedAlgorithms = + { + Gost_28147_89_EncryptAlgorithm, + + Gost_R3410_94_KeyAlgorithm, + Gost_R3410_94_DhAlgorithm, + Gost_R3410_94_SignatureAlgorithm, + Gost_R3411_94_HashAlgorithm, + + Gost_R3410_2001_KeyAlgorithm, + Gost_R3410_2001_DhAlgorithm, + Gost_R3410_2001_SignatureAlgorithm, + Gost_R3411_2001_HashAlgorithm, + + Gost_R3410_2012_256_KeyAlgorithm, + Gost_R3410_2012_256_DhAlgorithm, + Gost_R3410_2012_256_SignatureAlgorithm, + Gost_R3411_2012_256_HashAlgorithm, + + Gost_R3410_2012_512_KeyAlgorithm, + Gost_R3410_2012_512_DhAlgorithm, + Gost_R3410_2012_512_SignatureAlgorithm, + Gost_R3411_2012_512_HashAlgorithm + }; + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/SubjectPublicKeyInfo.cs b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/SubjectPublicKeyInfo.cs new file mode 100644 index 0000000..dc09dd6 --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/Gost/PublicKey/SubjectPublicKeyInfo.cs @@ -0,0 +1,53 @@ +using GostCryptography.Asn1.Ber; +using GostCryptography.Properties; + +namespace GostCryptography.Asn1.Gost.PublicKey +{ + public sealed class SubjectPublicKeyInfo : Asn1Type + { + public AlgorithmIdentifier Algorithm { get; set; } + + public Asn1BitString SubjectPublicKey { get; set; } + + public override void Decode(Asn1BerDecodeBuffer buffer, bool explicitTagging, int implicitLength) + { + var elemLength = explicitTagging ? MatchTag(buffer, Asn1Tag.Sequence) : implicitLength; + + Algorithm = null; + SubjectPublicKey = null; + + var context = new Asn1BerDecodeContext(buffer, elemLength); + var parsedLen = new IntHolder(); + + if (!context.MatchElemTag(0, 0x20, 0x10, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + Algorithm = new AlgorithmIdentifier(); + Algorithm.Decode(buffer, true, parsedLen.Value); + + if (!context.MatchElemTag(0, 0, 3, parsedLen, false)) + { + throw ExceptionUtility.CryptographicException(Resources.Asn1MissingRequiredException, buffer.ByteCount); + } + + SubjectPublicKey = new Asn1BitString(); + SubjectPublicKey.Decode(buffer, true, parsedLen.Value); + } + + public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging) + { + var len = 0; + len += SubjectPublicKey.Encode(buffer, true); + len += Algorithm.Encode(buffer, true); + + if (explicitTagging) + { + len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len); + } + + return len; + } + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/NullParams.cs b/Hcs.Client/GostCryptography/Asn1/NullParams.cs new file mode 100644 index 0000000..87d061b --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/NullParams.cs @@ -0,0 +1,8 @@ +using GostCryptography.Asn1.Ber; + +namespace GostCryptography.Asn1 +{ + public sealed class NullParams : Asn1Null + { + } +} diff --git a/Hcs.Client/GostCryptography/Asn1/OidValue.cs b/Hcs.Client/GostCryptography/Asn1/OidValue.cs new file mode 100644 index 0000000..a65a1db --- /dev/null +++ b/Hcs.Client/GostCryptography/Asn1/OidValue.cs @@ -0,0 +1,99 @@ +using System.Linq; +using System.Security.Cryptography; + +namespace GostCryptography.Asn1 +{ + public sealed class OidValue + { + public static readonly OidValue Null = new OidValue("", new int[] { }); + + private OidValue(string value, int[] items) + { + Value = value; + Items = items; + } + + public static OidValue FromString(string value) + { + var items = value.Split('.').Select(int.Parse).ToArray(); + return new OidValue(value, items); + } + + public static OidValue FromArray(int[] items) + { + string value = string.Join(".", items); + return new OidValue(value, items); + } + + public string Value { get; } + + public int[] Items { get; } + + public override int GetHashCode() + { + if (Items == null) + { + return 0; + } + + var result = 1; + + foreach (var item in Items) + { + result = 31 * result + item.GetHashCode(); + } + + return result; + } + + public override bool Equals(object obj) + { + if (this == obj) + { + return true; + } + + if (!(obj is OidValue)) + { + return false; + } + + var other = (OidValue)obj; + + if (Items == other.Items) + { + return true; + } + + if (Items == null || other.Items == null) + { + return false; + } + + if (Items.Length != other.Items.Length) + { + return false; + } + + for (var i = 0; i < Items.Length; ++i) + { + if (Items[i] != other.Items[i]) + { + return false; + } + } + + return true; + } + + public override string ToString() + { + return Value; + } + + public Oid ToOid() + { + return new Oid(Value); + } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostAsymmetricAlgorithm.cs new file mode 100644 index 0000000..a439bc2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostAsymmetricAlgorithm.cs @@ -0,0 +1,54 @@ +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех асимметричных алгоритмов ГОСТ + /// + public abstract class GostAsymmetricAlgorithm : AsymmetricAlgorithm, IGostAlgorithm + { + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Размер ключа в битах + protected GostAsymmetricAlgorithm(ProviderType providerType, int keySize) + { + ProviderType = providerType; + KeySizeValue = keySize; + LegalKeySizesValue = new[] { new KeySizes(keySize, keySize, 0) }; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + + /// + /// Вычисляет цифровую подпись + /// + public abstract byte[] CreateSignature(byte[] hash); + + /// + /// Проверяет цифровую подпись + /// + public abstract bool VerifySignature(byte[] hash, byte[] signature); + + /// + /// Создает экземпляр + /// + public abstract GostHashAlgorithm CreateHashAlgorithm(); + + /// + /// Создает экземпляр + /// + /// + public abstract GostKeyExchangeFormatter CreateKeyExchangeFormatter(); + + /// + /// Создает экземпляр + /// + public abstract GostKeyExchangeDeformatter CreateKeyExchangeDeformatter(); + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostExternalAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostExternalAsymmetricAlgorithm.cs new file mode 100644 index 0000000..6f42d6f --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostExternalAsymmetricAlgorithm.cs @@ -0,0 +1,53 @@ +using GostCryptography.Properties; +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// На базе заданного экземпляра пытается реализовать . + /// Данный класс предназначен для интеграции со сторонними библиотеками и предназначен для внутреннего использования. + /// + sealed class GostExternalAsymmetricAlgorithm : GostAsymmetricAlgorithm + { + private readonly AsymmetricAlgorithm _algorithm; + private readonly Func _createSignature; + private readonly Func _verifySignature; + + public GostExternalAsymmetricAlgorithm(AsymmetricAlgorithm algorithm) : base(default(ProviderType), algorithm.KeySize) + { + var createSignatureMethod = algorithm.GetType().GetMethod(nameof(CreateSignature), new[] { typeof(byte[]) }); + var verifySignatureMethod = algorithm.GetType().GetMethod(nameof(VerifySignature), new[] { typeof(byte[]), typeof(byte[]) }); + + if ((createSignatureMethod == null || createSignatureMethod.ReturnType != typeof(byte[])) + || (verifySignatureMethod == null || verifySignatureMethod.ReturnType != typeof(bool))) + { + throw ExceptionUtility.Argument(nameof(algorithm), Resources.ShouldSupportGost3410); + } + + _algorithm = algorithm; + _createSignature = hash => (byte[])createSignatureMethod.Invoke(algorithm, new object[] { hash }); + _verifySignature = (hash, signature) => (bool)verifySignatureMethod.Invoke(algorithm, new object[] { hash, signature }); + } + + public override string AlgorithmName => _algorithm.SignatureAlgorithm; + + public override string SignatureAlgorithm => _algorithm.SignatureAlgorithm; + + public override string KeyExchangeAlgorithm => _algorithm.KeyExchangeAlgorithm; + + public override string ToXmlString(bool includePrivateKey) => _algorithm.ToXmlString(includePrivateKey); + + public override void FromXmlString(string keyParametersXml) => _algorithm.FromXmlString(keyParametersXml); + + public override byte[] CreateSignature(byte[] hash) => _createSignature(hash); + + public override bool VerifySignature(byte[] hash, byte[] signature) => _verifySignature(hash, signature); + + public override GostHashAlgorithm CreateHashAlgorithm() => throw ExceptionUtility.NotSupported(); + + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() => throw ExceptionUtility.NotSupported(); + + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() => throw ExceptionUtility.NotSupported(); + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostHMAC.cs b/Hcs.Client/GostCryptography/Base/GostHMAC.cs new file mode 100644 index 0000000..1ece86a --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostHMAC.cs @@ -0,0 +1,42 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех реализаций Hash-based Message Authentication Code (HMAC) на базе алгоритмов ГОСТ + /// + public abstract class GostHMAC : HMAC, IGostAlgorithm + { + /// + /// Конструктор + /// + /// Размер хэш-кода в битах + /// + /// По умолчанию использует криптографический провайдер, установленный в + /// + [SecuritySafeCritical] + protected GostHMAC(int hashSize) : this(GostCryptoConfig.ProviderType, hashSize) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Размер хэш-кода в битах + [SecuritySafeCritical] + protected GostHMAC(ProviderType providerType, int hashSize) + { + ProviderType = providerType; + HashSizeValue = hashSize; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostHashAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostHashAlgorithm.cs new file mode 100644 index 0000000..7c6fa4f --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostHashAlgorithm.cs @@ -0,0 +1,42 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех алгоритмов хэширования ГОСТ + /// + public abstract class GostHashAlgorithm : HashAlgorithm, IGostAlgorithm + { + /// + /// Конструктор + /// + /// Размер хэш-кода в битах + /// + /// По умолчанию использует криптографический провайдер, установленный в + /// + [SecuritySafeCritical] + protected GostHashAlgorithm(int hashSize) : this(GostCryptoConfig.ProviderType, hashSize) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Размер хэш-кода в битах + [SecuritySafeCritical] + protected GostHashAlgorithm(ProviderType providerType, int hashSize) + { + ProviderType = providerType; + HashSizeValue = hashSize; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostKeyExchangeAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostKeyExchangeAlgorithm.cs new file mode 100644 index 0000000..bdadc4b --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostKeyExchangeAlgorithm.cs @@ -0,0 +1,74 @@ +using GostCryptography.Config; +using System; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс всех реализаций общего секретного ключа ГОСТ + /// + public abstract class GostKeyExchangeAlgorithm : IDisposable, IGostAlgorithm + { + /// + /// Конструктор + /// + /// + /// По умолчанию использует криптографический провайдер, установленный в + /// + [SecuritySafeCritical] + protected GostKeyExchangeAlgorithm() : this(GostCryptoConfig.ProviderType) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + [SecuritySafeCritical] + protected GostKeyExchangeAlgorithm(ProviderType providerType) + { + ProviderType = providerType; + } + + /// + public ProviderType ProviderType { get; } + + /// + public virtual string AlgorithmName => GetType().Name; + + /// + /// Экспортирует (шифрует) общий секретный ключ + /// + /// Общий секретный ключ + /// Алгоритм экспорта общего секретного ключа + public abstract byte[] EncodeKeyExchange(SymmetricAlgorithm keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod); + + /// + /// Импортирует (дешифрует) общий секретный ключ + /// + /// Общий секретный ключ + /// Алгоритм экспорта общего секретного ключа + public abstract SymmetricAlgorithm DecodeKeyExchange(byte[] encodedKeyExchangeData, GostKeyExchangeExportMethod keyExchangeExportMethod); + + /// + /// Освобождает неуправляемые ресурсы + /// + protected virtual void Dispose(bool disposing) + { + } + + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + ~GostKeyExchangeAlgorithm() + { + Dispose(false); + } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostKeyExchangeDeformatter.cs b/Hcs.Client/GostCryptography/Base/GostKeyExchangeDeformatter.cs new file mode 100644 index 0000000..e201cc5 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostKeyExchangeDeformatter.cs @@ -0,0 +1,18 @@ +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для дешифрования общего секретного ключа по ГОСТ + /// + public abstract class GostKeyExchangeDeformatter : AsymmetricKeyExchangeDeformatter + { + /// + /// Дешифрует общий секретный ключ + /// + /// Зашифрованный общий секретный ключ + /// + public abstract SymmetricAlgorithm DecryptKeyExchangeAlgorithm(byte[] encryptedKeyExchangeData); + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostKeyExchangeExportMethod.cs b/Hcs.Client/GostCryptography/Base/GostKeyExchangeExportMethod.cs new file mode 100644 index 0000000..2dea7d4 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostKeyExchangeExportMethod.cs @@ -0,0 +1,18 @@ +namespace GostCryptography.Base +{ + /// + /// Алгоритм экспорта общего секретного ключа ГОСТ + /// + public enum GostKeyExchangeExportMethod + { + /// + /// Простой экспорт ключа по ГОСТ 28147-89 + /// + GostKeyExport, + + /// + /// Защищённый экспорт ключа по алгоритму КриптоПро + /// + CryptoProKeyExport + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostKeyExchangeFormatter.cs b/Hcs.Client/GostCryptography/Base/GostKeyExchangeFormatter.cs new file mode 100644 index 0000000..5a3b95c --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostKeyExchangeFormatter.cs @@ -0,0 +1,18 @@ +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для шифрования общего секретного ключа по ГОСТ + /// + public abstract class GostKeyExchangeFormatter : AsymmetricKeyExchangeFormatter + { + /// + /// Шифрует общий секретный ключ + /// + /// Алгоритм шифрования общего секретного ключа + /// + public abstract byte[] CreateKeyExchangeData(SymmetricAlgorithm keyExchangeAlgorithm); + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostKeyedHashAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostKeyedHashAlgorithm.cs new file mode 100644 index 0000000..8fab954 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostKeyedHashAlgorithm.cs @@ -0,0 +1,42 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех алгоритмов хэширования ГОСТ на основе ключей + /// + public abstract class GostKeyedHashAlgorithm : KeyedHashAlgorithm, IGostAlgorithm + { + /// + /// Конструктор + /// + /// Размер хэш-кода в битах + /// + /// По умолчанию использует криптографический провайдер, установленный в + /// + [SecuritySafeCritical] + protected GostKeyedHashAlgorithm(int hashSize) : this(GostCryptoConfig.ProviderType, hashSize) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Размер хэш-кода в битах + [SecuritySafeCritical] + protected GostKeyedHashAlgorithm(ProviderType providerType, int hashSize) + { + ProviderType = providerType; + HashSizeValue = hashSize; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostPrf.cs b/Hcs.Client/GostCryptography/Base/GostPrf.cs new file mode 100644 index 0000000..5f5b246 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostPrf.cs @@ -0,0 +1,47 @@ +using System; +using System.Security; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех алгоритмов генерации псевдослучайной последовательности (Pseudorandom Function, PRF) ГОСТ + /// + public abstract class GostPRF : IDisposable, IGostAlgorithm + { + /// + /// Конструктор + /// + /// Тип криптографического провайдера + [SecuritySafeCritical] + protected GostPRF(ProviderType providerType) + { + ProviderType = providerType; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + + /// + /// Освобождает неуправляемые ресурсы + /// + protected virtual void Dispose(bool disposing) + { + } + + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + ~GostPRF() + { + Dispose(false); + } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostSignatureDeformatter.cs b/Hcs.Client/GostCryptography/Base/GostSignatureDeformatter.cs new file mode 100644 index 0000000..573605d --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostSignatureDeformatter.cs @@ -0,0 +1,77 @@ +using GostCryptography.Properties; +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Класс проверки цифровой подписи ГОСТ + /// + public class GostSignatureDeformatter : AsymmetricSignatureDeformatter + { + /// + /// Конструктор + /// + public GostSignatureDeformatter() + { + } + + /// + /// Конструктор + /// + /// Открытый ключ для проверки цифровой подписи + /// + /// + public GostSignatureDeformatter(AsymmetricAlgorithm publicKey) : this() + { + SetKey(publicKey); + } + + private GostAsymmetricAlgorithm _publicKey; + + /// + public override void SetKey(AsymmetricAlgorithm publicKey) + { + if (publicKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(publicKey)); + } + + if (!(publicKey is GostAsymmetricAlgorithm gostPublicKey)) + { + if (publicKey.SignatureAlgorithm.IndexOf("gost", StringComparison.OrdinalIgnoreCase) < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(publicKey), Resources.ShouldSupportGost3410); + } + + gostPublicKey = new GostExternalAsymmetricAlgorithm(publicKey); + } + + _publicKey = gostPublicKey; + } + + /// + public override void SetHashAlgorithm(string hashAlgorithmName) + { + } + + /// + public override bool VerifySignature(byte[] hash, byte[] signature) + { + if (hash == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hash)); + } + + if (signature == null) + { + throw ExceptionUtility.ArgumentNull(nameof(signature)); + } + + var reverseSignature = (byte[])signature.Clone(); + Array.Reverse(reverseSignature); + + return _publicKey.VerifySignature(hash, reverseSignature); + } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostSignatureDescription.cs b/Hcs.Client/GostCryptography/Base/GostSignatureDescription.cs new file mode 100644 index 0000000..4230925 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostSignatureDescription.cs @@ -0,0 +1,11 @@ +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Информация о свойствах цифровой подписи ГОСТ + /// + public abstract class GostSignatureDescription : SignatureDescription + { + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostSignatureFormatter.cs b/Hcs.Client/GostCryptography/Base/GostSignatureFormatter.cs new file mode 100644 index 0000000..9120e36 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostSignatureFormatter.cs @@ -0,0 +1,72 @@ +using GostCryptography.Properties; +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Класс вычисления цифровой подписи ГОСТ + /// + public class GostSignatureFormatter : AsymmetricSignatureFormatter + { + /// + /// Конструктор + /// + public GostSignatureFormatter() + { + } + + /// + /// Конструктор + /// + /// Закрытый ключ для вычисления цифровой подписи + /// + /// + public GostSignatureFormatter(AsymmetricAlgorithm privateKey) : this() + { + SetKey(privateKey); + } + + private GostAsymmetricAlgorithm _privateKey; + + /// + public override void SetKey(AsymmetricAlgorithm privateKey) + { + if (privateKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(privateKey)); + } + + if (!(privateKey is GostAsymmetricAlgorithm gostPrivateKey)) + { + if (privateKey.SignatureAlgorithm.IndexOf("gost", StringComparison.OrdinalIgnoreCase) < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(privateKey), Resources.ShouldSupportGost3410); + } + + gostPrivateKey = new GostExternalAsymmetricAlgorithm(privateKey); + } + + _privateKey = gostPrivateKey; + } + + /// + public override void SetHashAlgorithm(string hashAlgorithmName) + { + } + + /// + public override byte[] CreateSignature(byte[] hash) + { + if (hash == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hash)); + } + + var reverseSignature = _privateKey.CreateSignature(hash); + Array.Reverse(reverseSignature); + + return reverseSignature; + } + } +} diff --git a/Hcs.Client/GostCryptography/Base/GostSymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Base/GostSymmetricAlgorithm.cs new file mode 100644 index 0000000..b476628 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/GostSymmetricAlgorithm.cs @@ -0,0 +1,39 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Base +{ + /// + /// Базовый класс для всех алгоритмов симметричного шифрования ГОСТ + /// + public abstract class GostSymmetricAlgorithm : SymmetricAlgorithm, IGostAlgorithm + { + /// + /// Конструктор + /// + /// + /// По умолчанию использует криптографический провайдер, установленный в + /// + [SecuritySafeCritical] + protected GostSymmetricAlgorithm() : this(GostCryptoConfig.ProviderType) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + [SecuritySafeCritical] + protected GostSymmetricAlgorithm(ProviderType providerType) + { + ProviderType = providerType; + } + + /// + public ProviderType ProviderType { get; } + + /// + public abstract string AlgorithmName { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Base/IGostAlgorithm.cs b/Hcs.Client/GostCryptography/Base/IGostAlgorithm.cs new file mode 100644 index 0000000..9990070 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/IGostAlgorithm.cs @@ -0,0 +1,18 @@ +namespace GostCryptography.Base +{ + /// + /// Алгоритм ГОСТ + /// + public interface IGostAlgorithm + { + /// + /// Тип криптографического провайдера + /// + ProviderType ProviderType { get; } + + /// + /// Наименование криптографического алгоритма + /// + string AlgorithmName { get; } + } +} diff --git a/Hcs.Client/GostCryptography/Base/ProviderType.cs b/Hcs.Client/GostCryptography/Base/ProviderType.cs new file mode 100644 index 0000000..09af5a7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Base/ProviderType.cs @@ -0,0 +1,81 @@ +using System.Collections.Generic; + +namespace GostCryptography.Base +{ + /// + /// Типы криптографических провайдеров + /// + public enum ProviderType + { + /// + /// Infotecs Cryptographic Service Provider + /// + VipNet = 2, + + /// + /// Infotecs GOST 2012/512 Cryptographic Service Provider + /// + VipNet_2012_512 = 77, + + /// + /// Infotecs GOST 2012/1024 Cryptographic Service Provider + /// + VipNet_2012_1024 = 78, + + /// + /// Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider + /// + CryptoPro = 75, + + /// + /// Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider + /// + CryptoPro_2012_512 = 80, + + /// + /// Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider + /// + CryptoPro_2012_1024 = 81 + } + + /// + /// Методы расширения + /// + public static class ProviderTypesExtensions + { + /// + /// Набор провайдеров VipNet + /// + public static readonly HashSet VipNetProviders = new HashSet + { + ProviderType.VipNet, + ProviderType.VipNet_2012_512, + ProviderType.VipNet_2012_1024 + }; + + /// + /// Набор провайдеров CryptoPro + /// + public static readonly HashSet CryptoProProviders = new HashSet + { + ProviderType.CryptoPro, + ProviderType.CryptoPro_2012_512, + ProviderType.CryptoPro_2012_1024 + }; + + /// + /// Возвращает для VipNet + /// + public static bool IsVipNet(this ProviderType providerType) => VipNetProviders.Contains(providerType); + + /// + /// Возвращает для CryptoPro + /// + public static bool IsCryptoPro(this ProviderType providerType) => CryptoProProviders.Contains(providerType); + + /// + /// Преобразует значение в + /// + public static int ToInt(this ProviderType providerType) => (int)providerType; + } +} diff --git a/Hcs.Client/GostCryptography/Config/GostCryptoConfig.cs b/Hcs.Client/GostCryptography/Config/GostCryptoConfig.cs new file mode 100644 index 0000000..d8e907e --- /dev/null +++ b/Hcs.Client/GostCryptography/Config/GostCryptoConfig.cs @@ -0,0 +1,227 @@ +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Asn1.Gost.Gost_R3410_94; +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Gost_R3410; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using GostCryptography.Xml; +using System; +using System.Collections.Generic; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Config +{ + /// + /// Предоставляет методы для доступа к конфигурационной информации, используемой при работе с криптографическим провайдером ГОСТ + /// + public static class GostCryptoConfig + { + private static Lazy _providerType_2001; + private static Lazy _providerType_2012_512; + private static Lazy _providerType_2012_1024; + private static readonly Dictionary NameToType = new Dictionary(StringComparer.OrdinalIgnoreCase); + private static readonly Dictionary NameToOid = new Dictionary(StringComparer.OrdinalIgnoreCase); + + static GostCryptoConfig() + { + InitDefaultProviders(); + AddKnownAlgorithms(); + AddKnownOIDs(); + } + + [SecuritySafeCritical] + private static void InitDefaultProviders() + { + _providerType_2001 = new Lazy(CryptoApiHelper.GetAvailableProviderType_2001); + _providerType_2012_512 = new Lazy(CryptoApiHelper.GetAvailableProviderType_2012_512); + _providerType_2012_1024 = new Lazy(CryptoApiHelper.GetAvailableProviderType_2012_1024); + } + + private static void AddKnownAlgorithms() + { + AddAlgorithm(Gost_R3410_2001_AsymmetricAlgorithm.KnownSignatureAlgorithmNames); + AddAlgorithm(Gost_R3410_2012_256_AsymmetricAlgorithm.KnownSignatureAlgorithmNames); + AddAlgorithm(Gost_R3410_2012_512_AsymmetricAlgorithm.KnownSignatureAlgorithmNames); + + AddAlgorithm(Gost_R3411_94_HashAlgorithm.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_256_HashAlgorithm.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_512_HashAlgorithm.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_94_HMAC.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_256_HMAC.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_512_HMAC.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_94_PRF.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_256_PRF.KnownAlgorithmNames); + AddAlgorithm(Gost_R3411_2012_512_PRF.KnownAlgorithmNames); + + AddAlgorithm(Gost_28147_89_SymmetricAlgorithm.KnownAlgorithmNames); + AddAlgorithm(Gost_28147_89_ImitHashAlgorithm.KnownAlgorithmNames); + + AddAlgorithm(); + AddAlgorithm(); + AddAlgorithm(); + + AddAlgorithm(); + AddAlgorithm(); + + AddAlgorithm(Gost_R3410_2001_KeyValue.KnownValueUrls); + AddAlgorithm(Gost_R3410_2012_256_KeyValue.KnownValueUrls); + AddAlgorithm(Gost_R3410_2012_512_KeyValue.KnownValueUrls); + } + + private static void AddKnownOIDs() + { + AddOID(Gost_R3410_2001_Constants.KeyAlgorithm.Value); + AddOID(Gost_R3410_2012_256_Constants.KeyAlgorithm.Value); + AddOID(Gost_R3410_2012_512_Constants.KeyAlgorithm.Value); + + AddOID(Gost_R3410_94_Constants.HashAlgorithm.Value, Gost_R3411_94_HashAlgorithm.KnownAlgorithmNames); + AddOID(Gost_R3410_2012_256_Constants.HashAlgorithm.Value, Gost_R3411_2012_256_HashAlgorithm.KnownAlgorithmNames); + AddOID(Gost_R3410_2012_512_Constants.HashAlgorithm.Value, Gost_R3411_2012_512_HashAlgorithm.KnownAlgorithmNames); + + AddOID(Gost_28147_89_Constants.EncryptAlgorithm.Value, Gost_28147_89_SymmetricAlgorithm.KnownAlgorithmNames); + } + + + /// + /// Инициализирует конфигурацию + /// + public static void Initialize() + { + // На самом деле инициализация происходит в статическом конструкторе + } + + /// + /// Возвращает или устанавливает провайдер по умолчанию для ключей ГОСТ Р 34.10-2001 + /// + public static ProviderType ProviderType + { + get => _providerType_2001.Value; + set => _providerType_2001 = new Lazy(() => value); + } + + /// + /// Возвращает или устанавливает провайдер по умолчанию для ключей ГОСТ Р 34.10-2012/512 + /// + public static ProviderType ProviderType_2012_512 + { + get => _providerType_2012_512.Value; + set => _providerType_2012_512 = new Lazy(() => value); + } + + /// + /// Возвращает или устанавливает провайдер по умолчанию для ключей ГОСТ Р 34.10-2012/1024 + /// + public static ProviderType ProviderType_2012_1024 + { + get => _providerType_2012_1024.Value; + set => _providerType_2012_1024 = new Lazy(() => value); + } + + /// + /// Добавляет связь между алгоритмом и именем + /// + [SecuritySafeCritical] + public static void AddAlgorithm(params string[] names) + { + var type = typeof(T); + + if (names != null) + { + foreach (var name in names) + { + NameToType.Add(name, type); + CryptoConfig.AddAlgorithm(type, name); + } + } + + NameToType.Add(type.Name, type); + CryptoConfig.AddAlgorithm(type, type.Name); + + if (type.FullName != null) + { + NameToType.Add(type.FullName, type); + CryptoConfig.AddAlgorithm(type, type.FullName); + } + + if (type.AssemblyQualifiedName != null) + { + NameToType.Add(type.AssemblyQualifiedName, type); + CryptoConfig.AddAlgorithm(type, type.AssemblyQualifiedName); + } + } + + /// + /// Добавляет связь между алгоритмом и OID + /// + [SecuritySafeCritical] + public static void AddOID(string oid, params string[] names) + { + var type = typeof(T); + + if (names != null) + { + foreach (var name in names) + { + NameToOid.Add(name, oid); + CryptoConfig.AddOID(oid, name); + } + } + + NameToOid.Add(type.Name, oid); + CryptoConfig.AddOID(oid, type.Name); + + if (type.FullName != null) + { + NameToOid.Add(type.FullName, oid); + CryptoConfig.AddOID(oid, type.FullName); + } + + if (type.AssemblyQualifiedName != null) + { + NameToOid.Add(type.AssemblyQualifiedName, oid); + CryptoConfig.AddOID(oid, type.AssemblyQualifiedName); + } + } + + /// + public static string MapNameToOID(string name) + { + string oid = null; + + if (!string.IsNullOrEmpty(name)) + { + oid = CryptoConfig.MapNameToOID(name); + + if (string.IsNullOrEmpty(oid)) + { + NameToOid.TryGetValue(name, out oid); + } + } + + return oid; + } + + /// + public static object CreateFromName(string name, params object[] arguments) + { + object obj = null; + + if (!string.IsNullOrEmpty(name)) + { + obj = CryptoConfig.CreateFromName(name, arguments); + + if (obj == null && NameToType.TryGetValue(name, out var objType)) + { + obj = Activator.CreateInstance(objType, arguments); + } + } + + return obj; + } + } +} diff --git a/Hcs.Client/GostCryptography/ExceptionUtility.cs b/Hcs.Client/GostCryptography/ExceptionUtility.cs new file mode 100644 index 0000000..bbb9e49 --- /dev/null +++ b/Hcs.Client/GostCryptography/ExceptionUtility.cs @@ -0,0 +1,48 @@ +using System; +using System.Security.Cryptography; + +namespace GostCryptography +{ + static class ExceptionUtility + { + public static ArgumentException Argument(string argument, string message = null, params object[] messageParameters) + { + return new ArgumentException(FormatErrorMessage(message, messageParameters), argument); + } + + public static ArgumentNullException ArgumentNull(string argument, string message = null, params object[] messageParameters) + { + return new ArgumentNullException(argument, FormatErrorMessage(message, messageParameters)); + } + + public static ArgumentOutOfRangeException ArgumentOutOfRange(string argument, string message = null, params object[] messageParameters) + { + return new ArgumentOutOfRangeException(argument, FormatErrorMessage(message, messageParameters)); + } + + public static NotSupportedException NotSupported(string message = null, params object[] messageParameters) + { + return new NotSupportedException(FormatErrorMessage(message, messageParameters)); + } + + public static CryptographicException CryptographicException(int nativeError) + { + return new CryptographicException(nativeError); + } + + public static CryptographicException CryptographicException(string message = null, params object[] messageParameters) + { + return new CryptographicException(FormatErrorMessage(message, messageParameters)); + } + + public static CryptographicException CryptographicException(Exception innerException, string message = null, params object[] messageParameters) + { + return new CryptographicException(FormatErrorMessage(message, messageParameters), innerException); + } + + private static string FormatErrorMessage(string message, params object[] messageParameters) + { + return (message != null && messageParameters != null) ? string.Format(message, messageParameters) : message; + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransform.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransform.cs new file mode 100644 index 0000000..f822abc --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransform.cs @@ -0,0 +1,281 @@ +using GostCryptography.Base; +using GostCryptography.Native; +using GostCryptography.Properties; +using System; +using System.Collections.Generic; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_28147_89 +{ + /// + /// Реализует криптографическое преобразование с использованием алгоритма симметричного шифрования ГОСТ 28147-89 + /// + sealed class Gost_28147_89_CryptoTransform : ICryptoTransform + { + [SecurityCritical] + public Gost_28147_89_CryptoTransform( + ProviderType providerType, + SafeKeyHandleImpl keyHandle, + Dictionary keyParameters, + PaddingMode paddingValue, + CipherMode modeValue, + int blockSizeValue, + Gost_28147_89_CryptoTransformMode transformMode) + { + _providerType = providerType; + _keyHandle = keyHandle; + _paddingValue = paddingValue; + _isStreamModeValue = (modeValue == CipherMode.OFB) || (modeValue == CipherMode.CFB); + _blockSizeValue = blockSizeValue; + _transformMode = transformMode; + + // Установка параметров ключа + foreach (var keyParameter in keyParameters) + { + var keyParameterId = keyParameter.Key; + var keyParameterValue = keyParameter.Value; + + // Копирование значения параметра + if (keyParameterValue is byte[]) + { + var keyParamValueBytes = (byte[])keyParameterValue; + var copyKeyParamValueBytes = new byte[keyParamValueBytes.Length]; + Array.Copy(keyParamValueBytes, copyKeyParamValueBytes, keyParamValueBytes.Length); + + keyParameterValue = copyKeyParamValueBytes; + } + else if (keyParameterValue is int) + { + keyParameterValue = (int)keyParameterValue; + } + else if (keyParameterValue is CipherMode) + { + keyParameterValue = Convert.ToInt32(keyParameterValue); + } + else if (keyParameterValue is PaddingMode) + { + keyParameterValue = Convert.ToInt32(keyParameterValue); + } + + // Установка значения параметра + switch (keyParameterId) + { + case Constants.KP_IV: + { + _ivValue = (byte[])keyParameterValue; + + var iv = _ivValue; + CryptoApiHelper.SetKeyParameter(_keyHandle, keyParameterId, iv); + } + break; + case Constants.KP_MODE: + { + CryptoApiHelper.SetKeyParameterInt32(_keyHandle, keyParameterId, (int)keyParameterValue); + } + break; + case Constants.KP_PADDING: + { + if (!providerType.IsVipNet()) + { + CryptoApiHelper.SetKeyParameterInt32(_keyHandle, keyParameterId, (int)keyParameterValue); + } + } + break; + } + } + } + + private readonly ProviderType _providerType; + + [SecurityCritical] + private readonly SafeKeyHandleImpl _keyHandle; + + private readonly PaddingMode _paddingValue; + private readonly bool _isStreamModeValue; + private readonly int _blockSizeValue; + private readonly Gost_28147_89_CryptoTransformMode _transformMode; + + private byte[] _dataBuffer; + private byte[] _ivValue; + + public bool CanReuseTransform => true; + + public bool CanTransformMultipleBlocks => true; + + public int InputBlockSize => (_blockSizeValue / 8); + + public int OutputBlockSize => (_blockSizeValue / 8); + + [SecuritySafeCritical] + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + { + if (inputBuffer == null) + { + throw ExceptionUtility.ArgumentNull(nameof(inputBuffer)); + } + + if (outputBuffer == null) + { + throw ExceptionUtility.ArgumentNull(nameof(outputBuffer)); + } + + if (inputOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(inputOffset)); + } + + if ((inputCount <= 0) || ((inputCount % InputBlockSize) != 0) || (inputCount > inputBuffer.Length)) + { + throw ExceptionUtility.Argument(nameof(inputOffset), Resources.InvalidDataOffset); + } + + if ((inputBuffer.Length - inputCount) < inputOffset) + { + throw ExceptionUtility.Argument(nameof(inputOffset), Resources.InvalidDataOffset); + } + + if (_transformMode == Gost_28147_89_CryptoTransformMode.Encrypt) + { + return CryptoApiHelper.EncryptData(_providerType, _keyHandle, inputBuffer, inputOffset, inputCount, ref outputBuffer, outputOffset, _paddingValue, false, _isStreamModeValue); + } + + if ((_paddingValue == PaddingMode.Zeros) || (_paddingValue == PaddingMode.None)) + { + return CryptoApiHelper.DecryptData(_keyHandle, inputBuffer, inputOffset, inputCount, ref outputBuffer, outputOffset, _paddingValue, false); + } + + int dectyptDataLength; + + if (_dataBuffer == null) + { + _dataBuffer = new byte[InputBlockSize]; + + var length = inputCount - InputBlockSize; + Array.Copy(inputBuffer, inputOffset + length, _dataBuffer, 0, InputBlockSize); + + dectyptDataLength = CryptoApiHelper.DecryptData(_keyHandle, inputBuffer, inputOffset, length, ref outputBuffer, outputOffset, _paddingValue, false); + } + else + { + CryptoApiHelper.DecryptData(_keyHandle, _dataBuffer, 0, _dataBuffer.Length, ref outputBuffer, outputOffset, _paddingValue, false); + + outputOffset += OutputBlockSize; + + var length = inputCount - InputBlockSize; + Array.Copy(inputBuffer, inputOffset + length, _dataBuffer, 0, InputBlockSize); + + dectyptDataLength = OutputBlockSize + CryptoApiHelper.DecryptData(_keyHandle, inputBuffer, inputOffset, length, ref outputBuffer, outputOffset, _paddingValue, false); + } + + return dectyptDataLength; + } + + [SecuritySafeCritical] + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) + { + if (inputBuffer == null) + { + throw ExceptionUtility.ArgumentNull(nameof(inputBuffer)); + } + + if (inputOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(inputOffset)); + } + + if ((inputCount < 0) || (inputCount > inputBuffer.Length)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(inputOffset), Resources.InvalidDataOffset); + } + + if ((inputBuffer.Length - inputCount) < inputOffset) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(inputOffset), Resources.InvalidDataOffset); + } + + byte[] buffer = null; + + if (_transformMode == Gost_28147_89_CryptoTransformMode.Encrypt) + { + CryptoApiHelper.EncryptData(_providerType, _keyHandle, inputBuffer, inputOffset, inputCount, ref buffer, 0, _paddingValue, true, _isStreamModeValue); + Reset(); + return buffer; + } + + if (_isStreamModeValue) + { + CryptoApiHelper.DecryptData(_keyHandle, inputBuffer, inputOffset, inputCount, ref buffer, 0, _paddingValue, true); + Reset(); + return buffer; + } + + if ((inputCount % InputBlockSize) != 0) + { + throw ExceptionUtility.CryptographicException(Resources.DecryptInvalidDataSize); + } + + if (_dataBuffer == null) + { + CryptoApiHelper.DecryptData(_keyHandle, inputBuffer, inputOffset, inputCount, ref buffer, 0, _paddingValue, true); + Reset(); + return buffer; + } + + var destinationArray = new byte[_dataBuffer.Length + inputCount]; + Array.Copy(_dataBuffer, 0, destinationArray, 0, _dataBuffer.Length); + Array.Copy(inputBuffer, inputOffset, destinationArray, _dataBuffer.Length, inputCount); + + CryptoApiHelper.DecryptData(_keyHandle, destinationArray, 0, destinationArray.Length, ref buffer, 0, _paddingValue, true); + Reset(); + return buffer; + } + + [SecuritySafeCritical] + private void Reset() + { + _dataBuffer = null; + + if (_transformMode == Gost_28147_89_CryptoTransformMode.Encrypt) + { + CryptoApiHelper.EndEncrypt(_providerType, _keyHandle); + } + else + { + CryptoApiHelper.EndDecrypt(_providerType, _keyHandle); + } + } + + [SecuritySafeCritical] + private void Dispose(bool disposing) + { + if (disposing) + { + if (_ivValue != null) + { + Array.Clear(_ivValue, 0, _ivValue.Length); + _ivValue = null; + } + + if (_dataBuffer != null) + { + Array.Clear(_dataBuffer, 0, _dataBuffer.Length); + _dataBuffer = null; + } + } + + _keyHandle.TryDispose(); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + ~Gost_28147_89_CryptoTransform() + { + Dispose(false); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransformMode.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransformMode.cs new file mode 100644 index 0000000..f3106ca --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_CryptoTransformMode.cs @@ -0,0 +1,8 @@ +namespace GostCryptography.Gost_28147_89 +{ + enum Gost_28147_89_CryptoTransformMode + { + Encrypt, + Decrypt + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithm.cs new file mode 100644 index 0000000..17474ca --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithm.cs @@ -0,0 +1,148 @@ +using GostCryptography.Base; +using GostCryptography.Native; +using System; +using System.Security; + +namespace GostCryptography.Gost_28147_89 +{ + /// + /// Реализация функции вычисления имитовставки по ГОСТ 28147-89 + /// + public sealed class Gost_28147_89_ImitHashAlgorithm : Gost_28147_89_ImitHashAlgorithmBase, ISafeHandleProvider + { + /// + /// Размер имитовставки ГОСТ 28147-89 + /// + public const int DefaultHashSize = 32; + + /// + /// Наименование алгоритма вычисления имитовставки ГОСТ 28147-89 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147imit"; + + /// + /// Известные наименования алгоритма вычисления имитовставки ГОСТ 28147-89 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_28147_89_ImitHashAlgorithm() : base(DefaultHashSize) + { + _keyAlgorithm = new Gost_28147_89_SymmetricAlgorithm(ProviderType); + } + + /// + [SecuritySafeCritical] + public Gost_28147_89_ImitHashAlgorithm(ProviderType providerType) : base(providerType, DefaultHashSize) + { + _keyAlgorithm = new Gost_28147_89_SymmetricAlgorithm(ProviderType); + } + + /// + /// Конструктор + /// + /// Ключ симметричного шифрования для подсчета имитовставки + /// + [SecuritySafeCritical] + public Gost_28147_89_ImitHashAlgorithm(Gost_28147_89_SymmetricAlgorithmBase key) : base(key.ProviderType, DefaultHashSize) + { + if (key == null) + { + throw ExceptionUtility.ArgumentNull(nameof(key)); + } + + KeyValue = null; + + _keyAlgorithm = Gost_28147_89_SymmetricAlgorithm.CreateFromKey(key); + } + + [SecurityCritical] + private Gost_28147_89_SymmetricAlgorithm _keyAlgorithm; + + [SecurityCritical] + private SafeHashHandleImpl _hashHandle; + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + SafeHashHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get { return _hashHandle; } + } + + /// + public override byte[] Key + { + [SecuritySafeCritical] + get => _keyAlgorithm.Key; + [SecuritySafeCritical] + set => _keyAlgorithm.Key = value; + } + + /// + public override Gost_28147_89_SymmetricAlgorithmBase KeyAlgorithm + { + [SecuritySafeCritical] + get => Gost_28147_89_SymmetricAlgorithm.CreateFromKey(_keyAlgorithm); + [SecuritySafeCritical] + set => _keyAlgorithm = Gost_28147_89_SymmetricAlgorithm.CreateFromKey(value); + } + + /// + [SecuritySafeCritical] + protected override void HashCore(byte[] data, int dataOffset, int dataLength) + { + if (_hashHandle == null) + { + InitHash(); + } + + CryptoApiHelper.HashData(_hashHandle, data, dataOffset, dataLength); + } + + /// + [SecuritySafeCritical] + protected override byte[] HashFinal() + { + if (_hashHandle == null) + { + InitHash(); + } + + return CryptoApiHelper.EndHashData(_hashHandle); + } + + [SecurityCritical] + private void InitHash() + { + var providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType); + var hashHandle = CryptoApiHelper.CreateHashImit(providerHandle, _keyAlgorithm.GetSafeHandle()); + + _hashHandle = hashHandle; + } + + /// + [SecuritySafeCritical] + public override void Initialize() + { + _hashHandle.TryDispose(); + _hashHandle = null; + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + if (disposing) + { + _keyAlgorithm?.Clear(); + _hashHandle.TryDispose(); + } + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithmBase.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithmBase.cs new file mode 100644 index 0000000..07351f2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithmBase.cs @@ -0,0 +1,25 @@ +using GostCryptography.Base; + +namespace GostCryptography.Gost_28147_89 +{ + /// + /// Базовый класс для всех реализаций функции вычисления имитовставки по ГОСТ 28147-89 + /// + public abstract class Gost_28147_89_ImitHashAlgorithmBase : GostKeyedHashAlgorithm + { + /// + protected Gost_28147_89_ImitHashAlgorithmBase(int hashSize) : base(hashSize) + { + } + + /// + protected Gost_28147_89_ImitHashAlgorithmBase(ProviderType providerType, int hashSize) : base(providerType, hashSize) + { + } + + /// + /// Алгоритм симметричного шифрования ключа + /// + public virtual Gost_28147_89_SymmetricAlgorithmBase KeyAlgorithm { get; set; } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithm.cs new file mode 100644 index 0000000..0136d5f --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithm.cs @@ -0,0 +1,433 @@ +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Base; +using GostCryptography.Native; +using GostCryptography.Properties; +using System.Collections.Generic; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_28147_89 +{ + /// + /// Реализация алгоритма симметричного шифрования по ГОСТ 28147-89 + /// + public sealed class Gost_28147_89_SymmetricAlgorithm : Gost_28147_89_SymmetricAlgorithmBase, ISafeHandleProvider + { + /// + /// Наименование алгоритма шифрования ГОСТ 28147-89 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"; + + /// + /// Известные наименования алгоритма шифрования ГОСТ 28147-89 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_28147_89_SymmetricAlgorithm() + { + InitDefaults(); + _providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType).DangerousAddRef(); + _keyHandle = SafeKeyHandleImpl.InvalidHandle; + } + + /// + [SecuritySafeCritical] + public Gost_28147_89_SymmetricAlgorithm(ProviderType providerType) : base(providerType) + { + InitDefaults(); + _providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType).DangerousAddRef(); + _keyHandle = SafeKeyHandleImpl.InvalidHandle; + } + + [SecurityCritical] + internal Gost_28147_89_SymmetricAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl keyHandle) : base(providerType) + { + InitDefaults(); + _providerHandle = providerHandle.DangerousAddRef(); + _keyHandle = CryptoApiHelper.DuplicateKey(keyHandle); + + if (CryptoApiHelper.GetKeyParameterInt32(_keyHandle, Constants.KP_ALGID) != Constants.CALG_G28147) + { + throw ExceptionUtility.Argument(nameof(keyHandle), Resources.RequiredGost28147); + } + } + + [SecurityCritical] + private void InitDefaults() + { + Mode = CipherMode.CFB; + Padding = PaddingMode.None; + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + + /// + /// Создает экземпляр на основе указанного алгоритма шифрования + /// + /// Алгоритм симметричного шифрования ключа + [SecurityCritical] + public static Gost_28147_89_SymmetricAlgorithm CreateFromKey(Gost_28147_89_SymmetricAlgorithmBase keyAlgorithm) + { + if (keyAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyAlgorithm)); + } + + return (keyAlgorithm is Gost_28147_89_SymmetricAlgorithm sessionKey) + ? new Gost_28147_89_SymmetricAlgorithm(keyAlgorithm.ProviderType, sessionKey._providerHandle, sessionKey.GetSafeHandle()) + : new Gost_28147_89_SymmetricAlgorithm(keyAlgorithm.ProviderType) { Key = keyAlgorithm.Key }; + } + + /// + /// Создает экземпляр на основе указанного пароля + /// + [SecuritySafeCritical] + public static Gost_28147_89_SymmetricAlgorithm CreateFromPassword(HashAlgorithm hashAlgorithm, byte[] password) + { + if (hashAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hashAlgorithm)); + } + + if (!(hashAlgorithm is IGostAlgorithm gostHashAlgorithm)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(hashAlgorithm)); + } + + if (!(hashAlgorithm is ISafeHandleProvider hashHandleProvider)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(hashAlgorithm)); + } + + if (password == null) + { + throw ExceptionUtility.ArgumentNull(nameof(password)); + } + + hashAlgorithm.TransformBlock(password, 0, password.Length, password, 0); + + var providerType = gostHashAlgorithm.ProviderType; + var providerHandle = CryptoApiHelper.GetProviderHandle(providerType); + var symKeyHandle = CryptoApiHelper.DeriveSymKey(providerHandle, hashHandleProvider.SafeHandle); + + return new Gost_28147_89_SymmetricAlgorithm(providerType, providerHandle, symKeyHandle); + } + + /// + /// Создает экземпляр на основе сессионного ключа + /// + [SecuritySafeCritical] + public static Gost_28147_89_SymmetricAlgorithm CreateFromSessionKey(ProviderType providerType, byte[] sessionKey) + { + if (sessionKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(sessionKey)); + } + + if (sessionKey.Length != 32) + { + throw ExceptionUtility.Argument(nameof(sessionKey), Resources.InvalidHashSize, 32); + } + + var providerHandle = CryptoApiHelper.GetProviderHandle(providerType); + var randomNumberGenerator = CryptoApiHelper.GetRandomNumberGenerator(providerType); + + using (var keyHandle = CryptoApiHelper.ImportBulkSessionKey(providerType, providerHandle, sessionKey, randomNumberGenerator)) + { + return new Gost_28147_89_SymmetricAlgorithm(providerType, providerHandle, keyHandle); + } + } + + [SecurityCritical] + private SafeProvHandleImpl _providerHandle; + + [SecurityCritical] + private SafeKeyHandleImpl _keyHandle; + + /// + SafeKeyHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get + { + if (_keyHandle.IsInvalid) + { + GenerateKey(); + } + + return _keyHandle; + } + } + + /// + public override byte[] Key + { + [SecuritySafeCritical] + get { throw ExceptionUtility.NotSupported(Resources.SymmetryExportBulkKeyNotSupported); } + [SecuritySafeCritical] + set { throw ExceptionUtility.NotSupported(Resources.SymmetryImportBulkKeyNotSupported); } + } + + /// + public override int KeySize + { + [SecuritySafeCritical] + get { return base.KeySize; } + [SecuritySafeCritical] + set + { + base.KeySize = value; + + _keyHandle.TryDispose(); + _providerHandle.TryDispose(); + + _keyHandle = SafeKeyHandleImpl.InvalidHandle; + _providerHandle = SafeProvHandleImpl.InvalidHandle; + } + } + + /// + /// Создает симметричный ключ на основе пароля + /// + [SecuritySafeCritical] + public void DeriveFromPassword(GostHashAlgorithm hashAlgorithm, byte[] password) + { + var provider = CreateFromPassword(hashAlgorithm, password); + + _keyHandle.TryDispose(); + _providerHandle.TryDispose(); + + _keyHandle = provider._keyHandle; + _providerHandle = provider._providerHandle; + + provider._keyHandle = SafeKeyHandleImpl.InvalidHandle; + provider._providerHandle = SafeProvHandleImpl.InvalidHandle; + } + + /// + [SecuritySafeCritical] + public override byte[] ComputeHash(HashAlgorithm hash) + { + if (!(hash is ISafeHandleProvider hashHadnleProvider)) + { + throw ExceptionUtility.Argument(nameof(hash), Resources.RequiredGostHash); + } + + var hashHandle = hashHadnleProvider.SafeHandle; + + CryptoApiHelper.HashKeyExchange(hashHandle, this.GetSafeHandle()); + + return CryptoApiHelper.EndHashData(hashHandle); + } + + /// + [SecuritySafeCritical] + public override void GenerateIV() + { + IVValue = new byte[DefaultIvSize]; + CryptoApiHelper.GetRandomNumberGenerator(ProviderType).GetBytes(IVValue); + } + + /// + [SecuritySafeCritical] + public override void GenerateKey() + { + _keyHandle = CryptoApiHelper.GenerateKey(_providerHandle, Constants.CALG_G28147, CspProviderFlags.NoFlags); + + KeyValue = null; + KeySizeValue = DefaultKeySize; + } + + /// + [SecuritySafeCritical] + public override ICryptoTransform CreateEncryptor() + { + var hKey = CryptoApiHelper.DuplicateKey(this.GetSafeHandle()); + + return CreateCryptoTransform(hKey, IV, Gost_28147_89_CryptoTransformMode.Encrypt); + } + + /// + [SecuritySafeCritical] + public override ICryptoTransform CreateEncryptor(byte[] key, byte[] iv) + { + throw ExceptionUtility.NotSupported(Resources.Gost28147UnsafeCreateDecryptorNotSupported); + } + + /// + [SecuritySafeCritical] + public override ICryptoTransform CreateDecryptor() + { + var hKey = CryptoApiHelper.DuplicateKey(this.GetSafeHandle()); + + return CreateCryptoTransform(hKey, IV, Gost_28147_89_CryptoTransformMode.Decrypt); + } + + /// + [SecuritySafeCritical] + public override ICryptoTransform CreateDecryptor(byte[] key, byte[] iv) + { + throw ExceptionUtility.NotSupported(Resources.Gost28147UnsafeCreateDecryptorNotSupported); + } + + [SecurityCritical] + private ICryptoTransform CreateCryptoTransform(SafeKeyHandleImpl hKey, byte[] iv, Gost_28147_89_CryptoTransformMode transformMode) + { + // TODO: Нужен рефактор! Порядок параметров важен! + if (hKey == null) + { + hKey = CryptoApiHelper.GenerateKey(CryptoApiHelper.GetProviderHandle(ProviderType), Constants.CALG_G28147, CspProviderFlags.NoFlags); + } + + var keyParameters = new Dictionary(); + + if (ModeValue == CipherMode.CTS) + { + throw ExceptionUtility.CryptographicException(Resources.CipherTextSteamingNotSupported); + } + + if ((Padding != PaddingMode.None) && ((ModeValue == CipherMode.OFB) || (ModeValue == CipherMode.CFB))) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidPaddingMode); + } + + // Установка KP_MODE + keyParameters.Add(Constants.KP_MODE, ModeValue); + + // Установка KP_PADDING + keyParameters.Add(Constants.KP_PADDING, Constants.ZERO_PADDING); + + if ((ModeValue == CipherMode.CFB) && (FeedbackSizeValue != DefaultFeedbackSize)) + { + throw ExceptionUtility.CryptographicException(Resources.IncorrectFeedbackSize); + } + + // Установка KP_IV + if (ModeValue != CipherMode.ECB) + { + if (iv == null) + { + iv = new byte[DefaultIvSize]; + CryptoApiHelper.GetRandomNumberGenerator(ProviderType).GetBytes(iv); + } + + if (iv.Length < DefaultIvSize) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidIvSize); + } + + keyParameters.Add(Constants.KP_IV, iv); + } + + return new Gost_28147_89_CryptoTransform(ProviderType, hKey, keyParameters, PaddingValue, ModeValue, BlockSizeValue, transformMode); + } + + /// + [SecuritySafeCritical] + public override SymmetricAlgorithm DecodePrivateKey(byte[] encodedKeyExchangeData, GostKeyExchangeExportMethod keyExchangeExportMethod) + { + if (encodedKeyExchangeData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encodedKeyExchangeData)); + } + + int keyExchangeExportAlgId; + + if (keyExchangeExportMethod == GostKeyExchangeExportMethod.GostKeyExport) + { + keyExchangeExportAlgId = Constants.CALG_SIMPLE_EXPORT; + } + else if (keyExchangeExportMethod == GostKeyExchangeExportMethod.CryptoProKeyExport) + { + keyExchangeExportAlgId = Constants.CALG_PRO_EXPORT; + } + else + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(keyExchangeExportMethod)); + } + + var providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType); + + var keyExchangeInfo = new Gost_28147_89_KeyExchangeInfo(); + keyExchangeInfo.Decode(encodedKeyExchangeData); + + using (var keyHandle = CryptoApiHelper.DuplicateKey(this.GetSafeHandle())) + { + CryptoApiHelper.SetKeyExchangeExportAlgId(ProviderType, keyHandle, keyExchangeExportAlgId); + + var keyExchangeHandle = CryptoApiHelper.ImportKeyExchange(providerHandle, keyExchangeInfo, keyHandle); + + return new Gost_28147_89_SymmetricAlgorithm(ProviderType, providerHandle, keyExchangeHandle); + } + } + + /// + [SecuritySafeCritical] + public override byte[] EncodePrivateKey(Gost_28147_89_SymmetricAlgorithmBase keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod) + { + if (keyExchangeAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeAlgorithm)); + } + + int keyExchangeExportAlgId; + + if (keyExchangeExportMethod == GostKeyExchangeExportMethod.GostKeyExport) + { + keyExchangeExportAlgId = Constants.CALG_SIMPLE_EXPORT; + } + else if (keyExchangeExportMethod == GostKeyExchangeExportMethod.CryptoProKeyExport) + { + keyExchangeExportAlgId = Constants.CALG_PRO_EXPORT; + } + else + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(keyExchangeExportMethod)); + } + + var currentSessionKey = keyExchangeAlgorithm as Gost_28147_89_SymmetricAlgorithm; + + if (currentSessionKey == null) + { + using (var derivedSessionKey = new Gost_28147_89_SymmetricAlgorithm(ProviderType)) + { + derivedSessionKey.Key = keyExchangeAlgorithm.Key; + + return EncodePrivateKeyInternal(derivedSessionKey, keyExchangeExportAlgId); + } + } + + return EncodePrivateKeyInternal(currentSessionKey, keyExchangeExportAlgId); + } + + [SecurityCritical] + private byte[] EncodePrivateKeyInternal(Gost_28147_89_SymmetricAlgorithm sessionKey, int keyExchangeExportAlgId) + { + var hSessionKey = sessionKey.GetSafeHandle(); + + using (var keyHandle = CryptoApiHelper.DuplicateKey(this.GetSafeHandle())) + { + CryptoApiHelper.SetKeyExchangeExportAlgId(ProviderType, keyHandle, keyExchangeExportAlgId); + CryptoApiHelper.SetKeyParameter(keyHandle, Constants.KP_IV, IV); + + var keyExchangeInfo = CryptoApiHelper.ExportKeyExchange(hSessionKey, keyHandle); + + return keyExchangeInfo.Encode(); + } + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + _keyHandle.TryDispose(); + _providerHandle.TryDispose(); + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithmBase.cs b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithmBase.cs new file mode 100644 index 0000000..330f027 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithmBase.cs @@ -0,0 +1,58 @@ +using GostCryptography.Base; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_28147_89 +{ + /// + /// Базовый класс для всех реализаций симметричного шифрования по ГОСТ 28147-89 + /// + public abstract class Gost_28147_89_SymmetricAlgorithmBase : GostSymmetricAlgorithm + { + public const int DefaultIvSize = 8; + public const int DefaultKeySize = 256; + public const int DefaultBlockSize = 64; + public const int DefaultFeedbackSize = 64; + public static readonly KeySizes[] DefaultLegalKeySizes = { new KeySizes(DefaultKeySize, DefaultKeySize, 0) }; + public static readonly KeySizes[] DefaultLegalBlockSizes = { new KeySizes(DefaultBlockSize, DefaultBlockSize, 0) }; + + /// + protected Gost_28147_89_SymmetricAlgorithmBase() + { + InitDefaults(); + } + + /// + protected Gost_28147_89_SymmetricAlgorithmBase(ProviderType providerType) : base(providerType) + { + InitDefaults(); + } + + private void InitDefaults() + { + KeySizeValue = DefaultKeySize; + BlockSizeValue = DefaultBlockSize; + FeedbackSizeValue = DefaultFeedbackSize; + LegalBlockSizesValue = DefaultLegalBlockSizes; + LegalKeySizesValue = DefaultLegalKeySizes; + } + + /// + /// Хэширует секретный ключ + /// + public abstract byte[] ComputeHash(HashAlgorithm hash); + + /// + /// Экспортирует (шифрует) секретный ключ + /// + /// Общий секретный ключ + /// Алгоритм экспорта общего секретного ключа + public abstract byte[] EncodePrivateKey(Gost_28147_89_SymmetricAlgorithmBase keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod); + + /// + /// Импортирует (дешифрует) секретный ключ + /// + /// Зашифрованный общий секретный ключ + /// Алгоритм экспорта общего секретного ключа + public abstract SymmetricAlgorithm DecodePrivateKey(byte[] encodedKeyExchangeData, GostKeyExchangeExportMethod keyExchangeExportMethod); + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_AsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_AsymmetricAlgorithm.cs new file mode 100644 index 0000000..ffbe4cd --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_AsymmetricAlgorithm.cs @@ -0,0 +1,127 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using GostCryptography.Properties; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2001 + /// + public sealed class Gost_R3410_2001_AsymmetricAlgorithm : Gost_R3410_AsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2001 + /// + public const int DefaultKeySizeValue = 512; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2001 + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"; + + /// + /// Устаревшее наименование алгоритма цифровой подписи ГОСТ Р 34.10-2001 + /// + public const string ObsoleteSignatureAlgorithmValue = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2001 + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"; + + /// + /// Известные наименования алгоритма цифровой подписи ГОСТ Р 34.10-2001 + /// + public static readonly string[] KnownSignatureAlgorithmNames = { SignatureAlgorithmValue, ObsoleteSignatureAlgorithmValue }; + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_AsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_AsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_AsymmetricAlgorithm(CspParameters providerParameters) : base(providerParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_EL_SF; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410EL; + + /// + protected override Gost_R3410_2001_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2001_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2001_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2001_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2001_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_94_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + protected override void ValidateHashParameter(byte[] hash) + { + if (hash == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hash)); + } + + if (hash.Length != Gost_R3411_94_HashAlgorithm.DefaultHashSizeValue / 8) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(hash), Resources.InvalidHashSize, Gost_R3411_94_HashAlgorithm.DefaultHashSizeValue / 8); + } + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2001_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2001_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2001_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_EphemeralAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_EphemeralAsymmetricAlgorithm.cs new file mode 100644 index 0000000..8a2c538 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_EphemeralAsymmetricAlgorithm.cs @@ -0,0 +1,107 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2001 на основе эфимерного ключа + /// + public sealed class Gost_R3410_2001_EphemeralAsymmetricAlgorithm : Gost_R3410_EphemeralAsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2001 + /// + public const int DefaultKeySizeValue = 512; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2001 + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2001 + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"; + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_EphemeralAsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_EphemeralAsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_EphemeralAsymmetricAlgorithm(Gost_R3410_2001_KeyExchangeParams keyParameters) : this(GostCryptoConfig.ProviderType, keyParameters) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2001_EphemeralAsymmetricAlgorithm(ProviderType providerType, Gost_R3410_2001_KeyExchangeParams keyParameters) : base(providerType, keyParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_EL_EPHEM; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410EL; + + /// + protected override Gost_R3410_2001_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2001_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2001_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2001_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2001_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_94_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2001_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2001_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2001_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeAlgorithm.cs new file mode 100644 index 0000000..d52e8c1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeAlgorithm.cs @@ -0,0 +1,18 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + public sealed class Gost_R3410_2001_KeyExchangeAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + [SecurityCritical] + public Gost_R3410_2001_KeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2001_KeyExchangeParams keyExchangeParameters, int keySize, int signatureAlgId) + : base(providerType, provHandle, keyHandle, keyExchangeParameters, keySize, signatureAlgId) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeDeformatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeDeformatter.cs new file mode 100644 index 0000000..62880bd --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeDeformatter.cs @@ -0,0 +1,24 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация дешифрования общего секретного ключа по ГОСТ Р 34.10-2001 + /// + public sealed class Gost_R3410_2001_KeyExchangeDeformatter : Gost_R3410_KeyExchangeDeformatter< + Gost_R3410_2001_KeyExchange, + Gost_R3410_2001_KeyExchangeParams, + Gost_R3410_2001_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2001_KeyExchangeDeformatter() + { + } + + /// + public Gost_R3410_2001_KeyExchangeDeformatter(AsymmetricAlgorithm privateKey) : base(privateKey) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeFormatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeFormatter.cs new file mode 100644 index 0000000..a0ce792 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeFormatter.cs @@ -0,0 +1,31 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Base; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация шифрования общего секретного ключа по ГОСТ Р 34.10-2001 + /// + public sealed class Gost_R3410_2001_KeyExchangeFormatter : Gost_R3410_KeyExchangeFormatter< + Gost_R3410_2001_KeyExchange, + Gost_R3410_2001_KeyExchangeParams, + Gost_R3410_2001_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2001_KeyExchangeFormatter() + { + } + + /// + public Gost_R3410_2001_KeyExchangeFormatter(AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + + /// + protected override Gost_R3410_EphemeralAsymmetricAlgorithm CreateEphemeralAlgorithm(ProviderType providerType, Gost_R3410_2001_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2001_EphemeralAsymmetricAlgorithm(providerType, keyExchangeParameters); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeXmlSerializer.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeXmlSerializer.cs new file mode 100644 index 0000000..08f025e --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeXmlSerializer.cs @@ -0,0 +1,20 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2001; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// XML-сериализатора параметров ключа цифровой подписи ГОСТ Р 34.10-2001 + /// + public sealed class Gost_R3410_2001_KeyExchangeXmlSerializer : Gost_R3410_KeyExchangeXmlSerializer + { + /// + /// Имя тега с информацией о параметрах ключа ГОСТ Р 34.10-2001 + /// + public const string KeyValueTag = "GostKeyValue"; + + /// + public Gost_R3410_2001_KeyExchangeXmlSerializer() : base(KeyValueTag) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_SignatureDescription.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_SignatureDescription.cs new file mode 100644 index 0000000..79ef659 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2001_SignatureDescription.cs @@ -0,0 +1,20 @@ +using GostCryptography.Base; +using GostCryptography.Gost_R3411; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Информация о свойствах цифровой подписи ГОСТ Р 34.10-2001 + /// + public sealed class Gost_R3410_2001_SignatureDescription : GostSignatureDescription + { + /// + public Gost_R3410_2001_SignatureDescription() + { + KeyAlgorithm = typeof(Gost_R3410_2001_AsymmetricAlgorithm).AssemblyQualifiedName; + DigestAlgorithm = typeof(Gost_R3411_94_HashAlgorithm).AssemblyQualifiedName; + FormatterAlgorithm = typeof(GostSignatureFormatter).AssemblyQualifiedName; + DeformatterAlgorithm = typeof(GostSignatureDeformatter).AssemblyQualifiedName; + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_AsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_AsymmetricAlgorithm.cs new file mode 100644 index 0000000..580364a --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_AsymmetricAlgorithm.cs @@ -0,0 +1,122 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using GostCryptography.Properties; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2012/256 + /// + public sealed class Gost_R3410_2012_256_AsymmetricAlgorithm : Gost_R3410_AsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2012/256 + /// + public const int DefaultKeySizeValue = 512; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2012/256 + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2012/256 + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-256"; + + /// + /// Известные наименования алгоритма цифровой подписи ГОСТ Р 34.10-2012/256 + /// + public static readonly string[] KnownSignatureAlgorithmNames = { SignatureAlgorithmValue }; + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_AsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType_2012_512) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_AsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_AsymmetricAlgorithm(CspParameters providerParameters) : base(providerParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_GR3410_2012_256_SF; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410_2012_256; + + /// + protected override Gost_R3410_2012_256_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2012_256_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2012_256_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_256_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_256_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_2012_256_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + protected override void ValidateHashParameter(byte[] hash) + { + if (hash == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hash)); + } + + if (hash.Length != Gost_R3411_2012_256_HashAlgorithm.DefaultHashSizeValue / 8) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(hash), Resources.InvalidHashSize, Gost_R3411_2012_256_HashAlgorithm.DefaultHashSizeValue / 8); + } + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2012_256_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2012_256_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2012_256_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm.cs new file mode 100644 index 0000000..aa07b76 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm.cs @@ -0,0 +1,107 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2012/256 на основе эфимерного ключа + /// + public sealed class Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm : Gost_R3410_EphemeralAsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2012/256 + /// + public const int DefaultKeySizeValue = 512; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 256 бит + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2012 для ключей длины 256 бит + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-256"; + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType_2012_512) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm(Gost_R3410_2012_256_KeyExchangeParams keyParameters) : this(GostCryptoConfig.ProviderType_2012_512, keyParameters) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm(ProviderType providerType, Gost_R3410_2012_256_KeyExchangeParams keyParameters) : base(providerType, keyParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_GR3410_12_256_EPHEM; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410_2012_256; + + /// + protected override Gost_R3410_2012_256_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2012_256_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2012_256_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_256_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_256_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_2012_256_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2012_256_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2012_256_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2012_256_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeAlgorithm.cs new file mode 100644 index 0000000..64de54c --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeAlgorithm.cs @@ -0,0 +1,18 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + public sealed class Gost_R3410_2012_256_KeyExchangeAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + [SecurityCritical] + public Gost_R3410_2012_256_KeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_256_KeyExchangeParams keyExchangeParameters, int keySize, int signatureAlgId) + : base(providerType, provHandle, keyHandle, keyExchangeParameters, keySize, signatureAlgId) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeDeformatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeDeformatter.cs new file mode 100644 index 0000000..f93edbc --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeDeformatter.cs @@ -0,0 +1,24 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация дешифрования общего секретного ключа по ГОСТ Р 34.10-2012/256 + /// + public sealed class Gost_R3410_2012_256_KeyExchangeDeformatter : Gost_R3410_KeyExchangeDeformatter< + Gost_R3410_2012_256_KeyExchange, + Gost_R3410_2012_256_KeyExchangeParams, + Gost_R3410_2012_256_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2012_256_KeyExchangeDeformatter() + { + } + + /// + public Gost_R3410_2012_256_KeyExchangeDeformatter(AsymmetricAlgorithm privateKey) : base(privateKey) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeFormatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeFormatter.cs new file mode 100644 index 0000000..d7e9f76 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeFormatter.cs @@ -0,0 +1,31 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Base; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация шифрования общего секретного ключа по ГОСТ Р 34.10-2012/256 + /// + public sealed class Gost_R3410_2012_256_KeyExchangeFormatter : Gost_R3410_KeyExchangeFormatter< + Gost_R3410_2012_256_KeyExchange, + Gost_R3410_2012_256_KeyExchangeParams, + Gost_R3410_2012_256_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2012_256_KeyExchangeFormatter() + { + } + + /// + public Gost_R3410_2012_256_KeyExchangeFormatter(AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + + /// + protected override Gost_R3410_EphemeralAsymmetricAlgorithm CreateEphemeralAlgorithm(ProviderType providerType, Gost_R3410_2012_256_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm(providerType, keyExchangeParameters); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeXmlSerializer.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeXmlSerializer.cs new file mode 100644 index 0000000..3e4473e --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeXmlSerializer.cs @@ -0,0 +1,20 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// XML-сериализатора параметров ключа цифровой подписи ГОСТ Р 34.10-2012/256 + /// + public sealed class Gost_R3410_2012_256_KeyExchangeXmlSerializer : Gost_R3410_KeyExchangeXmlSerializer + { + /// + /// Имя тега с информацией о параметрах ключа ГОСТ Р 34.10-2012/256 + /// + public const string KeyValueTag = "Gost_R3410_2012_256_KeyValue"; + + /// + public Gost_R3410_2012_256_KeyExchangeXmlSerializer() : base(KeyValueTag) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_SignatureDescription.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_SignatureDescription.cs new file mode 100644 index 0000000..c5f21a7 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_256_SignatureDescription.cs @@ -0,0 +1,20 @@ +using GostCryptography.Base; +using GostCryptography.Gost_R3411; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Информация о свойствах цифровой подписи ГОСТ Р 34.10-2012/256 + /// + public sealed class Gost_R3410_2012_256_SignatureDescription : GostSignatureDescription + { + /// + public Gost_R3410_2012_256_SignatureDescription() + { + KeyAlgorithm = typeof(Gost_R3410_2012_256_AsymmetricAlgorithm).AssemblyQualifiedName; + DigestAlgorithm = typeof(Gost_R3411_2012_256_HashAlgorithm).AssemblyQualifiedName; + FormatterAlgorithm = typeof(GostSignatureFormatter).AssemblyQualifiedName; + DeformatterAlgorithm = typeof(GostSignatureDeformatter).AssemblyQualifiedName; + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_AsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_AsymmetricAlgorithm.cs new file mode 100644 index 0000000..5ec94fd --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_AsymmetricAlgorithm.cs @@ -0,0 +1,122 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using GostCryptography.Properties; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2012/512 + /// + public sealed class Gost_R3410_2012_512_AsymmetricAlgorithm : Gost_R3410_AsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2012/512 + /// + public const int DefaultKeySizeValue = 1024; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2012/512 + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2012/512 + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-512"; + + /// + /// Известные наименования алгоритма цифровой подписи ГОСТ Р 34.10-2012/512 + /// + public static readonly string[] KnownSignatureAlgorithmNames = { SignatureAlgorithmValue }; + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_AsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType_2012_1024) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_AsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_AsymmetricAlgorithm(CspParameters providerParameters) : base(providerParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_GR3410_2012_512_SF; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410_2012_512; + + /// + protected override Gost_R3410_2012_512_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2012_512_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2012_512_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_512_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_512_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_2012_512_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + protected override void ValidateHashParameter(byte[] hash) + { + if (hash == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hash)); + } + + if (hash.Length != Gost_R3411_2012_512_HashAlgorithm.DefaultHashSizeValue / 8) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(hash), Resources.InvalidHashSize, Gost_R3411_2012_512_HashAlgorithm.DefaultHashSizeValue / 8); + } + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2012_512_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2012_512_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2012_512_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm.cs new file mode 100644 index 0000000..4ab60f5 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm.cs @@ -0,0 +1,107 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_R3411; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма ГОСТ Р 34.10-2012/512 на основе эфимерного ключа + /// + public sealed class Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm : Gost_R3410_EphemeralAsymmetricAlgorithm + { + /// + /// Размер ключа ГОСТ Р 34.10-2012/512 + /// + public const int DefaultKeySizeValue = 1024; + + /// + /// Наименование алгоритма цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 512 бит + /// + public const string SignatureAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"; + + /// + /// Наименование алгоритма обмена ключами ГОСТ Р 34.10-2012 для ключей длины 512 бит + /// + public const string KeyExchangeAlgorithmValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-512"; + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm() : this(GostCryptoConfig.ProviderType_2012_1024) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm(ProviderType providerType) : base(providerType, DefaultKeySizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm(Gost_R3410_2012_512_KeyExchangeParams keyParameters) : this(GostCryptoConfig.ProviderType_2012_1024, keyParameters) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm(ProviderType providerType, Gost_R3410_2012_512_KeyExchangeParams keyParameters) : base(providerType, keyParameters, DefaultKeySizeValue) + { + } + + /// + public override string AlgorithmName => SignatureAlgorithmValue; + + /// + public override string SignatureAlgorithm => SignatureAlgorithmValue; + + /// + public override string KeyExchangeAlgorithm => KeyExchangeAlgorithmValue; + + /// + protected override int ExchangeAlgId => Constants.CALG_DH_GR3410_12_512_EPHEM; + + /// + protected override int SignatureAlgId => Constants.CALG_GR3410_2012_512; + + /// + protected override Gost_R3410_2012_512_KeyExchangeParams CreateKeyExchangeParams() + { + return new Gost_R3410_2012_512_KeyExchangeParams(); + } + + /// + [SecuritySafeCritical] + protected override Gost_R3410_2012_512_KeyExchangeAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_512_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_512_KeyExchangeAlgorithm(providerType, provHandle, keyHandle, keyExchangeParameters, KeySizeValue, SignatureAlgId); + } + + /// + [SecuritySafeCritical] + public override GostHashAlgorithm CreateHashAlgorithm() + { + return new Gost_R3411_2012_512_HashAlgorithm(ProviderType, this.GetSafeHandle()); + } + + /// + public override GostKeyExchangeFormatter CreateKeyExchangeFormatter() + { + return new Gost_R3410_2012_512_KeyExchangeFormatter(this); + } + + /// + public override GostKeyExchangeDeformatter CreateKeyExchangeDeformatter() + { + return new Gost_R3410_2012_512_KeyExchangeDeformatter(this); + } + + /// + protected override Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer() + { + return new Gost_R3410_2012_512_KeyExchangeXmlSerializer(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeAlgorithm.cs new file mode 100644 index 0000000..3a21a71 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeAlgorithm.cs @@ -0,0 +1,18 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + public sealed class Gost_R3410_2012_512_KeyExchangeAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + [SecurityCritical] + public Gost_R3410_2012_512_KeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_2012_512_KeyExchangeParams keyExchangeParameters, int keySize, int signatureAlgId) + : base(providerType, provHandle, keyHandle, keyExchangeParameters, keySize, signatureAlgId) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeDeformatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeDeformatter.cs new file mode 100644 index 0000000..4537fd8 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeDeformatter.cs @@ -0,0 +1,24 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация дешифрования общего секретного ключа по ГОСТ Р 34.10-2012/512 + /// + public sealed class Gost_R3410_2012_512_KeyExchangeDeformatter : Gost_R3410_KeyExchangeDeformatter< + Gost_R3410_2012_512_KeyExchange, + Gost_R3410_2012_512_KeyExchangeParams, + Gost_R3410_2012_512_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2012_512_KeyExchangeDeformatter() + { + } + + /// + public Gost_R3410_2012_512_KeyExchangeDeformatter(AsymmetricAlgorithm privateKey) : base(privateKey) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeFormatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeFormatter.cs new file mode 100644 index 0000000..3f2d361 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeFormatter.cs @@ -0,0 +1,31 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Base; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация шифрования общего секретного ключа по ГОСТ Р 34.10-2012/512 + /// + public sealed class Gost_R3410_2012_512_KeyExchangeFormatter : Gost_R3410_KeyExchangeFormatter< + Gost_R3410_2012_512_KeyExchange, + Gost_R3410_2012_512_KeyExchangeParams, + Gost_R3410_2012_512_KeyExchangeAlgorithm> + { + /// + public Gost_R3410_2012_512_KeyExchangeFormatter() + { + } + + /// + public Gost_R3410_2012_512_KeyExchangeFormatter(AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + + /// + protected override Gost_R3410_EphemeralAsymmetricAlgorithm CreateEphemeralAlgorithm(ProviderType providerType, Gost_R3410_2012_512_KeyExchangeParams keyExchangeParameters) + { + return new Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm(providerType, keyExchangeParameters); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeXmlSerializer.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeXmlSerializer.cs new file mode 100644 index 0000000..5b242aa --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeXmlSerializer.cs @@ -0,0 +1,20 @@ +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// XML-сериализатора параметров ключа цифровой подписи ГОСТ Р 34.10-2012/512 + /// + public sealed class Gost_R3410_2012_512_KeyExchangeXmlSerializer : Gost_R3410_KeyExchangeXmlSerializer + { + /// + /// Имя тега с информацией о параметрах ключа ГОСТ Р 34.10-2012/512 + /// + public const string KeyValueTag = "Gost_R3410_2012_512_KeyValue"; + + /// + public Gost_R3410_2012_512_KeyExchangeXmlSerializer() : base(KeyValueTag) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_SignatureDescription.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_SignatureDescription.cs new file mode 100644 index 0000000..98a38f1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_2012_512_SignatureDescription.cs @@ -0,0 +1,20 @@ +using GostCryptography.Base; +using GostCryptography.Gost_R3411; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Информация о свойствах цифровой подписи ГОСТ Р 34.10-2012/512 + /// + public sealed class Gost_R3410_2012_512_SignatureDescription : GostSignatureDescription + { + /// + public Gost_R3410_2012_512_SignatureDescription() + { + KeyAlgorithm = typeof(Gost_R3410_2012_512_AsymmetricAlgorithm).AssemblyQualifiedName; + DigestAlgorithm = typeof(Gost_R3411_2012_512_HashAlgorithm).AssemblyQualifiedName; + FormatterAlgorithm = typeof(GostSignatureFormatter).AssemblyQualifiedName; + DeformatterAlgorithm = typeof(GostSignatureDeformatter).AssemblyQualifiedName; + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithm.cs new file mode 100644 index 0000000..ae1757f --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithm.cs @@ -0,0 +1,636 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Native; +using GostCryptography.Properties; +using GostCryptography.Reflection; +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Cryptography; +using System.Security.Permissions; + +namespace GostCryptography.Gost_R3410 +{ + /// + public abstract class Gost_R3410_AsymmetricAlgorithm : Gost_R3410_AsymmetricAlgorithmBase, ICspAsymmetricAlgorithm, ISafeHandleProvider, ISafeHandleProvider + where TKeyParams : Gost_R3410_KeyExchangeParams + where TKeyAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + [SecuritySafeCritical] + protected Gost_R3410_AsymmetricAlgorithm(ProviderType providerType, int keySize) : base(providerType, keySize) + { + _providerParameters = CreateDefaultProviderParameters(); + InitKeyContainer(_providerParameters, out _isRandomKeyContainer); + } + + /// + /// Конструктор + /// + /// Параметры криптографического провайдера + /// Размер ключа в битах + [SecuritySafeCritical] + protected Gost_R3410_AsymmetricAlgorithm(CspParameters providerParameters, int keySize) : base((ProviderType)providerParameters.ProviderType, keySize) + { + _providerParameters = CopyExistingProviderParameters(providerParameters); + InitKeyContainer(_providerParameters, out _isRandomKeyContainer); + } + + private readonly CspParameters _providerParameters; + private readonly bool _isRandomKeyContainer; + private bool _isPersistentKey; + private bool _isPublicKeyOnly; + + [SecurityCritical] + private SafeProvHandleImpl _providerHandle; + [SecurityCritical] + private volatile SafeKeyHandleImpl _keyHandle; + + /// + SafeProvHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get + { + GetKeyPair(); + + return _providerHandle; + } + } + + /// + SafeKeyHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get + { + GetKeyPair(); + + return _keyHandle; + } + } + + /// + public override int KeySize + { + [SecuritySafeCritical] + get + { + GetKeyPair(); + + return base.KeySize; + } + } + + /// + /// Хранить ключ в криптографическом провайдере + /// + public bool IsPersistentKey + { + [SecuritySafeCritical] + get + { + if (_providerHandle == null) + { + lock (this) + { + if (_providerHandle == null) + { + _providerHandle = CreateProviderHandle(_providerParameters, _isRandomKeyContainer); + } + } + } + + return _isPersistentKey; + } + [SecuritySafeCritical] + set + { + var currentValue = IsPersistentKey; + + if (currentValue != value) + { + var keyContainerPermission = new KeyContainerPermission(KeyContainerPermissionFlags.NoFlags); + var containerAccessEntry = new KeyContainerPermissionAccessEntry(_providerParameters, value ? KeyContainerPermissionFlags.Create : KeyContainerPermissionFlags.Delete); + keyContainerPermission.AccessEntries.Add(containerAccessEntry); + keyContainerPermission.Demand(); + + _isPersistentKey = value; + _providerHandle.DeleteOnClose = !_isPersistentKey; + } + } + } + + /// + /// Имеется доступ только к открытому ключу + /// + public bool IsPublicKeyOnly + { + [SecuritySafeCritical] + get + { + GetKeyPair(); + + return _isPublicKeyOnly; + } + } + + /// + public CspKeyContainerInfo CspKeyContainerInfo + { + [SecuritySafeCritical] + get + { + GetKeyPair(); + + return CspKeyContainerInfoHelper.CreateCspKeyContainerInfo(_providerParameters, _isRandomKeyContainer); + } + } + + /// + [SecuritySafeCritical] + public byte[] ExportCspBlob(bool includePrivateParameters) + { + GetKeyPair(); + + if (includePrivateParameters) + { + throw ExceptionUtility.CryptographicException(Resources.UserExportBulkBlob); + } + + return CryptoApiHelper.ExportCspBlob(_keyHandle, SafeKeyHandleImpl.InvalidHandle, Constants.PUBLICKEYBLOB); + } + + /// + [SecuritySafeCritical] + public void ImportCspBlob(byte[] importedKeyBytes) + { + if (importedKeyBytes == null) + { + throw ExceptionUtility.ArgumentNull(nameof(importedKeyBytes)); + } + + if (!IsPublicKeyBlob(importedKeyBytes)) + { + throw ExceptionUtility.Argument(nameof(importedKeyBytes), Resources.UserImportBulkBlob); + } + + var hProv = CryptoApiHelper.GetProviderHandle(ProviderType); + + _providerParameters.KeyNumber = CryptoApiHelper.ImportCspBlob(importedKeyBytes, hProv, SafeKeyHandleImpl.InvalidHandle, out var hKey); + _providerHandle = hProv; + _keyHandle = hKey; + + _isPublicKeyOnly = true; + } + + [SecuritySafeCritical] + public void ImportCspBlob(byte[] encodedParameters, byte[] encodedKeyValue) + { + var keyParams = CreateKeyExchangeParams(); + keyParams.DecodeParameters(encodedParameters); + keyParams.DecodePublicKey(encodedKeyValue); + + var keyBytes = CryptoApiHelper.EncodePublicBlob(keyParams, KeySizeValue, SignatureAlgId); + + ImportCspBlob(keyBytes); + } + + private static bool IsPublicKeyBlob(byte[] importedKeyBytes) + { + if ((importedKeyBytes[0] != Constants.PUBLICKEYBLOB) || (importedKeyBytes.Length < 12)) + { + return false; + } + + var gostKeyMask = BitConverter.GetBytes(Constants.GR3410_1_MAGIC); + + return (importedKeyBytes[8] == gostKeyMask[0]) + && (importedKeyBytes[9] == gostKeyMask[1]) + && (importedKeyBytes[10] == gostKeyMask[2]) + && (importedKeyBytes[11] == gostKeyMask[3]); + } + + /// + public override byte[] CreateSignature(byte[] hash) + { + return SignHash(hash); + } + + /// + /// Вычисляет цифровую подпись + /// + [SecuritySafeCritical] + public byte[] CreateSignature(byte[] data, object hashAlgorithm) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(data); + return SignHash(hash); + } + + /// + /// Вычисляет цифровую подпись + /// + [SecuritySafeCritical] + public byte[] CreateSignature(Stream data, object hashAlgorithm) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(data); + return SignHash(hash); + } + + /// + /// Вычисляет цифровую подпись + /// + [SecuritySafeCritical] + public byte[] CreateSignature(byte[] data, int dataOffset, int dataLength, object hashAlgorithm) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(data, dataOffset, dataLength); + return SignHash(hash); + } + + [SecuritySafeCritical] + private byte[] SignHash(byte[] hash) + { + ValidateHashParameter(hash); + + if (IsPublicKeyOnly) + { + throw ExceptionUtility.CryptographicException(Resources.NoPrivateKey); + } + + GetKeyPair(); + + if (!CspKeyContainerInfo.RandomlyGenerated) + { + var keyContainerPermission = new KeyContainerPermission(KeyContainerPermissionFlags.NoFlags); + var keyContainerAccessEntry = new KeyContainerPermissionAccessEntry(_providerParameters, KeyContainerPermissionFlags.Sign); + keyContainerPermission.AccessEntries.Add(keyContainerAccessEntry); + keyContainerPermission.Demand(); + } + + using (var hashAlgorithm = CreateHashAlgorithm()) + { + var hashHandleProvider = (ISafeHandleProvider)hashAlgorithm; + return CryptoApiHelper.SignValue(_providerHandle, hashHandleProvider.SafeHandle, _providerParameters.KeyNumber, hash); + } + } + + /// + public override bool VerifySignature(byte[] hash, byte[] signature) + { + return VerifyHash(hash, signature); + } + + /// + /// Проверяет цифровую подпись + /// + [SecuritySafeCritical] + public bool VerifySignature(byte[] buffer, object hashAlgorithm, byte[] signature) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(buffer); + return VerifyHash(hash, signature); + } + + /// + /// Проверяет цифровую подпись + /// + [SecuritySafeCritical] + public bool VerifySignature(Stream inputStream, object hashAlgorithm, byte[] signature) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(inputStream); + return VerifyHash(hash, signature); + } + + /// + /// Проверяет цифровую подпись + /// + public bool VerifySignature(byte[] data, int dataOffset, int dataLength, object hashAlgorithm, byte[] signature) + { + var hash = CryptographyUtils.ObjToHashAlgorithm(hashAlgorithm).ComputeHash(data, dataOffset, dataLength); + return VerifyHash(hash, signature); + } + + [SecuritySafeCritical] + private bool VerifyHash(byte[] hash, byte[] signature) + { + ValidateHashParameter(hash); + + if (signature == null) + { + throw ExceptionUtility.ArgumentNull(nameof(signature)); + } + + GetKeyPair(); + + using (var hashAlgorithm = CreateHashAlgorithm()) + { + var hashHandleProvider = (ISafeHandleProvider)hashAlgorithm; + return CryptoApiHelper.VerifySign(_providerHandle, hashHandleProvider.SafeHandle, _keyHandle, hash, signature); + } + } + + /// + /// Проверяет корректность хэша + /// + protected abstract void ValidateHashParameter(byte[] hash); + + /// + [SecuritySafeCritical] + public override TKeyAlgorithm CreateKeyExchange(TKeyParams keyParameters) + { + GetKeyPair(); + + return CreateKeyExchangeAlgorithm(ProviderType, _providerHandle, _keyHandle, (TKeyParams)keyParameters.Clone()); + } + + /// + [SecuritySafeCritical] + public override TKeyParams ExportParameters(bool includePrivateKey) + { + if (includePrivateKey) + { + throw ExceptionUtility.NotSupported(Resources.UserExportBulkKeyNotSupported); + } + + GetKeyPair(); + + return CryptoApiHelper.ExportPublicKey(_keyHandle, CreateKeyExchangeParams(), KeySizeValue); + } + + /// + [SecuritySafeCritical] + public override void ImportParameters(TKeyParams keyParameters) + { + if (keyParameters.PrivateKey != null) + { + throw ExceptionUtility.NotSupported(Resources.UserImportBulkKeyNotSupported); + } + + _keyHandle.TryDispose(); + + var hProv = CryptoApiHelper.GetProviderHandle(ProviderType); + + var importedKeyBytes = CryptoApiHelper.EncodePublicBlob(keyParameters.Clone(), KeySizeValue, SignatureAlgId); + + _providerParameters.KeyNumber = CryptoApiHelper.ImportCspBlob(importedKeyBytes, hProv, SafeKeyHandleImpl.InvalidHandle, out var keyHandle); + _providerHandle = hProv; + _keyHandle = keyHandle; + + _isPublicKeyOnly = true; + } + + /// + /// Установка пароля доступа к контейнеру + /// + [SecuritySafeCritical] + [SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)] + public void SetContainerPassword(SecureString password) + { + if (IsPublicKeyOnly) + { + throw ExceptionUtility.CryptographicException(Resources.NoPrivateKey); + } + + GetKeyPair(); + SetSignatureKeyPassword(_providerHandle, password, _providerParameters.KeyNumber); + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + _keyHandle.TryDispose(); + + if (!_isPublicKeyOnly) + { + _providerHandle.TryDispose(); + } + + base.Dispose(disposing); + } + + [SecurityCritical] + private void GetKeyPair() + { + if (_keyHandle == null) + { + lock (this) + { + if (_keyHandle == null) + { + GetKeyPairValue(_providerParameters, _isRandomKeyContainer, out var providerHandle, out var keyHandle); + + _providerHandle = providerHandle; + _keyHandle = keyHandle; + + _isPersistentKey = true; + } + } + } + } + + [SecurityCritical] + private void GetKeyPairValue(CspParameters providerParams, bool randomKeyContainer, out SafeProvHandleImpl providerHandle, out SafeKeyHandleImpl keyHandle) + { + SafeProvHandleImpl resultProviderHandle = null; + SafeKeyHandleImpl resultKeyHandle = null; + + try + { + resultProviderHandle = CreateProviderHandle(providerParams, randomKeyContainer); + + if (providerParams.ParentWindowHandle != IntPtr.Zero) + { + CryptoApiHelper.SetProviderParameter(resultProviderHandle, providerParams.KeyNumber, Constants.PP_CLIENT_HWND, providerParams.ParentWindowHandle); + } + else if (providerParams.KeyPassword != null) + { + SetSignatureKeyPassword(resultProviderHandle, providerParams.KeyPassword, providerParams.KeyNumber); + } + + try + { + resultKeyHandle = CryptoApiHelper.GetUserKey(resultProviderHandle, providerParams.KeyNumber); + } + catch (Exception exception) + { + var errorCode = Marshal.GetHRForException(exception); + + if (errorCode != 0) + { + if (((providerParams.Flags & CspProviderFlags.UseExistingKey) != CspProviderFlags.NoFlags) || (errorCode != Constants.NTE_NO_KEY)) + { + throw; + } + + resultKeyHandle = CryptoApiHelper.GenerateKey(resultProviderHandle, providerParams.KeyNumber, providerParams.Flags); + } + } + + var keyAlgIdInverted = CryptoApiHelper.GetKeyParameter(resultKeyHandle, Constants.KP_ALGID); + var keyAlgId = keyAlgIdInverted[0] | (keyAlgIdInverted[1] << 8) | (keyAlgIdInverted[2] << 16) | (keyAlgIdInverted[3] << 24); + + if ((keyAlgId != ExchangeAlgId) && (keyAlgId != SignatureAlgId)) + { + throw ExceptionUtility.NotSupported(Resources.KeyAlgorithmNotSupported); + } + } + catch (Exception) + { + resultProviderHandle?.Close(); + resultKeyHandle?.Close(); + throw; + } + + providerHandle = resultProviderHandle; + keyHandle = resultKeyHandle; + } + + [SecurityCritical] + private static SafeProvHandleImpl CreateProviderHandle(CspParameters providerParams, bool randomKeyContainer) + { + SafeProvHandleImpl providerHandle = null; + + var keyContainerPermission = new KeyContainerPermission(KeyContainerPermissionFlags.NoFlags); + + try + { + providerHandle = CryptoApiHelper.OpenProvider(providerParams); + } + catch (Exception exception) + { + var errorCode = Marshal.GetHRForException(exception); + + if (errorCode != 0) + { + if (((providerParams.Flags & CspProviderFlags.UseExistingKey) != CspProviderFlags.NoFlags) + || ((errorCode != Constants.NTE_KEYSET_NOT_DEF) + && (errorCode != Constants.NTE_BAD_KEYSET) + && (errorCode != Constants.SCARD_W_CANCELLED_BY_USER))) + { + throw ExceptionUtility.CryptographicException(errorCode); + } + + if (!randomKeyContainer) + { + var containerAccessEntry = new KeyContainerPermissionAccessEntry(providerParams, KeyContainerPermissionFlags.Create); + keyContainerPermission.AccessEntries.Add(containerAccessEntry); + keyContainerPermission.Demand(); + } + + providerHandle = CryptoApiHelper.CreateProvider(providerParams); + + return providerHandle; + } + } + + if (!randomKeyContainer) + { + var containerAccessEntry = new KeyContainerPermissionAccessEntry(providerParams, KeyContainerPermissionFlags.Open); + keyContainerPermission.AccessEntries.Add(containerAccessEntry); + keyContainerPermission.Demand(); + } + + return providerHandle; + } + + [SecuritySafeCritical] + private static void SetSignatureKeyPassword(SafeProvHandleImpl hProv, SecureString keyPassword, int keyNumber) + { + if (keyPassword == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyPassword)); + } + + var keyPasswordData = Marshal.SecureStringToCoTaskMemAnsi(keyPassword); + + try + { + CryptoApiHelper.SetProviderParameter(hProv, keyNumber, Constants.PP_SIGNATURE_PIN, keyPasswordData); + } + finally + { + if (keyPasswordData != IntPtr.Zero) + { + Marshal.ZeroFreeCoTaskMemAnsi(keyPasswordData); + } + } + } + + private CspParameters CreateDefaultProviderParameters(CspProviderFlags defaultFlags = CspProviderFlags.UseMachineKeyStore) + { + return new CspParameters(ProviderType.ToInt()) + { + Flags = defaultFlags + }; + } + + private CspParameters CopyExistingProviderParameters(CspParameters providerParameters) + { + ValidateProviderParameters(providerParameters.Flags); + + return new CspParameters(providerParameters.ProviderType, providerParameters.ProviderName, providerParameters.KeyContainerName) + { + Flags = providerParameters.Flags, + KeyNumber = providerParameters.KeyNumber + }; + } + + private static void ValidateProviderParameters(CspProviderFlags flags) + { + // Если информацию о провайдере нужно взять из текущего ключа + if ((flags & CspProviderFlags.UseExistingKey) != CspProviderFlags.NoFlags) + { + const CspProviderFlags notExpectedFlags = CspProviderFlags.UseUserProtectedKey + | CspProviderFlags.UseArchivableKey + | CspProviderFlags.UseNonExportableKey; + + if ((flags & notExpectedFlags) != CspProviderFlags.NoFlags) + { + throw ExceptionUtility.Argument(nameof(flags), Resources.InvalidCspProviderFlags); + } + } + + // Если пользователь должен сам выбрать ключ (например, в диалоге) + if ((flags & CspProviderFlags.UseUserProtectedKey) != CspProviderFlags.NoFlags) + { + if (!Environment.UserInteractive) + { + throw ExceptionUtility.CryptographicException(Resources.UserInteractiveNotSupported); + } + + new UIPermission(UIPermissionWindow.SafeTopLevelWindows).Demand(); + } + } + + [SecurityCritical] + private void InitKeyContainer(CspParameters providerParameters, out bool randomKeyContainer) + { + // Установка типа ключа + if (providerParameters.KeyNumber == -1) + { + providerParameters.KeyNumber = (int)KeyNumber.Exchange; + } + else if (providerParameters.KeyNumber == SignatureAlgId) + { + providerParameters.KeyNumber = (int)KeyNumber.Signature; + } + else if (providerParameters.KeyNumber == ExchangeAlgId) + { + providerParameters.KeyNumber = (int)KeyNumber.Exchange; + } + + // Использовать автогенерированный контейнер + randomKeyContainer = ((providerParameters.KeyContainerName == null) && ((providerParameters.Flags & CspProviderFlags.UseDefaultKeyContainer) == CspProviderFlags.NoFlags)); + + if (randomKeyContainer) + { + providerParameters.KeyContainerName = Guid.NewGuid().ToString(); + } + else + { + GetKeyPair(); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithmBase.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithmBase.cs new file mode 100644 index 0000000..c316a85 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_AsymmetricAlgorithmBase.cs @@ -0,0 +1,81 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Базовый класс для всех реализаций алгоритма ГОСТ Р 34.10 + /// + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + /// Алгоритм общего секретного ключа ГОСТ Р 34.10 + public abstract class Gost_R3410_AsymmetricAlgorithmBase : GostAsymmetricAlgorithm + where TKeyParams : Gost_R3410_KeyExchangeParams + where TKeyAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + protected Gost_R3410_AsymmetricAlgorithmBase(ProviderType providerType, int keySize) : base(providerType, keySize) + { + } + + /// + /// Идентификатор алгоритма обмена ключей + /// + protected abstract int ExchangeAlgId { get; } + /// + /// Идентификатор алгоритма цифровой подписи + /// + protected abstract int SignatureAlgId { get; } + + /// + /// Создает экземпляр + /// + protected abstract TKeyParams CreateKeyExchangeParams(); + + /// + /// Создает экземпляр + /// + [SecuritySafeCritical] + protected abstract TKeyAlgorithm CreateKeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, TKeyParams keyExchangeParameters); + + /// + /// Создает общий секретный ключ + /// + /// Параметры открытого ключа, используемого для создания общего секретного ключа + public abstract TKeyAlgorithm CreateKeyExchange(TKeyParams keyParameters); + + /// + /// Экспортирует (шифрует) параметры ключа, используемого для создания общего секретного ключа + /// + /// Включить секретный ключ + public abstract TKeyParams ExportParameters(bool includePrivateKey); + + /// + /// Импортирует (дешифрует) параметры ключа, используемого для создания общего секретного ключа + /// + /// Параметры ключа, используемого для создания общего секретного ключа + public abstract void ImportParameters(TKeyParams keyParameters); + + /// + /// Создает XML-сериализатор параметров ключа цифровой подписи + /// + protected abstract Gost_R3410_KeyExchangeXmlSerializer CreateKeyExchangeXmlSerializer(); + + /// + public override string ToXmlString(bool includePrivateKey) + { + var keyParameters = ExportParameters(includePrivateKey); + var xmlSerializer = CreateKeyExchangeXmlSerializer(); + return xmlSerializer.Serialize(keyParameters); + } + + /// + public override void FromXmlString(string keyParametersXml) + { + var xmlSerializer = CreateKeyExchangeXmlSerializer(); + var keyParameters = xmlSerializer.Deserialize(keyParametersXml, CreateKeyExchangeParams()); + ImportParameters(keyParameters); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_EphemeralAsymmetricAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_EphemeralAsymmetricAlgorithm.cs new file mode 100644 index 0000000..140f2bb --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_EphemeralAsymmetricAlgorithm.cs @@ -0,0 +1,116 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Native; +using GostCryptography.Properties; +using System; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Реализация алгоритма формирования общих ключей на основе алгоритма ГОСТ Р 34.10 и эфимерного ключа + /// + public abstract class Gost_R3410_EphemeralAsymmetricAlgorithm : Gost_R3410_AsymmetricAlgorithmBase, ISafeHandleProvider, ISafeHandleProvider + where TKeyParams : Gost_R3410_KeyExchangeParams + where TKeyAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + [SecuritySafeCritical] + protected Gost_R3410_EphemeralAsymmetricAlgorithm(ProviderType providerType, int keySize) : base(providerType, keySize) + { + _providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType).DangerousAddRef(); + _keyHandle = CryptoApiHelper.GenerateKey(_providerHandle, ExchangeAlgId, CspProviderFlags.NoFlags); + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Параметры ключа, используемого для создания общего секретного ключа + /// Размер ключа в битах + /// + /// + /// В параметре достаточно передать идентификатор OID параметров хэширования + /// и идентификатор OID параметров открытого ключа + /// . Остальные параметры не используются. + /// + [SecuritySafeCritical] + protected Gost_R3410_EphemeralAsymmetricAlgorithm(ProviderType providerType, TKeyParams keyParameters, int keySize) : base(providerType, keySize) + { + if (keyParameters == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyParameters)); + } + + _providerHandle = CryptoApiHelper.GetProviderHandle(ProviderType).DangerousAddRef(); + _keyHandle = CryptoApiHelper.GenerateDhEphemeralKey(providerType, _providerHandle, ExchangeAlgId, keyParameters.DigestParamSet, keyParameters.PublicKeyParamSet); + } + + [SecurityCritical] + private readonly SafeProvHandleImpl _providerHandle; + [SecurityCritical] + private readonly SafeKeyHandleImpl _keyHandle; + + /// + SafeProvHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get => _providerHandle; + } + + /// + SafeKeyHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get => _keyHandle; + } + + /// + public override byte[] CreateSignature(byte[] hash) + { + throw ExceptionUtility.NotSupported(Resources.EphemKeyOperationNotSupported); + } + + /// + public override bool VerifySignature(byte[] hash, byte[] signature) + { + throw ExceptionUtility.NotSupported(Resources.EphemKeyOperationNotSupported); + } + + /// + [SecuritySafeCritical] + public override TKeyAlgorithm CreateKeyExchange(TKeyParams keyParameters) + { + return CreateKeyExchangeAlgorithm(ProviderType, _providerHandle, _keyHandle, (TKeyParams)keyParameters.Clone()); + } + + /// + [SecuritySafeCritical] + public override TKeyParams ExportParameters(bool includePrivateKey) + { + if (includePrivateKey) + { + throw ExceptionUtility.NotSupported(Resources.EphemKeyOperationNotSupported); + } + + return CryptoApiHelper.ExportPublicKey(_keyHandle, CreateKeyExchangeParams(), KeySizeValue); + } + + /// + public override void ImportParameters(TKeyParams keyParameters) + { + throw ExceptionUtility.NotSupported(Resources.EphemKeyOperationNotSupported); + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + _keyHandle.TryDispose(); + _providerHandle.TryDispose(); + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeAlgorithm.cs new file mode 100644 index 0000000..dec9966 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeAlgorithm.cs @@ -0,0 +1,163 @@ +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Native; +using GostCryptography.Properties; +using System.Security; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Базовый класс всех реализаций общего секретного ключа ГОСТ Р 34.10 + /// + public abstract class Gost_R3410_KeyExchangeAlgorithm : GostKeyExchangeAlgorithm + { + /// + [SecurityCritical] + protected Gost_R3410_KeyExchangeAlgorithm(ProviderType providerType, SafeProvHandleImpl provHandle, SafeKeyHandleImpl keyHandle, Gost_R3410_KeyExchangeParams keyExchangeParameters, int keySize, int signatureAlgId) : base(providerType) + { + if (provHandle == null) + { + throw ExceptionUtility.ArgumentNull(nameof(provHandle)); + } + + if (keyHandle == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyHandle)); + } + + if (keyExchangeParameters == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeParameters)); + } + + _provHandle = provHandle.DangerousAddRef(); + _keyHandle = keyHandle.DangerousAddRef(); + _keyExchangeParameters = keyExchangeParameters; + _keySize = keySize; + _signatureAlgId = signatureAlgId; + } + + [SecurityCritical] + private readonly SafeProvHandleImpl _provHandle; + [SecurityCritical] + private readonly SafeKeyHandleImpl _keyHandle; + [SecurityCritical] + private readonly Gost_R3410_KeyExchangeParams _keyExchangeParameters; + + private readonly int _keySize; + private readonly int _signatureAlgId; + + /// + [SecuritySafeCritical] + public override byte[] EncodeKeyExchange(SymmetricAlgorithm keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod) + { + if (keyExchangeAlgorithm is Gost_28147_89_SymmetricAlgorithm symAlg) + { + return EncodeKeyExchangeInternal(symAlg, keyExchangeExportMethod); + } + + if (keyExchangeAlgorithm is Gost_28147_89_SymmetricAlgorithmBase symAlgBase) + { + using (var gostKeyExchangeAlgorithm = new Gost_28147_89_SymmetricAlgorithm(symAlgBase.ProviderType)) + { + return gostKeyExchangeAlgorithm.EncodePrivateKey(symAlgBase, keyExchangeExportMethod); + } + } + + throw ExceptionUtility.Argument(nameof(keyExchangeAlgorithm), Resources.RequiredGost28147); + } + + [SecurityCritical] + private byte[] EncodeKeyExchangeInternal(Gost_28147_89_SymmetricAlgorithm keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod) + { + switch (keyExchangeExportMethod) + { + case GostKeyExchangeExportMethod.GostKeyExport: + return EncodeKeyExchangeInternal(keyExchangeAlgorithm, Constants.CALG_SIMPLE_EXPORT); + + case GostKeyExchangeExportMethod.CryptoProKeyExport: + return EncodeKeyExchangeInternal(keyExchangeAlgorithm, Constants.CALG_PRO_EXPORT); + } + + throw ExceptionUtility.ArgumentOutOfRange(nameof(keyExchangeExportMethod)); + } + + [SecurityCritical] + private byte[] EncodeKeyExchangeInternal(Gost_28147_89_SymmetricAlgorithm keyExchangeAlgorithm, int keyExchangeExportAlgId) + { + Gost_28147_89_KeyExchangeInfo keyExchangeInfo; + + SafeKeyHandleImpl keyExchangeHandle = null; + + try + { + var importedKeyBytes = CryptoApiHelper.EncodePublicBlob(_keyExchangeParameters, _keySize, _signatureAlgId); + CryptoApiHelper.ImportCspBlob(importedKeyBytes, _provHandle, _keyHandle, out keyExchangeHandle); + CryptoApiHelper.SetKeyExchangeExportAlgId(ProviderType, keyExchangeHandle, keyExchangeExportAlgId); + + var symKeyHandle = keyExchangeAlgorithm.GetSafeHandle(); + keyExchangeInfo = CryptoApiHelper.ExportKeyExchange(symKeyHandle, keyExchangeHandle); + } + finally + { + keyExchangeHandle.TryDispose(); + } + + return keyExchangeInfo.Encode(); + } + + /// + [SecuritySafeCritical] + public override SymmetricAlgorithm DecodeKeyExchange(byte[] encodedKeyExchangeData, GostKeyExchangeExportMethod keyExchangeExportMethod) + { + switch (keyExchangeExportMethod) + { + case GostKeyExchangeExportMethod.GostKeyExport: + return DecodeKeyExchangeInternal(encodedKeyExchangeData, Constants.CALG_SIMPLE_EXPORT); + + case GostKeyExchangeExportMethod.CryptoProKeyExport: + return DecodeKeyExchangeInternal(encodedKeyExchangeData, Constants.CALG_PRO_EXPORT); + } + + throw ExceptionUtility.ArgumentOutOfRange(nameof(keyExchangeExportMethod)); + } + + [SecurityCritical] + private SymmetricAlgorithm DecodeKeyExchangeInternal(byte[] encodedKeyExchangeData, int keyExchangeExportAlgId) + { + var keyExchangeInfo = new Gost_28147_89_KeyExchangeInfo(); + keyExchangeInfo.Decode(encodedKeyExchangeData); + + SafeKeyHandleImpl symKeyHandle; + SafeKeyHandleImpl keyExchangeHandle = null; + + try + { + var importedKeyBytes = CryptoApiHelper.EncodePublicBlob(_keyExchangeParameters, _keySize, _signatureAlgId); + CryptoApiHelper.ImportCspBlob(importedKeyBytes, _provHandle, _keyHandle, out keyExchangeHandle); + CryptoApiHelper.SetKeyExchangeExportAlgId(ProviderType, keyExchangeHandle, keyExchangeExportAlgId); + + symKeyHandle = CryptoApiHelper.ImportKeyExchange(_provHandle, keyExchangeInfo, keyExchangeHandle); + } + finally + { + keyExchangeHandle.TryDispose(); + } + + return new Gost_28147_89_SymmetricAlgorithm(ProviderType, _provHandle, symKeyHandle); + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + _keyHandle.TryDispose(); + _provHandle.TryDispose(); + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeDeformatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeDeformatter.cs new file mode 100644 index 0000000..56da943 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeDeformatter.cs @@ -0,0 +1,104 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Properties; +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Базовый класс для реализации дешифрования общего секретного ключа по ГОСТ Р 34.10 + /// + /// Информация о ключе цифровой подписи ГОСТ Р 34.10 + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + /// Алгоритм общего секретного ключа ГОСТ Р 34.10 + public abstract class Gost_R3410_KeyExchangeDeformatter : GostKeyExchangeDeformatter + where TKey : Gost_R3410_KeyExchange, new() + where TKeyParams : Gost_R3410_KeyExchangeParams + where TKeyAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + /// Конструктор + /// + protected Gost_R3410_KeyExchangeDeformatter() + { + } + + /// + /// Конструктор + /// + /// Секретный ключ для расшифровки общего секретного ключа + /// + /// + protected Gost_R3410_KeyExchangeDeformatter(AsymmetricAlgorithm privateKey) + { + SetKey(privateKey); + } + + private Gost_R3410_AsymmetricAlgorithmBase _privateKey; + + /// + public override string Parameters + { + get + { + return null; + } + set + { + } + } + + /// + public override void SetKey(AsymmetricAlgorithm privateKey) + { + if (privateKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(privateKey)); + } + + if (!(privateKey is Gost_R3410_AsymmetricAlgorithmBase gostPublicKey)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(privateKey), Resources.ShouldSupportGost3410); + } + + _privateKey = gostPublicKey; + } + + /// + public override byte[] DecryptKeyExchange(byte[] encryptedKeyExchangeData) + { + var symmetricAlgorithm = DecryptKeyExchangeAlgorithm(encryptedKeyExchangeData); + + return symmetricAlgorithm.Key; + } + + /// + public override SymmetricAlgorithm DecryptKeyExchangeAlgorithm(byte[] encryptedKeyExchangeData) + { + if (encryptedKeyExchangeData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptedKeyExchangeData)); + } + + var keyExchange = new TKey(); + keyExchange.Decode(encryptedKeyExchangeData); + + return DecryptKeyExchangeAlgorithm(keyExchange); + } + + private SymmetricAlgorithm DecryptKeyExchangeAlgorithm(TKey encryptedKeyExchangeInfo) + { + if (encryptedKeyExchangeInfo == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptedKeyExchangeInfo)); + } + + var keyExchangeParameters = (TKeyParams)encryptedKeyExchangeInfo.TransportParameters; + var keyExchangeAlg = _privateKey.CreateKeyExchange(keyExchangeParameters); + var encodedKeyExchangeInfo = encryptedKeyExchangeInfo.SessionEncryptedKey.Encode(); + + return keyExchangeAlg.DecodeKeyExchange(encodedKeyExchangeInfo, GostKeyExchangeExportMethod.CryptoProKeyExport); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeFormatter.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeFormatter.cs new file mode 100644 index 0000000..5a24e14 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeFormatter.cs @@ -0,0 +1,162 @@ +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Properties; +using System; +using System.Security.Cryptography; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Базовый класс для реализации шифрования общего секретного ключа по ГОСТ Р 34.10 + /// + /// Информация о ключе цифровой подписи ГОСТ Р 34.10 + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + /// Алгоритм общего секретного ключа ГОСТ Р 34.10 + public abstract class Gost_R3410_KeyExchangeFormatter : GostKeyExchangeFormatter + where TKey : Gost_R3410_KeyExchange, new() + where TKeyParams : Gost_R3410_KeyExchangeParams + where TKeyAlgorithm : Gost_R3410_KeyExchangeAlgorithm + { + /// + /// Конструктор + /// + protected Gost_R3410_KeyExchangeFormatter() + { + } + + /// + /// Конструктор + /// + /// Открытый ключ для шифрации общего секретного ключа + /// + /// + protected Gost_R3410_KeyExchangeFormatter(AsymmetricAlgorithm publicKey) + { + SetKey(publicKey); + } + + private Gost_R3410_AsymmetricAlgorithmBase _publicKey; + + /// + public override string Parameters => null; + + /// + public override void SetKey(AsymmetricAlgorithm publicKey) + { + if (publicKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(publicKey)); + } + + if (!(publicKey is Gost_R3410_AsymmetricAlgorithmBase gostPublicKey)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(publicKey), Resources.ShouldSupportGost3410); + } + + _publicKey = gostPublicKey; + } + + /// + public override byte[] CreateKeyExchange(byte[] keyExchangeData) + { + if (keyExchangeData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeData)); + } + + using (var keyExchangeAlgorithm = new Gost_28147_89_SymmetricAlgorithm(_publicKey.ProviderType)) + { + keyExchangeAlgorithm.Key = keyExchangeData; + + return CreateKeyExchangeData(keyExchangeAlgorithm); + } + } + + /// + public override byte[] CreateKeyExchange(byte[] keyExchangeData, Type keyExchangeAlgorithmType) + { + if (keyExchangeData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeData)); + } + + if (keyExchangeAlgorithmType == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeAlgorithmType)); + } + + if (!typeof(GostSymmetricAlgorithm).IsAssignableFrom(keyExchangeAlgorithmType)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(keyExchangeAlgorithmType)); + } + + GostSymmetricAlgorithm keyExchangeAlgorithm; + + if (_publicKey != null) + { + var constructorInfo = keyExchangeAlgorithmType.GetConstructor(new[] { typeof(ProviderType) }); + keyExchangeAlgorithm = (GostSymmetricAlgorithm)constructorInfo.Invoke(new object[] { _publicKey.ProviderType }); + } + else + { + keyExchangeAlgorithm = (GostSymmetricAlgorithm)Activator.CreateInstance(keyExchangeAlgorithmType); + } + + using (keyExchangeAlgorithm) + { + keyExchangeAlgorithm.Key = keyExchangeData; + + return CreateKeyExchangeData(keyExchangeAlgorithm); + } + } + + /// + public override byte[] CreateKeyExchangeData(SymmetricAlgorithm keyExchangeAlgorithm) + { + if (keyExchangeAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeAlgorithm)); + } + + var keyExchangeInfo = CreateKeyExchangeInfo(keyExchangeAlgorithm); + + return keyExchangeInfo.Encode(); + } + + private TKey CreateKeyExchangeInfo(SymmetricAlgorithm keyExchangeAlgorithm) + { + if (keyExchangeAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeAlgorithm)); + } + + var keyExchange = new TKey(); + var keyExchangeParameters = _publicKey.ExportParameters(false); + + using (var keyExchangeAsym = CreateEphemeralAlgorithm(_publicKey.ProviderType, keyExchangeParameters)) + { + byte[] encodedKeyExchangeInfo; + + using (var keyExchangeAlg = keyExchangeAsym.CreateKeyExchange(keyExchangeParameters)) + { + encodedKeyExchangeInfo = keyExchangeAlg.EncodeKeyExchange(keyExchangeAlgorithm, GostKeyExchangeExportMethod.CryptoProKeyExport); + } + + var keyExchangeInfo = new Gost_28147_89_KeyExchangeInfo(); + keyExchangeInfo.Decode(encodedKeyExchangeInfo); + + keyExchange.SessionEncryptedKey = keyExchangeInfo; + keyExchange.TransportParameters = keyExchangeAsym.ExportParameters(false); + } + + return keyExchange; + } + + /// + /// Создает экземпляр алгоритма шифрования общего секретного ключа + /// + protected abstract Gost_R3410_EphemeralAsymmetricAlgorithm CreateEphemeralAlgorithm(ProviderType providerType, TKeyParams keyExchangeParameters); + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeXmlSerializer.cs b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeXmlSerializer.cs new file mode 100644 index 0000000..2da809c --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3410/Gost_R3410_KeyExchangeXmlSerializer.cs @@ -0,0 +1,201 @@ +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Properties; +using System; +using System.Security; +using System.Text; + +namespace GostCryptography.Gost_R3410 +{ + /// + /// Базовый класс XML-сериализатора параметров ключа цифровой подписи ГОСТ Р 34.10 + /// + /// Параметры ключа цифровой подписи ГОСТ Р 34.10 + public abstract class Gost_R3410_KeyExchangeXmlSerializer where TKeyParams : Gost_R3410_KeyExchangeParams + { + private const string OidPrefix = "urn:oid:"; + private const string PublicKeyParametersTag = "PublicKeyParameters"; + private const string PublicKeyParamSetTag = "publicKeyParamSet"; + private const string DigestParamSetTag = "digestParamSet"; + private const string EncryptionParamSetTag = "encryptionParamSet"; + private const string PublicKeyTag = "PublicKey"; + private const string PrivateKeyTag = "PrivateKey"; + + private readonly string _keyValueTag; + + /// + /// Создает новый экземпляр данного класса + /// + /// Имя тега с информацией о параметрах ключа + protected Gost_R3410_KeyExchangeXmlSerializer(string keyValueTag) + { + _keyValueTag = keyValueTag; + } + + /// + /// Возвращает XML с параметрами ключа + /// + public string Serialize(TKeyParams parameters) + { + var builder = new StringBuilder().AppendFormat("<{0}>", _keyValueTag); + + if ((parameters.DigestParamSet != null) || (parameters.EncryptionParamSet != null) || (parameters.PublicKeyParamSet != null)) + { + builder.AppendFormat("<{0}>", PublicKeyParametersTag); + builder.AppendFormat("<{0}>{1}{2}", PublicKeyParamSetTag, OidPrefix, parameters.PublicKeyParamSet); + builder.AppendFormat("<{0}>{1}{2}", DigestParamSetTag, OidPrefix, parameters.DigestParamSet); + + if (parameters.EncryptionParamSet != null) + { + builder.AppendFormat("<{0}>{1}{2}", EncryptionParamSetTag, OidPrefix, parameters.EncryptionParamSet); + } + + builder.AppendFormat("", PublicKeyParametersTag); + } + + builder.AppendFormat("<{0}>{1}", PublicKeyTag, Convert.ToBase64String(parameters.PublicKey)); + + if (parameters.PrivateKey != null) + { + builder.AppendFormat("<{0}>{1}", PrivateKeyTag, Convert.ToBase64String(parameters.PublicKey)); + } + + builder.AppendFormat("", _keyValueTag); + + return builder.ToString(); + } + + /// + /// Возвращает параметры ключа на основе XML + /// + public TKeyParams Deserialize(string keyParametersXml, TKeyParams parameters) + { + if (string.IsNullOrEmpty(keyParametersXml)) + { + throw ExceptionUtility.ArgumentNull(nameof(keyParametersXml)); + } + + var keyValue = SecurityElement.FromString(keyParametersXml); + + if (keyValue == null) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidFromXmlString, _keyValueTag); + } + + keyValue = SelectChildElement(keyValue, _keyValueTag) ?? keyValue; + + var publicKeyParameters = SelectChildElement(keyValue, PublicKeyParametersTag); + + if (publicKeyParameters != null) + { + var publicKeyParamSet = RemoveWhiteSpaces(SelectChildElementText(publicKeyParameters, PublicKeyParamSetTag, false)); + + if (!publicKeyParamSet.StartsWith(OidPrefix, StringComparison.OrdinalIgnoreCase)) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidFromXmlString, PublicKeyParamSetTag); + } + + parameters.PublicKeyParamSet = publicKeyParamSet.Substring(OidPrefix.Length); + + var digestParamSet = RemoveWhiteSpaces(SelectChildElementText(publicKeyParameters, DigestParamSetTag, false)); + + if (!digestParamSet.StartsWith(OidPrefix, StringComparison.OrdinalIgnoreCase)) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidFromXmlString, DigestParamSetTag); + } + + parameters.DigestParamSet = digestParamSet.Substring(OidPrefix.Length); + + var encryptionParamSet = SelectChildElementText(publicKeyParameters, EncryptionParamSetTag, true); + + if (!string.IsNullOrEmpty(encryptionParamSet)) + { + encryptionParamSet = RemoveWhiteSpaces(encryptionParamSet); + + if (!encryptionParamSet.StartsWith(OidPrefix, StringComparison.OrdinalIgnoreCase)) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidFromXmlString, EncryptionParamSetTag); + } + + parameters.EncryptionParamSet = encryptionParamSet.Substring(OidPrefix.Length); + } + } + + var publicKey = SelectChildElementText(keyValue, PublicKeyTag, false); + parameters.PublicKey = Convert.FromBase64String(RemoveWhiteSpaces(publicKey)); + + var privateKey = SelectChildElementText(keyValue, PrivateKeyTag, true); + + if (privateKey != null) + { + parameters.PrivateKey = Convert.FromBase64String(RemoveWhiteSpaces(privateKey)); + } + + return parameters; + } + + private static string SelectChildElementText(SecurityElement element, string childName, bool canNull) + { + string text = null; + + var child = SelectChildElement(element, childName); + + if (child != null && (child.Children == null || child.Children.Count == 0)) + { + text = child.Text; + } + + if (string.IsNullOrEmpty(text) && !canNull) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidFromXmlString, childName); + } + + return text; + } + + private static SecurityElement SelectChildElement(SecurityElement element, string childName) + { + var children = element.Children; + + if (children != null) + { + foreach (SecurityElement child in children) + { + if (string.Equals(child.Tag, childName, StringComparison.OrdinalIgnoreCase) + || child.Tag.EndsWith(":" + childName, StringComparison.OrdinalIgnoreCase)) + { + return child; + } + } + } + + return null; + } + + private static string RemoveWhiteSpaces(string value) + { + var length = value.Length; + + var countWhiteSpace = 0; + + for (var i = 0; i < length; ++i) + { + if (char.IsWhiteSpace(value[i])) + { + ++countWhiteSpace; + } + } + + var valueWithoutWhiteSpace = new char[length - countWhiteSpace]; + + for (int i = 0, j = 0; i < length; ++i) + { + if (!char.IsWhiteSpace(value[i])) + { + valueWithoutWhiteSpace[j++] = value[i]; + } + } + + return new string(valueWithoutWhiteSpace); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HMAC.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HMAC.cs new file mode 100644 index 0000000..ea994f9 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HMAC.cs @@ -0,0 +1,51 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация HMAC на базе алгоритма хэширования ГОСТ Р 34.11-2012/256 + /// + public sealed class Gost_R3411_2012_256_HMAC : Gost_R3411_HMAC + { + /// + /// Наименование алгоритма HMAC на базе ГОСТ Р 34.11-2012/256 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-256"; + + /// + /// Известные наименования алгоритма HMAC на базе ГОСТ Р 34.11-2012/256 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_HMAC() : base(Gost_R3411_2012_256_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_HMAC(ProviderType providerType) : base(providerType, Gost_R3411_2012_256_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_HMAC(Gost_28147_89_SymmetricAlgorithmBase keyAlgorithm) : base(keyAlgorithm, Gost_R3411_2012_256_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override SafeHashHandleImpl CreateHashHMAC(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + return CryptoApiHelper.CreateHashHMAC_2012_256(providerType, providerHandle, symKeyHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HashAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HashAlgorithm.cs new file mode 100644 index 0000000..9f09473 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HashAlgorithm.cs @@ -0,0 +1,54 @@ +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация алгоритма хэширования ГОСТ Р 34.11-2012/256 + /// + public sealed class Gost_R3411_2012_256_HashAlgorithm : Gost_R3411_HashAlgorithm + { + /// + /// Размер хэша ГОСТ Р 34.11-2012/256 + /// + public const int DefaultHashSizeValue = 256; + + /// + /// Наименование алгоритма хэширования ГОСТ Р 34.11-2012/256 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"; + + /// + /// Известные наименования алгоритма хэширования ГОСТ Р 34.11-2012/256 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_HashAlgorithm() : base(DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_HashAlgorithm(ProviderType providerType) : base(providerType, DefaultHashSizeValue) + { + } + + [SecurityCritical] + internal Gost_R3411_2012_256_HashAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle) : base(providerType, providerHandle, DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecurityCritical] + protected override SafeHashHandleImpl CreateHashHandle(SafeProvHandleImpl providerHandle) + { + return CryptoApiHelper.CreateHash_3411_2012_256(providerHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_PRF.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_PRF.cs new file mode 100644 index 0000000..869f002 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_256_PRF.cs @@ -0,0 +1,50 @@ +using System.Security; + +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация PRF на базе алгоритма хэширования ГОСТ Р 34.11-2012/256 + /// + public sealed class Gost_R3411_2012_256_PRF : Gost_R3411_PRF + { + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-2012/256 для использования в протоколе WS-Trust + /// + public const string WsTrustAlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411-2012-256"; + + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-2012/256 для использования в протоколах на базе WS-SecureConversation + /// + public const string WsSecureConversationAlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411-2012-256"; + + /// + /// Известные наименования алгоритма PRF на базе ГОСТ Р 34.11-2012/256 + /// + public static readonly string[] KnownAlgorithmNames = { WsTrustAlgorithmNameValue, WsSecureConversationAlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_PRF(Gost_28147_89_SymmetricAlgorithmBase key, byte[] label, byte[] seed) : base(key, label, seed) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_256_PRF(ProviderType providerType, byte[] key, byte[] label, byte[] seed) : base(providerType, key, label, seed) + { + } + + /// + public override string AlgorithmName => WsTrustAlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override Gost_R3411_2012_256_HMAC CreateHMAC(Gost_28147_89_SymmetricAlgorithm key) + { + return new Gost_R3411_2012_256_HMAC(key); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HMAC.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HMAC.cs new file mode 100644 index 0000000..b2fc768 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HMAC.cs @@ -0,0 +1,51 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация HMAC на базе алгоритма хэширования ГОСТ Р 34.11-2012/512 + /// + public sealed class Gost_R3411_2012_512_HMAC : Gost_R3411_HMAC + { + /// + /// Наименование алгоритма HMAC на базе ГОСТ Р 34.11-2012/512 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-512"; + + /// + /// Известные наименования алгоритма HMAC на базе ГОСТ Р 34.11-2012/512 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_HMAC() : base(Gost_R3411_2012_512_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_HMAC(ProviderType providerType) : base(providerType, Gost_R3411_2012_512_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_HMAC(Gost_28147_89_SymmetricAlgorithmBase keyAlgorithm) : base(keyAlgorithm, Gost_R3411_2012_512_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override SafeHashHandleImpl CreateHashHMAC(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + return CryptoApiHelper.CreateHashHMAC_2012_512(providerType, providerHandle, symKeyHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HashAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HashAlgorithm.cs new file mode 100644 index 0000000..af12deb --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HashAlgorithm.cs @@ -0,0 +1,54 @@ +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация алгоритма хэширования ГОСТ Р 34.11-2012/512 + /// + public sealed class Gost_R3411_2012_512_HashAlgorithm : Gost_R3411_HashAlgorithm + { + /// + /// Размер хэша ГОСТ Р 34.11-2012/512 + /// + public const int DefaultHashSizeValue = 512; + + /// + /// Наименование алгоритма хэширования ГОСТ Р 34.11-2012/512 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512"; + + /// + /// Известные наименования алгоритма хэширования ГОСТ Р 34.11-2012/512 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_HashAlgorithm() : base(DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_HashAlgorithm(ProviderType providerType) : base(providerType, DefaultHashSizeValue) + { + } + + [SecurityCritical] + internal Gost_R3411_2012_512_HashAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle) : base(providerType, providerHandle, DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecurityCritical] + protected override SafeHashHandleImpl CreateHashHandle(SafeProvHandleImpl providerHandle) + { + return CryptoApiHelper.CreateHash_3411_2012_512(providerHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_PRF.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_PRF.cs new file mode 100644 index 0000000..c438f23 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_2012_512_PRF.cs @@ -0,0 +1,49 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация PRF на базе алгоритма хэширования ГОСТ Р 34.11-2012/512 + /// + public sealed class Gost_R3411_2012_512_PRF : Gost_R3411_PRF + { + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-2012/512 для использования в протоколе WS-Trust + /// + public const string WsTrustAlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411-2012-512"; + + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-2012/512 для использования в протоколах на базе WS-SecureConversation + /// + public const string WsSecureConversationAlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411-2012-512"; + + /// + /// Известные наименования алгоритма PRF на базе ГОСТ Р 34.11-2012/512 + /// + public static readonly string[] KnownAlgorithmNames = { WsTrustAlgorithmNameValue, WsSecureConversationAlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_PRF(Gost_28147_89_SymmetricAlgorithmBase key, byte[] label, byte[] seed) : base(key, label, seed) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_2012_512_PRF(ProviderType providerType, byte[] key, byte[] label, byte[] seed) : base(providerType, key, label, seed) + { + } + + /// + public override string AlgorithmName => WsTrustAlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override Gost_R3411_2012_512_HMAC CreateHMAC(Gost_28147_89_SymmetricAlgorithm key) + { + return new Gost_R3411_2012_512_HMAC(key); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HMAC.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HMAC.cs new file mode 100644 index 0000000..ae68fb2 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HMAC.cs @@ -0,0 +1,56 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация HMAC на базе алгоритма хэширования ГОСТ Р 34.11-94 + /// + public sealed class Gost_R3411_94_HMAC : Gost_R3411_HMAC + { + /// + /// Наименование алгоритма HMAC на базе ГОСТ Р 34.11-94 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411"; + + /// + /// Устаревшее наименование алгоритма HMAC на базе ГОСТ Р 34.11-94 + /// + public const string ObsoleteAlgorithmNameValue = "http://www.w3.org/2001/04/xmldsig-more#hmac-gostr3411"; + + /// + /// Известные наименования алгоритма HMAC на базе ГОСТ Р 34.11-94 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue, ObsoleteAlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_94_HMAC() : base(Gost_R3411_94_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_94_HMAC(ProviderType providerType) : base(providerType, Gost_R3411_94_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_94_HMAC(Gost_28147_89_SymmetricAlgorithmBase keyAlgorithm) : base(keyAlgorithm, Gost_R3411_94_HashAlgorithm.DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override SafeHashHandleImpl CreateHashHMAC(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + return CryptoApiHelper.CreateHashHMAC_94(providerType, providerHandle, symKeyHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs new file mode 100644 index 0000000..e35d05d --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs @@ -0,0 +1,59 @@ +using GostCryptography.Base; +using GostCryptography.Native; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация алгоритма хэширования ГОСТ Р 34.11-94 + /// + public sealed class Gost_R3411_94_HashAlgorithm : Gost_R3411_HashAlgorithm + { + /// + /// Размер хэша ГОСТ Р 34.11-94 + /// + public const int DefaultHashSizeValue = 256; + + /// + /// Наименование алгоритма хэширования ГОСТ Р 34.11-94 + /// + public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"; + + /// + /// Устаревшее наименование алгоритма хэширования ГОСТ Р 34.11-94 + /// + public const string ObsoleteAlgorithmNameValue = "http://www.w3.org/2001/04/xmldsig-more#gostr3411"; + + /// + /// Известные наименования алгоритма хэширования ГОСТ Р 34.11-94 + /// + public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue, ObsoleteAlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_94_HashAlgorithm() : base(DefaultHashSizeValue) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_94_HashAlgorithm(ProviderType providerType) : base(providerType, DefaultHashSizeValue) + { + } + + [SecurityCritical] + internal Gost_R3411_94_HashAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle) : base(providerType, providerHandle, DefaultHashSizeValue) + { + } + + /// + public override string AlgorithmName => AlgorithmNameValue; + + /// + [SecurityCritical] + protected override SafeHashHandleImpl CreateHashHandle(SafeProvHandleImpl providerHandle) + { + return CryptoApiHelper.CreateHash_3411_94(providerHandle); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_PRF.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_PRF.cs new file mode 100644 index 0000000..1fee97a --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_PRF.cs @@ -0,0 +1,49 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Реализация PRF на базе алгоритма хэширования ГОСТ Р 34.11-94 + /// + public sealed class Gost_R3411_94_PRF : Gost_R3411_PRF + { + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-94 для использования в протоколе WS-Trust + /// + public const string WsTrustAlgorithmNameValue = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/CK/PGOSTR3411"; + + /// + /// Наименование алгоритма PRF на базе ГОСТ Р 34.11-94 для использования в протоколах на базе WS-SecureConversation + /// + public const string WsSecureConversationAlgorithmNameValue = "http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_gostr3411"; + + /// + /// Известные наименования алгоритма PRF на базе ГОСТ Р 34.11-94 + /// + public static readonly string[] KnownAlgorithmNames = { WsTrustAlgorithmNameValue, WsSecureConversationAlgorithmNameValue }; + + /// + [SecuritySafeCritical] + public Gost_R3411_94_PRF(Gost_28147_89_SymmetricAlgorithmBase key, byte[] label, byte[] seed) : base(key, label, seed) + { + } + + /// + [SecuritySafeCritical] + public Gost_R3411_94_PRF(ProviderType providerType, byte[] key, byte[] label, byte[] seed) : base(providerType, key, label, seed) + { + } + + /// + public override string AlgorithmName => WsTrustAlgorithmNameValue; + + /// + [SecuritySafeCritical] + protected override Gost_R3411_94_HMAC CreateHMAC(Gost_28147_89_SymmetricAlgorithm key) + { + return new Gost_R3411_94_HMAC(key); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HMAC.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HMAC.cs new file mode 100644 index 0000000..232bcfb --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HMAC.cs @@ -0,0 +1,138 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using GostCryptography.Native; +using System; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Базовый класс для всех реализаций Hash-based Message Authentication Code (HMAC) на базе алгоритма хэширования ГОСТ Р 34.11 + /// + public abstract class Gost_R3411_HMAC : GostHMAC, ISafeHandleProvider where THash : GostHashAlgorithm + { + /// + [SecuritySafeCritical] + protected Gost_R3411_HMAC(int hashSize) : base(hashSize) + { + InitDefaults(new Gost_28147_89_SymmetricAlgorithm(ProviderType)); + } + + /// + [SecuritySafeCritical] + protected Gost_R3411_HMAC(ProviderType providerType, int hashSize) : base(providerType, hashSize) + { + InitDefaults(new Gost_28147_89_SymmetricAlgorithm(ProviderType)); + } + + /// + /// Конструктор + /// + /// Алгоритм для вычисления HMAC + /// Размер хэш-кода в битах + /// + [SecuritySafeCritical] + protected Gost_R3411_HMAC(Gost_28147_89_SymmetricAlgorithmBase keyAlgorithm, int hashSize) : base(keyAlgorithm.ProviderType, hashSize) + { + if (keyAlgorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyAlgorithm)); + } + + InitDefaults(Gost_28147_89_SymmetricAlgorithm.CreateFromKey(keyAlgorithm)); + } + + [SecuritySafeCritical] + private void InitDefaults(Gost_28147_89_SymmetricAlgorithm keyAlgorithm) + { + HashName = typeof(THash).Name; + + _keyAlgorithm = keyAlgorithm; + _hmacHandle = CreateHashHMAC(keyAlgorithm.ProviderType, CryptoApiHelper.GetProviderHandle(keyAlgorithm.ProviderType), keyAlgorithm.GetSafeHandle()); + } + + /// + /// Создает дескриптор функции хэширования HMAC криптографического провайдера + /// + [SecuritySafeCritical] + protected abstract SafeHashHandleImpl CreateHashHMAC(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle); + + [SecurityCritical] + private SafeHashHandleImpl _hmacHandle; + private Gost_28147_89_SymmetricAlgorithm _keyAlgorithm; + + /// + SafeHashHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get { return _hmacHandle; } + } + + /// + /// Алгоритм для вычисления HMAC + /// + public Gost_28147_89_SymmetricAlgorithmBase KeyAlgorithm + { + get + { + return _keyAlgorithm; + } + [SecuritySafeCritical] + set + { + _keyAlgorithm = Gost_28147_89_SymmetricAlgorithm.CreateFromKey(value); + } + } + + /// + public override byte[] Key + { + get + { + return _keyAlgorithm.Key; + } + set + { + _keyAlgorithm = new Gost_28147_89_SymmetricAlgorithm(ProviderType) { Key = value }; + + Initialize(); + } + } + + /// + [SecuritySafeCritical] + public override void Initialize() + { + var hmacHandle = CreateHashHMAC(ProviderType, CryptoApiHelper.GetProviderHandle(ProviderType), _keyAlgorithm.GetSafeHandle()); + _hmacHandle.TryDispose(); + _hmacHandle = hmacHandle; + } + + /// + [SecuritySafeCritical] + protected override void HashCore(byte[] data, int dataOffset, int dataLength) + { + CryptoApiHelper.HashData(_hmacHandle, data, dataOffset, dataLength); + } + + /// + [SecuritySafeCritical] + protected override byte[] HashFinal() + { + return CryptoApiHelper.EndHashData(_hmacHandle); + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + if (disposing) + { + _keyAlgorithm?.Clear(); + _hmacHandle.TryDispose(); + } + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HashAlgorithm.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HashAlgorithm.cs new file mode 100644 index 0000000..c0b0e96 --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_HashAlgorithm.cs @@ -0,0 +1,89 @@ +using System.Security; + +using GostCryptography.Base; +using GostCryptography.Native; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Базовый класс для всех реализаций алгоритма хэширования ГОСТ Р 34.11 + /// + public abstract class Gost_R3411_HashAlgorithm : GostHashAlgorithm, ISafeHandleProvider + { + /// + [SecuritySafeCritical] + protected Gost_R3411_HashAlgorithm(int hashSize) : base(hashSize) + { + _hashHandle = CreateHashHandle(); + } + + /// + [SecuritySafeCritical] + protected Gost_R3411_HashAlgorithm(ProviderType providerType, int hashSize) : base(providerType, hashSize) + { + _hashHandle = CreateHashHandle(); + } + + [SecurityCritical] + internal Gost_R3411_HashAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle, int hashSize) : base(providerType, hashSize) + { + _hashHandle = CreateHashHandle(providerHandle); + } + + /// + /// Создает дескриптор функции хэширования криптографического провайдера + /// + [SecurityCritical] + protected SafeHashHandleImpl CreateHashHandle() + { + return CreateHashHandle(CryptoApiHelper.GetProviderHandle(ProviderType)); + } + + /// + /// Создает дескриптор функции хэширования криптографического провайдера + /// + [SecurityCritical] + protected abstract SafeHashHandleImpl CreateHashHandle(SafeProvHandleImpl providerHandle); + + [SecurityCritical] + private SafeHashHandleImpl _hashHandle; + + /// + SafeHashHandleImpl ISafeHandleProvider.SafeHandle + { + [SecurityCritical] + get => _hashHandle; + } + + /// + [SecuritySafeCritical] + public override void Initialize() + { + _hashHandle.TryDispose(); + _hashHandle = CreateHashHandle(); + } + + /// + [SecuritySafeCritical] + protected override void HashCore(byte[] data, int dataOffset, int dataLength) + { + CryptoApiHelper.HashData(_hashHandle, data, dataOffset, dataLength); + } + + /// + [SecuritySafeCritical] + protected override byte[] HashFinal() + { + return CryptoApiHelper.EndHashData(_hashHandle); + } + + /// + [SecuritySafeCritical] + protected override void Dispose(bool disposing) + { + _hashHandle.TryDispose(); + + base.Dispose(disposing); + } + } +} diff --git a/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_PRF.cs b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_PRF.cs new file mode 100644 index 0000000..42440dc --- /dev/null +++ b/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_PRF.cs @@ -0,0 +1,167 @@ +using GostCryptography.Base; +using GostCryptography.Gost_28147_89; +using System; +using System.Security; + +namespace GostCryptography.Gost_R3411 +{ + /// + /// Базовый класс для всех реализаций генератора псевдослучайной последовательности (Pseudorandom Function, PRF) на базе алгоритма хэширования ГОСТ Р 34.11 + /// + /// Тип HMAC + public abstract class Gost_R3411_PRF : GostPRF where THMAC : GostHMAC + { + /// + /// Конструктор + /// + /// Симметричный ключ ГОСТ 28147 для вычисления HMAC на основе алгоритма ГОСТ Р 34.11 + /// Метка для порождения ключей (аргумент label функции PRF) + /// Начальное число для порождения ключей (аргумент seed функции PRF) + /// + /// + [SecuritySafeCritical] + protected Gost_R3411_PRF(Gost_28147_89_SymmetricAlgorithmBase key, byte[] label, byte[] seed) + : this(key.ProviderType, Gost_28147_89_SymmetricAlgorithm.CreateFromKey(key), label, seed) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Симметричный ключ ГОСТ 28147 для вычисления HMAC на основе алгоритма ГОСТ Р 34.11 + /// Метка для порождения ключей (аргумент label функции PRF) + /// Начальное число для порождения ключей (аргумент seed функции PRF) + /// + /// + [SecuritySafeCritical] + protected Gost_R3411_PRF(ProviderType providerType, byte[] key, byte[] label, byte[] seed) + : this(providerType, Gost_28147_89_SymmetricAlgorithm.CreateFromSessionKey(providerType, key), label, seed) + { + } + + /// + /// Конструктор + /// + /// Тип криптографического провайдера + /// Симметричный ключ ГОСТ 28147 для вычисления HMAC на основе алгоритма ГОСТ Р 34.11 + /// Метка для порождения ключей (аргумент label функции PRF) + /// Начальное число для порождения ключей (аргумент seed функции PRF) + /// + /// + [SecuritySafeCritical] + private Gost_R3411_PRF(ProviderType providerType, Gost_28147_89_SymmetricAlgorithm key, byte[] label, byte[] seed) : base(providerType) + { + if (label == null) + { + throw ExceptionUtility.ArgumentNull(nameof(label)); + } + + if (seed == null) + { + throw ExceptionUtility.ArgumentNull(nameof(seed)); + } + + _key = key; + _hmac = CreateHMAC(key); + + var labelAndSeed = new byte[label.Length + seed.Length]; + label.CopyTo(labelAndSeed, 0); + seed.CopyTo(labelAndSeed, label.Length); + + _labelAndSeed = labelAndSeed; + _buffer = new byte[labelAndSeed.Length + (_hmac.HashSize / 8)]; + + _value = labelAndSeed; + _keyIndex = 0; + } + + private readonly Gost_28147_89_SymmetricAlgorithm _key; + private readonly GostHMAC _hmac; + private readonly byte[] _labelAndSeed; + private readonly byte[] _buffer; + private byte[] _value; + private int _keyIndex; + + /// + /// Создает экземпляр на основе заданного ключа + /// + [SecuritySafeCritical] + protected abstract THMAC CreateHMAC(Gost_28147_89_SymmetricAlgorithm key); + + /// + /// Возвращает очередной набор псевдослучайной последовательности + /// + /// + /// Размер последовательности зависит от алгоритма хэширования + /// + [SecurityCritical] + public byte[] DeriveBytes() + { + var randomBuffer = GenerateNextBytes(); + + return _hmac.ComputeHash(randomBuffer); + } + + /// + /// Возвращает псевдослучайный симметричный ключ ГОСТ 28147 + /// + [SecuritySafeCritical] + public Gost_28147_89_SymmetricAlgorithmBase DeriveKey() + { + var randomPassword = GenerateNextBytes(); + + using (var hmac = CreateHMAC(_key)) + { + return Gost_28147_89_SymmetricAlgorithm.CreateFromPassword(hmac, randomPassword); + } + } + + /// + /// Возвращает псевдослучайный симметричный ключ ГОСТ 28147 + /// + /// Позиция ключа в псевдослучайной последовательности + /// Если позиция ключа не кратна размеру ключа в байтах или ключ с данной позицией уже был создан + [SecurityCritical] + public Gost_28147_89_SymmetricAlgorithmBase DeriveKey(int position) + { + if ((position % _hmac.HashSize) != 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(position)); + } + + var keyIndex = position / _hmac.HashSize; + + if (keyIndex < _keyIndex) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(position)); + } + + while (keyIndex > _keyIndex) + { + DeriveKey().Clear(); + } + + return DeriveKey(); + } + + [SecurityCritical] + private byte[] GenerateNextBytes() + { + _value = _hmac.ComputeHash(_value); + _value.CopyTo(_buffer, 0); + _labelAndSeed.CopyTo(_buffer, _value.Length); + + _keyIndex++; + + return _buffer; + } + + /// + protected override void Dispose(bool disposing) + { + _key.Clear(); + _hmac.Dispose(); + } + } +} diff --git a/Hcs.Client/GostCryptography/LICENSE b/Hcs.Client/GostCryptography/LICENSE new file mode 100644 index 0000000..1321e78 --- /dev/null +++ b/Hcs.Client/GostCryptography/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Alexander Mezhov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Hcs.Client/GostCryptography/Native/Constants.cs b/Hcs.Client/GostCryptography/Native/Constants.cs new file mode 100644 index 0000000..456f77d --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/Constants.cs @@ -0,0 +1,409 @@ +namespace GostCryptography.Native +{ + /// + /// Константы для работы с криптографическим провайдером + /// + public static class Constants + { + // ReSharper disable InconsistentNaming + + #region Идентификаторы криптографических алгоритмов ГОСТ + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа пользователя. Открытый ключ получается по ГОСТ Р 34.10 2001 + /// + public const int CALG_DH_EL_SF = 0xaa24; + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа пользователя. Открытый ключ получается по ГОСТ Р 34.10 2012 (256 бит) + /// + public const int CALG_DH_GR3410_2012_256_SF = 0xaa46; + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа пользователя. Открытый ключ получается по ГОСТ Р 34.10 2012 (512 бит) + /// + public const int CALG_DH_GR3410_2012_512_SF = 0xaa42; + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2001 + /// + public const int CALG_DH_EL_EPHEM = 0xaa25; + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (256 бит) + /// + public const int CALG_DH_GR3410_12_256_EPHEM = 0xaa47; + + /// + /// Идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (512 бит) + /// + public const int CALG_DH_GR3410_12_512_EPHEM = 0xaa43; + + /// + /// Идентификатор алгоритма ЭЦП по ГОСТ Р 34.10-2001 + /// + public const int CALG_GR3410EL = 0x2e23; + + /// + /// Идентификатор алгоритма ЭЦП по ГОСТ Р 34.10-2012 (256 бит) + /// + public const int CALG_GR3410_2012_256 = 0x2e49; + + /// + /// Идентификатор алгоритма ЭЦП по ГОСТ Р 34.10-2012 (512 бит) + /// + public const int CALG_GR3410_2012_512 = 0x2e3d; + + /// + /// Идентификатор алгоритма хэширования в соответствии с ГОСТ Р 34.11-94 + /// + public const int CALG_GR3411 = 0x801e; + + /// + /// Идентификатор алгоритма хэширования в соответствии с ГОСТ Р 34.11-2012, длина выхода 256 бит + /// + public const int CALG_GR3411_2012_256 = 0x8021; + + /// + /// Идентификатор алгоритма хэширования в соответствии с ГОСТ Р 34.11-2012, длина выхода 512 бит + /// + public const int CALG_GR3411_2012_512 = 0x8022; + + /// + /// Идентификатор алгоритма ключевого хэширования (HMAC, Hash-based Message Authentication Code) на базе алгоритма ГОСТ Р 34.11-94 и сессионного ключа + /// + public const int CALG_GR3411_HMAC = 0x8027; + + /// + /// Идентификатор алгоритма ключевого хэширования (HMAC, Hash-based Message Authentication Code) на базе алгоритма ГОСТ Р 34.11-94 и сессионного ключа , длина выхода 256 бит + /// + public const int CALG_GR3411_2012_256_HMAC = 0x8034; + + /// + /// Идентификатор алгоритма ключевого хэширования (HMAC, Hash-based Message Authentication Code) на базе алгоритма ГОСТ Р 34.11-94 и сессионного ключа , длина выхода 512 бит + /// + public const int CALG_GR3411_2012_512_HMAC = 0x8035; + + /// + /// Идентификатор алгоритма ключевого хэширования (HMAC, Hash-based Message Authentication Code) на базе алгоритма хэширования по ГОСТ Р 34.11 + /// + public const int CALG_GR3411_HMAC34 = 0x8028; + + /// + /// Идентификатор алгоритма симметричного шифрования по ГОСТ 28147-89 + /// + public const int CALG_G28147 = 0x661e; + + /// + /// Идентификатор алгоритма вычисления имитовставки по ГОСТ 28147-89 + /// + public const int CALG_G28147_IMIT = 0x801f; + + /// + /// Идентификатор алгоритма экспорта ключа КриптоПро + /// + public const int CALG_PRO_EXPORT = 0x661f; + + /// + /// Идентификатор алгоритма экспорта ключа по ГОСТ 28147-89 + /// + public const int CALG_SIMPLE_EXPORT = 0x6620; + + #endregion + + #region Настройки контекста криптографического провайдера + + /// + /// Создать новый ключевой контейнер + /// + public const uint CRYPT_NEWKEYSET = 8; + + /// + /// Использовать ключи локальной машины + /// + public const uint CRYPT_MACHINE_KEYSET = 0x20; + + /// + /// Получить доступ к провайдеру без необходимости доступа к приватным ключам. + /// + public const uint CRYPT_VERIFYCONTEXT = 0xf0000000; + + #endregion + + #region Параметры криптографического провайдера + + public const int PP_CLIENT_HWND = 1; + + /// + /// Удаляет текущий контейнер с носителя + /// + public const int PP_DELETE_KEYSET = 0x7d; + + /// + /// Задаёт пароль (PIN) для доступа к ключу AT_KEYEXCHANGE + /// + public const int PP_KEYEXCHANGE_PIN = 0x20; + + /// + /// Задаёт пароль (PIN) для доступа к ключу AT_SIGNATURE + /// + public const int PP_SIGNATURE_PIN = 0x21; + + /// + /// Тип криптопровайдера + /// + public const int PP_PROVTYPE = 0x10; + + /// + /// Перечисление контейнеров криптопровайдера + /// + public const int PP_ENUMCONTAINERS = 0x2; + + /// + /// Получение первого элемента в перечислении + /// + public const uint CRYPT_FIRST = 0x1; + + /// + /// Получение следующего элемента в перечислении + /// + public const uint CRYPT_NEXT = 0x2; + + /// + /// Возвращает FQCN (Fully Qualified Container Name) контейнера VipNet + /// + public const uint CRYPT_UNIQUE = 0x8; + + /// + /// Возвращает FQCN (Fully Qualified Container Name) контейнера CryptoPro + /// + public const uint CRYPT_FQCN = 0x10; + + /// + /// В перечислении нет больше элементов + /// + public const uint ERROR_NO_MORE_ITEMS = 0x103; + + /// + /// Искомый сертификат не найден + /// + public const int ERROR_NO_SUCH_CERTIFICATE = -2146435028; // 8010002C + + #endregion + + #region Параметры функции хэширования криптографического провайдера + + /// + /// Стартовый вектор функции хэширования, устанавливаемый приложением + /// + public const int HP_HASHSTARTVECT = 8; + + /// + /// Значение функции хэширования в little-endian порядке байт в соотвествии с типом GostR3411-94-Digest CPCMS [RFC 4490] + /// + public const int HP_HASHVAL = 2; + + #endregion + + #region Параметры функций шифрования криптографического провайдера + + /// + /// Признак ключей ГОСТ 28147-89 и мастер ключей TLS + /// + public const int G28147_MAGIC = 0x374A51FD; + + /// + /// Признак ключей ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001 + /// + public const int GR3410_1_MAGIC = 0x3147414D; + + #endregion + + #region Параметры транспортировки ключей + + /// + /// Используется для транспортировки симметричных ключей CALG_G28147, CALG_UECSYMMETRIC + /// + public const int SIMPLEBLOB = 1; + + /// + /// Используется для транспортировки открытых ключей + /// + public const int PUBLICKEYBLOB = 6; + + #endregion + + #region Параметры ключей криптографического провайдера + + /// + /// Вектор инициализации (IV, синхропосылки) алгоритма шифрования + /// + public const int KP_IV = 1; + + /// + /// Метод дополнения шифра ключа + /// + public const int KP_PADDING = 3; + + /// + /// Режим шифра ключа + /// + public const int KP_MODE = 4; + + /// + /// Идентификатор алгоритма ключа + /// + public const int KP_ALGID = 7; + + /// + /// Идентификатор алгоритма экспорта для симметричного ключа + /// + public const int KP_EXPORTID = 108; + + /// + /// Строковый идентификатор узла замены + /// + public const int KP_CIPHEROID = 0x68; + + /// + /// Строковый идентификатор параметров ключа ГОСТ Р 34.10-2001, применяемых в алгоритме Диффи-Хеллмана + /// + public const int KP_DHOID = 0x6a; + + /// + /// Строковый идентификатор функции хэширования + /// + public const int KP_HASHOID = 0x67; + + /// + /// Закрытый ключ в ключевой паре + /// + public const int KP_X = 14; + + /// + /// Сертификат X.509 в формате Distinguished Encoding Rules (DER) + /// + public const int KP_CERTIFICATE = 0x1a; + + /// + /// Произведенный ключ может быть передан из криптопровайдера в ключевой блоб при экспорте ключа независимо от сессии криптопровайдера (исключает CRYPT_ARCHIVABLE) + /// + public const int CRYPT_EXPORTABLE = 1; + + /// + /// Произведенный ключ может быть передан из криптопровайдера в ключевой блоб при экспорте ключа в раках одной сессии криптопровайдера (исключает CRYPT_EXPORTABLE) + /// + public const int CRYPT_ARCHIVABLE = 0x4000; + + /// + /// При любом запросе на доступ к носителю закрытого ключа пользователя выводится окно диалога, запрашивающего право доступа к ключу + /// + public const int CRYPT_USER_PROTECTED = 2; + + /// + /// Генерация пустой ключевой пары обмена + /// + public const int CRYPT_PREGEN = 0x40; + + /// + /// Пара ключей для обмена ключами + /// + public const int AT_KEYEXCHANGE = 1; + + /// + /// Пара ключей для формирования цифровой подписи + /// + public const int AT_SIGNATURE = 2; + + #endregion + + #region Методы дополнения шифра ключа (KP_PADDING) + + /// + /// PKCS#5 + /// + public const int PKCS5_PADDING = 1; + + /// + /// Дополнение случайными байтами + /// + public const int RANDOM_PADDING = 2; + + /// + /// Дополнение нулевыми байтами + /// + public const int ZERO_PADDING = 3; + + #endregion + + #region Режимы шифра ключа (KP_MODE) + + /// + /// Cipher Block Chaining (CBC) + /// + public const int CRYPT_MODE_CBC = 1; + + /// + /// Electronic codebook (ECB) + /// + public const int CRYPT_MODE_ECB = 2; + + /// + /// Output Feedback (OFB) + /// + public const int CRYPT_MODE_OFB = 3; + + /// + /// Cipher Feedback (CFB) + /// + public const int CRYPT_MODE_CFB = 4; + + /// + /// Ciphertext stealing (CTS) + /// + public const int CRYPT_MODE_CTS = 5; + + #endregion + + #region Коды ошибок + + /// + /// Aлгоритм, который данный криптопровайдер не поддерживает + /// + public const int NTE_BAD_ALGID = -2146893816; + + /// + /// Данные некорректного размера + /// + public const int NTE_BAD_DATA = -2146893819; + + /// + /// Дескриптор хэша ошибочен + /// + public const int NTE_BAD_HASH = -2146893822; + + /// + /// Ключевой контейнер не был открыт или не существует + /// + public const int NTE_BAD_KEYSET = -2146893802; + + /// + /// Ключевой контейнер с заданным именем не существует + /// + public const int NTE_KEYSET_NOT_DEF = -2146893799; + + /// + /// Ключ с заданным параметром (AT_KEYEXCHANGE, AT_SIGNATURE или AT_UECSYMMETRICKEY) не существует + /// + public const int NTE_NO_KEY = -2146893811; + + /// + /// Пользователь прервал операцию + /// + public const int SCARD_W_CANCELLED_BY_USER = -2146434962; + + #endregion + + // ReSharper restore InconsistentNaming + } +} diff --git a/Hcs.Client/GostCryptography/Native/CryptoApi.cs b/Hcs.Client/GostCryptography/Native/CryptoApi.cs new file mode 100644 index 0000000..af434dc --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/CryptoApi.cs @@ -0,0 +1,154 @@ +using System; +using System.Runtime.ConstrainedExecution; +using System.Runtime.InteropServices; +using System.Security; +using System.Text; + +namespace GostCryptography.Native +{ + /// + /// Функции для работы с Microsoft CryptoAPI + /// + [SecurityCritical] + public static class CryptoApi + { + // ReSharper disable InconsistentNaming + + #region Для работы с криптографическим провайдером + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] + public static extern bool CryptAcquireContext([In][Out] ref SafeProvHandleImpl hProv, [In] string pszContainer, [In] string pszProvider, [In] uint dwProvType, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptReleaseContext(IntPtr hCryptProv, uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] + [DllImport("advapi32.dll", CharSet = CharSet.Ansi, SetLastError = true)] + public static extern bool CryptContextAddRef([In] IntPtr hProv, [In] byte[] pdwReserved, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + public static extern bool CryptGetProvParam([In] SafeProvHandleImpl hProv, [In] uint dwParam, [In][Out] byte[] pbData, ref uint dwDataLen, [In] uint dwFlags); + + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGetProvParam([In] SafeProvHandleImpl hProv, [In] uint dwParam, [MarshalAs(UnmanagedType.LPStr)] StringBuilder pbData, ref uint dwDataLen, uint dwFlags); + + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGetProvParam([In] SafeProvHandleImpl hProv, [In] uint dwParam, [MarshalAs(UnmanagedType.U8)] long pbData, ref uint dwDataLen, uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptSetProvParam([In] SafeProvHandleImpl hProv, [In] uint dwParam, [In] IntPtr pbData, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] + [DllImport("advapi32.dll", EntryPoint = "CryptSetProvParam", SetLastError = true)] + public static extern bool CryptSetProvParam2(IntPtr hCryptProv, [In] uint dwParam, [In] byte[] pbData, [In] uint dwFlags); + + #endregion + + #region Для работы с функцией хэширования криптографического провайдера + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptCreateHash([In] SafeProvHandleImpl hProv, [In] uint Algid, [In] SafeKeyHandleImpl hKey, [In] uint dwFlags, [In][Out] ref SafeHashHandleImpl phHash); + + [return: MarshalAs(UnmanagedType.Bool)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptDestroyHash(IntPtr pHashCtx); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGetHashParam([In] SafeHashHandleImpl hHash, [In] uint dwParam, [In][Out] byte[] pbData, ref uint pdwDataLen, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptSetHashParam([In] SafeHashHandleImpl hHash, [In] uint dwParam, [In][Out] byte[] pbData, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptHashData([In] SafeHashHandleImpl hHash, [In][Out] byte[] pbData, [In] uint dwDataLen, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern unsafe bool CryptHashData([In] SafeHashHandleImpl hHash, byte* pbData, [In] uint dwDataLen, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptHashSessionKey([In] SafeHashHandleImpl hHash, [In] SafeKeyHandleImpl hKey, [In] uint dwFlags); + + #endregion + + #region Для работы с функцией шифрования криптографического провайдера + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptDecrypt([In] SafeKeyHandleImpl hKey, [In] SafeHashHandleImpl hHash, [In][MarshalAs(UnmanagedType.Bool)] bool Final, [In] uint dwFlags, [In][Out] byte[] pbData, ref uint pdwDataLen); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptEncrypt([In] SafeKeyHandleImpl hKey, [In] SafeHashHandleImpl hHash, [In][MarshalAs(UnmanagedType.Bool)] bool Final, [In] uint dwFlags, [In][Out] byte[] pbData, ref uint pdwDataLen, [In] uint dwBufLen); + + #endregion + + #region Для работы с ключами криптографического провайдера + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGenKey([In] SafeProvHandleImpl hProv, [In] uint Algid, [In] uint dwFlags, [In][Out] ref SafeKeyHandleImpl phKey); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGetUserKey([In] SafeProvHandleImpl hProv, [In] uint dwKeySpec, [In][Out] ref SafeKeyHandleImpl phUserKey); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptDeriveKey([In] SafeProvHandleImpl hProv, [In] uint Algid, [In] SafeHashHandleImpl hBaseData, [In] uint dwFlags, [In][Out] ref SafeKeyHandleImpl phKey); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptDuplicateKey([In] IntPtr hKey, [In] byte[] pdwReserved, [In] uint dwFlags, [In][Out] ref SafeKeyHandleImpl phKey); + + [return: MarshalAs(UnmanagedType.Bool)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptDestroyKey(IntPtr pKeyCtx); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptGetKeyParam([In] SafeKeyHandleImpl hKey, [In] uint dwParam, [In][Out] byte[] pbData, ref uint pdwDataLen, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptSetKeyParam([In] SafeKeyHandleImpl hKey, [In] uint dwParam, [In] byte[] pbData, [In] uint dwFlags); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptExportKey([In] SafeKeyHandleImpl hKey, [In] SafeKeyHandleImpl hExpKey, [In] uint dwBlobType, [In] uint dwFlags, [Out] byte[] pbData, ref uint pdwDataLen); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", SetLastError = true)] + public static extern bool CryptImportKey([In] SafeProvHandleImpl hCryptProv, [In] byte[] pbData, [In] uint dwDataLen, [In] SafeKeyHandleImpl hPubKey, [In] uint dwFlags, [In][Out] ref SafeKeyHandleImpl phKey); + + #endregion + + #region Для работы с цифровой подписью + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", CharSet = CharSet.Ansi, SetLastError = true)] + public static extern bool CryptSignHash([In] SafeHashHandleImpl hHash, [In] uint dwKeySpec, [MarshalAs(UnmanagedType.LPStr)] StringBuilder sDescription, [In] uint dwFlags, [In][Out] byte[] pbSignature, ref uint pdwSigLen); + + [return: MarshalAs(UnmanagedType.Bool)] + [DllImport("advapi32.dll", CharSet = CharSet.Ansi, SetLastError = true)] + public static extern bool CryptVerifySignature([In] SafeHashHandleImpl hHash, [In][Out] byte[] pbSignature, uint pdwSigLen, [In] SafeKeyHandleImpl hPubKey, [MarshalAs(UnmanagedType.LPStr)] StringBuilder sDescription, [In] uint dwFlags); + + #endregion + + // ReSharper restore InconsistentNaming + } +} diff --git a/Hcs.Client/GostCryptography/Native/CryptoApiHelper.cs b/Hcs.Client/GostCryptography/Native/CryptoApiHelper.cs new file mode 100644 index 0000000..36b7f84 --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/CryptoApiHelper.cs @@ -0,0 +1,1312 @@ +using GostCryptography.Asn1.Gost.Gost_28147_89; +using GostCryptography.Asn1.Gost.Gost_R3410; +using GostCryptography.Base; +using GostCryptography.Properties; +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading; + +namespace GostCryptography.Native +{ + /// + /// Вспомогательные методы для работы с Microsoft CryptoAPI + /// + [SecurityCritical] + public static class CryptoApiHelper + { + /// + /// Возвращает , если заданный провайдер установлен + /// + [SecurityCritical] + public static bool IsInstalled(ProviderType providerType) + { + try + { + var providerHandle = GetProviderHandle(providerType); + return !providerHandle.IsInvalid; + } + catch + { + return false; + } + } + + /// + /// Возвращает доступный провайдер для ключей ГОСТ Р 34.10-2001 + /// + /// Провайдер не установлен + [SecuritySafeCritical] + public static ProviderType GetAvailableProviderType_2001() + { + if (IsInstalled(ProviderType.VipNet)) + { + return ProviderType.VipNet; + } + + if (IsInstalled(ProviderType.CryptoPro)) + { + return ProviderType.CryptoPro; + } + + throw ExceptionUtility.CryptographicException(Resources.Provider_2001_IsNotInstalled); + } + + /// + /// Возвращает доступный провайдер для ключей ГОСТ Р 34.10-2012/512 + /// + /// Провайдер не установлен + [SecuritySafeCritical] + public static ProviderType GetAvailableProviderType_2012_512() + { + if (IsInstalled(ProviderType.VipNet_2012_512)) + { + return ProviderType.VipNet_2012_512; + } + + if (IsInstalled(ProviderType.CryptoPro_2012_512)) + { + return ProviderType.CryptoPro_2012_512; + } + + throw ExceptionUtility.CryptographicException(Resources.Provider_2012_512_IsNotInstalled); + } + + /// + /// Возвращает доступный провайдер для ключей ГОСТ Р 34.10-2012/1024 + /// + /// Провайдер не установлен + [SecuritySafeCritical] + public static ProviderType GetAvailableProviderType_2012_1024() + { + if (IsInstalled(ProviderType.VipNet_2012_1024)) + { + return ProviderType.VipNet_2012_1024; + } + + if (IsInstalled(ProviderType.CryptoPro_2012_1024)) + { + return ProviderType.CryptoPro_2012_1024; + } + + throw ExceptionUtility.CryptographicException(Resources.Provider_2012_1024_IsNotInstalled); + } + + #region Общие объекты + + private static readonly object ProviderHandleSync = new object(); + private static volatile Dictionary _providerHandles = new Dictionary(); + + public static SafeProvHandleImpl GetProviderHandle(ProviderType providerType) + { + if (!_providerHandles.ContainsKey(providerType)) + { + lock (ProviderHandleSync) + { + if (!_providerHandles.ContainsKey(providerType)) + { + var providerParams = new CspParameters(providerType.ToInt()); + var providerHandle = AcquireProvider(providerParams); + + Thread.MemoryBarrier(); + + _providerHandles.Add(providerType, providerHandle); + } + } + } + + return _providerHandles[providerType]; + } + + private static readonly object RandomNumberGeneratorSync = new object(); + private static volatile Dictionary _randomNumberGenerators = new Dictionary(); + + public static RNGCryptoServiceProvider GetRandomNumberGenerator(ProviderType providerType) + { + if (!_randomNumberGenerators.ContainsKey(providerType)) + { + lock (RandomNumberGeneratorSync) + { + if (!_randomNumberGenerators.ContainsKey(providerType)) + { + var providerParams = new CspParameters(providerType.ToInt()); + var randomNumberGenerator = new RNGCryptoServiceProvider(providerParams); + + Thread.MemoryBarrier(); + + _randomNumberGenerators.Add(providerType, randomNumberGenerator); + } + } + } + + return _randomNumberGenerators[providerType]; + } + + #endregion + + #region Для работы с криптографическим провайдером + + public static SafeProvHandleImpl AcquireProvider(CspParameters providerParameters) + { + var providerHandle = SafeProvHandleImpl.InvalidHandle; + + var dwFlags = Constants.CRYPT_VERIFYCONTEXT; + + if ((providerParameters.Flags & CspProviderFlags.UseMachineKeyStore) != CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_MACHINE_KEYSET; + } + + if (!CryptoApi.CryptAcquireContext(ref providerHandle, providerParameters.KeyContainerName, providerParameters.ProviderName, (uint)providerParameters.ProviderType, dwFlags)) + { + throw CreateWin32Error(); + } + + return providerHandle; + } + + public static SafeProvHandleImpl OpenProvider(CspParameters providerParameters) + { + var providerHandle = SafeProvHandleImpl.InvalidHandle; + var dwFlags = MapCspProviderFlags(providerParameters.Flags); + + if (!CryptoApi.CryptAcquireContext(ref providerHandle, providerParameters.KeyContainerName, providerParameters.ProviderName, (uint)providerParameters.ProviderType, dwFlags)) + { + throw CreateWin32Error(); + } + + return providerHandle; + } + + public static SafeProvHandleImpl CreateProvider(CspParameters providerParameters) + { + var providerHandle = SafeProvHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptAcquireContext(ref providerHandle, providerParameters.KeyContainerName, providerParameters.ProviderName, (uint)providerParameters.ProviderType, Constants.CRYPT_NEWKEYSET)) + { + throw CreateWin32Error(); + } + + return providerHandle; + } + + private static uint MapCspProviderFlags(CspProviderFlags flags) + { + uint dwFlags = 0; + + if ((flags & CspProviderFlags.UseMachineKeyStore) != CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_MACHINE_KEYSET; + } + + if ((flags & CspProviderFlags.NoPrompt) != CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_PREGEN; + } + + return dwFlags; + } + + public static void SetProviderParameter(SafeProvHandleImpl providerHandle, int keyNumber, uint keyParamId, IntPtr keyParamValue) + { + if ((keyParamId == Constants.PP_KEYEXCHANGE_PIN) || (keyParamId == Constants.PP_SIGNATURE_PIN)) + { + if (keyNumber == Constants.AT_KEYEXCHANGE) + { + keyParamId = Constants.PP_KEYEXCHANGE_PIN; + } + else if (keyNumber == Constants.AT_SIGNATURE) + { + keyParamId = Constants.PP_SIGNATURE_PIN; + } + else + { + throw ExceptionUtility.NotSupported(Resources.KeyAlgorithmNotSupported); + } + } + + if (!CryptoApi.CryptSetProvParam(providerHandle, keyParamId, keyParamValue, 0)) + { + throw CreateWin32Error(); + } + } + + public static ProviderType GetProviderType(SafeProvHandleImpl providerHandle) + { + uint providerTypeLen = sizeof(uint); + byte[] dwData = new byte[sizeof(uint)]; + + if (!CryptoApi.CryptGetProvParam(providerHandle, Constants.PP_PROVTYPE, dwData, ref providerTypeLen, 0)) + { + throw CreateWin32Error(); + } + + var providerType = BitConverter.ToUInt32(dwData, 0); + + return (ProviderType)providerType; + } + + /// + /// Возвращает список имен контейнеров указанного криптопровайдера + /// + /// Тип криптопровайдера + /// Вернуть полное имя контейнера + /// Область поиска контейнеров + public static IEnumerable GetContainers(ProviderType providerType, bool fullContainerName = true, StoreLocation storeLocation = StoreLocation.LocalMachine) + { + var containers = new List(); + + var providerParameters = new CspParameters((int)providerType); + + if (storeLocation == StoreLocation.LocalMachine) + { + providerParameters.Flags |= CspProviderFlags.UseMachineKeyStore; + } + + using (var providerHandle = AcquireProvider(providerParameters)) + { + var containerNameMaxLength = 0U; + var flag = Constants.CRYPT_FIRST; + + if (fullContainerName) + { + flag |= (providerType.IsVipNet() ? Constants.CRYPT_UNIQUE : Constants.CRYPT_FQCN); + } + + if (!CryptoApi.CryptGetProvParam(providerHandle, Constants.PP_ENUMCONTAINERS, (StringBuilder)null, ref containerNameMaxLength, flag)) + { + if (Marshal.GetLastWin32Error() != Constants.ERROR_NO_MORE_ITEMS) + { + throw CreateWin32Error(); + } + + return containers; + } + + while (true) + { + var containerName = new StringBuilder((int)containerNameMaxLength); + + if (!CryptoApi.CryptGetProvParam(providerHandle, Constants.PP_ENUMCONTAINERS, containerName, ref containerNameMaxLength, flag)) + { + if (Marshal.GetLastWin32Error() != Constants.ERROR_NO_MORE_ITEMS) + { + throw CreateWin32Error(); + } + + break; + } + + containers.Add(containerName.ToString()); + + flag = Constants.CRYPT_NEXT; + + if (fullContainerName) + { + flag |= (providerType.IsVipNet() ? Constants.CRYPT_UNIQUE : Constants.CRYPT_FQCN); + } + } + } + + return containers; + } + + /// + /// Возвращает сертификат X.509 для указанного ключа + /// + /// Дескриптор ключа сертификата + public static X509Certificate2 GetKeyCertificate(SafeKeyHandleImpl keyHandle) + { + uint certDataLength = 0; + + if (!CryptoApi.CryptGetKeyParam(keyHandle, Constants.KP_CERTIFICATE, null, ref certDataLength, 0)) + { + if (Marshal.GetLastWin32Error() != Constants.ERROR_NO_SUCH_CERTIFICATE) + { + throw CreateWin32Error(); + } + + return null; + } + + var certData = new byte[certDataLength]; + + if (!CryptoApi.CryptGetKeyParam(keyHandle, Constants.KP_CERTIFICATE, certData, ref certDataLength, 0)) + { + throw CreateWin32Error(); + } + + return new X509Certificate2(certData); + } + + #endregion + + #region Для работы с функцией хэширования криптографического провайдера + + public static SafeHashHandleImpl CreateHash_3411_94(SafeProvHandleImpl providerHandle) + { + return CreateHash_3411(providerHandle, Constants.CALG_GR3411); + } + + public static SafeHashHandleImpl CreateHash_3411_2012_256(SafeProvHandleImpl providerHandle) + { + return CreateHash_3411(providerHandle, Constants.CALG_GR3411_2012_256); + } + + public static SafeHashHandleImpl CreateHash_3411_2012_512(SafeProvHandleImpl providerHandle) + { + return CreateHash_3411(providerHandle, Constants.CALG_GR3411_2012_512); + } + + private static SafeHashHandleImpl CreateHash_3411(SafeProvHandleImpl providerHandle, int hashAlgId) + { + var hashHandle = SafeHashHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptCreateHash(providerHandle, (uint)hashAlgId, SafeKeyHandleImpl.InvalidHandle, 0, ref hashHandle)) + { + throw CreateWin32Error(); + } + + return hashHandle; + } + + public static SafeHashHandleImpl CreateHashImit(SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + var hashImitHandle = SafeHashHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptCreateHash(providerHandle, Constants.CALG_G28147_IMIT, symKeyHandle, 0, ref hashImitHandle)) + { + throw CreateWin32Error(); + } + + return hashImitHandle; + } + + public static SafeHashHandleImpl CreateHashHMAC_94(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + var hmacAlgId = providerType.IsVipNet() ? Constants.CALG_GR3411 : Constants.CALG_GR3411_HMAC; + return CreateHashHMAC(providerHandle, symKeyHandle, hmacAlgId); + } + + public static SafeHashHandleImpl CreateHashHMAC_2012_256(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + var hmacAlgId = providerType.IsVipNet() ? Constants.CALG_GR3411_2012_256 : Constants.CALG_GR3411_2012_256_HMAC; + return CreateHashHMAC(providerHandle, symKeyHandle, hmacAlgId); + } + + public static SafeHashHandleImpl CreateHashHMAC_2012_512(ProviderType providerType, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle) + { + var hmacAlgId = providerType.IsVipNet() ? Constants.CALG_GR3411_2012_512 : Constants.CALG_GR3411_2012_512_HMAC; + return CreateHashHMAC(providerHandle, symKeyHandle, hmacAlgId); + } + + private static SafeHashHandleImpl CreateHashHMAC(SafeProvHandleImpl providerHandle, SafeKeyHandleImpl symKeyHandle, int hmacAlgId) + { + var hashHmacHandle = SafeHashHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptCreateHash(providerHandle, (uint)hmacAlgId, symKeyHandle, 0, ref hashHmacHandle)) + { + var errorCode = Marshal.GetLastWin32Error(); + + if (errorCode == Constants.NTE_BAD_ALGID) + { + throw ExceptionUtility.CryptographicException(Resources.AlgorithmNotAvailable); + } + + throw ExceptionUtility.CryptographicException(errorCode); + } + + return hashHmacHandle; + } + + public static unsafe void HashData(SafeHashHandleImpl hashHandle, byte[] data, int dataOffset, int dataLength) + { + if (data == null) + { + throw ExceptionUtility.ArgumentNull(nameof(data)); + } + + if (dataOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataOffset)); + } + + if (dataLength < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataLength)); + } + + if (data.Length < dataOffset + dataLength) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataLength)); + } + + if (dataLength > 0) + { + fixed (byte* dataRef = data) + { + var dataOffsetRef = dataRef + dataOffset; + + if (!CryptoApi.CryptHashData(hashHandle, dataOffsetRef, (uint)dataLength, 0)) + { + throw CreateWin32Error(); + } + } + } + } + + public static byte[] EndHashData(SafeHashHandleImpl hashHandle) + { + uint dataLength = 0; + + if (!CryptoApi.CryptGetHashParam(hashHandle, Constants.HP_HASHVAL, null, ref dataLength, 0)) + { + throw CreateWin32Error(); + } + + var data = new byte[dataLength]; + + if (!CryptoApi.CryptGetHashParam(hashHandle, Constants.HP_HASHVAL, data, ref dataLength, 0)) + { + throw CreateWin32Error(); + } + + return data; + } + + public static void HashKeyExchange(SafeHashHandleImpl hashHandle, SafeKeyHandleImpl keyExchangeHandle) + { + if (!CryptoApi.CryptHashSessionKey(hashHandle, keyExchangeHandle, 0)) + { + throw CreateWin32Error(); + } + } + + #endregion + + #region Для работы с функцией шифрования криптографического провайдера + + public static int EncryptData(ProviderType providerType, SafeKeyHandleImpl symKeyHandle, byte[] data, int dataOffset, int dataLength, ref byte[] encryptedData, int encryptedDataOffset, PaddingMode paddingMode, bool isDone, bool isStream) + { + if (dataOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataOffset)); + } + + if (dataLength < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataLength)); + } + + if (dataOffset > data.Length) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataOffset), Resources.InvalidDataOffset); + } + + var length = dataLength; + + if (isDone) + { + length += 8; + } + + // Выровненные данные + var dataAlignLength = (uint)dataLength; + var dataAlignArray = new byte[length]; + Array.Clear(dataAlignArray, 0, length); + Array.Copy(data, dataOffset, dataAlignArray, 0, dataLength); + + if (isDone) + { + var dataPadding = dataLength & 7; + var dataPaddingSize = (byte)(8 - dataPadding); + + // Добавление дополнения данных в зависимости от настроек + switch (paddingMode) + { + case PaddingMode.None: + if ((dataPadding != 0) && !isStream) + { + throw ExceptionUtility.CryptographicException(Resources.EncryptInvalidDataSize); + } + + break; + case PaddingMode.Zeros: + if (dataPadding != 0) + { + dataAlignLength += dataPaddingSize; + + // Дополнение заполняется нулевыми байтами + } + + break; + case PaddingMode.PKCS7: + { + dataAlignLength += dataPaddingSize; + + var paddingIndex = dataLength; + + // Дополнение заполняется байтами, в каждый из которых записывается размер дополнения + while (paddingIndex < dataAlignLength) + { + dataAlignArray[paddingIndex++] = dataPaddingSize; + } + } + break; + case PaddingMode.ANSIX923: + { + dataAlignLength += dataPaddingSize; + + // Дополнение заполняется нулевыми, кроме последнего - в него записывается размер дополнения + dataAlignArray[(int)((IntPtr)(dataAlignLength - 1))] = dataPaddingSize; + } + break; + case PaddingMode.ISO10126: + { + dataAlignLength += dataPaddingSize; + + // Дополнение заполняется случайными байтами, кроме последнего - в него записывается размер дополнения + var randomPadding = new byte[dataPaddingSize - 1]; + GetRandomNumberGenerator(providerType).GetBytes(randomPadding); + randomPadding.CopyTo(dataAlignArray, dataLength); + dataAlignArray[(int)((IntPtr)(dataAlignLength - 1))] = dataPaddingSize; + } + break; + default: + throw ExceptionUtility.Argument(nameof(paddingMode), Resources.InvalidPaddingMode); + } + } + + // Шифрование данных + if (!CryptoApi.CryptEncrypt(symKeyHandle, SafeHashHandleImpl.InvalidHandle, false, 0, dataAlignArray, ref dataAlignLength, (uint)length)) + { + throw CreateWin32Error(); + } + + // Копирование результата шифрования данных + if (encryptedData == null) + { + encryptedData = new byte[dataAlignLength]; + + Array.Copy(dataAlignArray, 0L, encryptedData, 0L, dataAlignLength); + } + else + { + if (encryptedDataOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(encryptedDataOffset)); + } + + if ((encryptedData.Length < dataAlignLength) || ((encryptedData.Length - dataAlignLength) < encryptedDataOffset)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(encryptedDataOffset), Resources.InvalidDataOffset); + } + + Array.Copy(dataAlignArray, 0L, encryptedData, encryptedDataOffset, dataAlignLength); + } + + return (int)dataAlignLength; + } + + public static int DecryptData(SafeKeyHandleImpl symKeyHandle, byte[] data, int dataOffset, int dataLength, ref byte[] decryptedData, int decryptedDataOffset, PaddingMode paddingMode, bool isDone) + { + if (dataOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataOffset)); + } + + if (dataLength < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataLength)); + } + + if ((dataOffset > data.Length) || ((dataOffset + dataLength) > data.Length)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(dataOffset), Resources.InvalidDataOffset); + } + + // Выровненные данные + var dataAlignLength = (uint)dataLength; + var dataAlign = new byte[dataAlignLength]; + Array.Copy(data, dataOffset, dataAlign, 0L, dataAlignLength); + + // Расшифровка данных + if (!CryptoApi.CryptDecrypt(symKeyHandle, SafeHashHandleImpl.InvalidHandle, false, 0, dataAlign, ref dataAlignLength)) + { + throw CreateWin32Error(); + } + + var length = (int)dataAlignLength; + + if (isDone) + { + byte dataPaddingSize = 0; + + // Удаление дополнения данных в зависимости от настроек + if (((paddingMode == PaddingMode.PKCS7) || (paddingMode == PaddingMode.ANSIX923)) || (paddingMode == PaddingMode.ISO10126)) + { + if (dataAlignLength < 8) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + // Размер дополнения находится в последнем байте + dataPaddingSize = dataAlign[(int)((IntPtr)(dataAlignLength - 1))]; + + if (dataPaddingSize > 8) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + // Проверка корректности дополнения данных + if (paddingMode == PaddingMode.PKCS7) + { + for (var paddingIndex = dataAlignLength - dataPaddingSize; paddingIndex < (dataAlignLength - 1); paddingIndex++) + { + if (dataAlign[paddingIndex] != dataPaddingSize) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + } + } + else if (paddingMode == PaddingMode.ANSIX923) + { + for (var paddingIndex = dataAlignLength - dataPaddingSize; paddingIndex < (dataAlignLength - 1); paddingIndex++) + { + if (dataAlign[paddingIndex] != 0) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + } + } + } + else if ((paddingMode != PaddingMode.None) && (paddingMode != PaddingMode.Zeros)) + { + throw ExceptionUtility.Argument(nameof(paddingMode), Resources.InvalidPaddingMode); + } + + length -= dataPaddingSize; + } + + if (decryptedData == null) + { + decryptedData = new byte[length]; + + Array.Copy(dataAlign, 0, decryptedData, 0, length); + } + else + { + if (decryptedDataOffset < 0) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(decryptedDataOffset)); + } + + if ((decryptedData.Length < length) || ((decryptedData.Length - length) < decryptedDataOffset)) + { + throw ExceptionUtility.ArgumentOutOfRange(nameof(decryptedData), Resources.InvalidDataOffset); + } + + Array.Copy(dataAlign, 0, decryptedData, decryptedDataOffset, length); + } + + return length; + } + + public static void EndEncrypt(ProviderType providerType, SafeKeyHandleImpl symKeyHandle) + { + uint dataLength = 0; + var data = new byte[32]; + var success = CryptoApi.CryptEncrypt(symKeyHandle, SafeHashHandleImpl.InvalidHandle, true, 0, data, ref dataLength, (uint)data.Length); + + if (!success) + { + throw CreateWin32Error(); + } + } + + public static void EndDecrypt(ProviderType providerType, SafeKeyHandleImpl symKeyHandle) + { + uint dataLength = 0; + var data = new byte[0]; + var success = CryptoApi.CryptDecrypt(symKeyHandle, SafeHashHandleImpl.InvalidHandle, true, 0, data, ref dataLength) || providerType.IsVipNet(); + + if (!success) + { + throw CreateWin32Error(); + } + } + + #endregion + + #region Для работы с ключами криптографического провайдера + + public static SafeKeyHandleImpl GenerateKey(SafeProvHandleImpl providerHandle, int algId, CspProviderFlags flags) + { + var keyHandle = SafeKeyHandleImpl.InvalidHandle; + var dwFlags = MapCspKeyFlags(flags); + + if (!CryptoApi.CryptGenKey(providerHandle, (uint)algId, dwFlags, ref keyHandle)) + { + throw CreateWin32Error(); + } + + return keyHandle; + } + + public static SafeKeyHandleImpl GenerateDhEphemeralKey(ProviderType providerType, SafeProvHandleImpl providerHandle, int algId, string digestParamSet, string publicKeyParamSet) + { + var keyHandle = SafeKeyHandleImpl.InvalidHandle; + var dwFlags = MapCspKeyFlags(CspProviderFlags.NoFlags) | Constants.CRYPT_PREGEN; + + if (!CryptoApi.CryptGenKey(providerHandle, (uint)algId, dwFlags, ref keyHandle)) + { + throw CreateWin32Error(); + } + + if (!providerType.IsVipNet()) + { + SetKeyParameterString(keyHandle, Constants.KP_HASHOID, digestParamSet); + } + + SetKeyParameterString(keyHandle, Constants.KP_DHOID, publicKeyParamSet); + SetKeyParameter(keyHandle, Constants.KP_X, null); + + return keyHandle; + } + + private static uint MapCspKeyFlags(CspProviderFlags flags) + { + uint dwFlags = 0; + + if ((flags & CspProviderFlags.UseNonExportableKey) == CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_EXPORTABLE; + } + + if ((flags & CspProviderFlags.UseArchivableKey) != CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_ARCHIVABLE; + } + + if ((flags & CspProviderFlags.UseUserProtectedKey) != CspProviderFlags.NoFlags) + { + dwFlags |= Constants.CRYPT_USER_PROTECTED; + } + + return dwFlags; + } + + public static SafeKeyHandleImpl GetUserKey(SafeProvHandleImpl providerHandle, int keyNumber) + { + var keyHandle = SafeKeyHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptGetUserKey(providerHandle, (uint)keyNumber, ref keyHandle)) + { + throw CreateWin32Error(); + } + + return keyHandle; + } + + public static SafeKeyHandleImpl DeriveSymKey(SafeProvHandleImpl providerHandle, SafeHashHandleImpl hashHandle) + { + var symKeyHandle = SafeKeyHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptDeriveKey(providerHandle, Constants.CALG_G28147, hashHandle, Constants.CRYPT_EXPORTABLE, ref symKeyHandle)) + { + throw CreateWin32Error(); + } + + return symKeyHandle; + } + + public static SafeKeyHandleImpl DuplicateKey(IntPtr sourceKeyHandle) + { + var keyHandle = SafeKeyHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptDuplicateKey(sourceKeyHandle, null, 0, ref keyHandle)) + { + throw CreateWin32Error(); + } + + return keyHandle; + } + + public static SafeKeyHandleImpl DuplicateKey(SafeKeyHandleImpl sourceKeyHandle) + { + return DuplicateKey(sourceKeyHandle.DangerousGetHandle()); + } + + public static int GetKeyParameterInt32(SafeKeyHandleImpl keyHandle, uint keyParamId) + { + const int doubleWordSize = 4; + + uint dwDataLength = doubleWordSize; + var dwDataBytes = new byte[doubleWordSize]; + + if (!CryptoApi.CryptGetKeyParam(keyHandle, keyParamId, dwDataBytes, ref dwDataLength, 0)) + { + throw CreateWin32Error(); + } + + if (dwDataLength != doubleWordSize) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + return BitConverter.ToInt32(dwDataBytes, 0); + } + + private static string GetKeyParameterString(SafeKeyHandleImpl keyHandle, uint keyParamId) + { + var paramValue = GetKeyParameter(keyHandle, keyParamId); + + return BytesToString(paramValue); + } + + private static string BytesToString(byte[] value) + { + string valueString; + + try + { + valueString = Encoding.GetEncoding(0).GetString(value); + + var length = 0; + + while (length < valueString.Length) + { + // Строка заканчивается нулевым символом + if (valueString[length] == '\0') + { + break; + } + + length++; + } + + if (length == valueString.Length) + { + throw ExceptionUtility.CryptographicException(Resources.InvalidString); + } + + valueString = valueString.Substring(0, length); + } + catch (DecoderFallbackException exception) + { + throw ExceptionUtility.CryptographicException(exception, Resources.InvalidString); + } + + return valueString; + } + + public static byte[] GetKeyParameter(SafeKeyHandleImpl keyHandle, uint keyParamId) + { + uint dataLength = 0; + + if (!CryptoApi.CryptGetKeyParam(keyHandle, keyParamId, null, ref dataLength, 0)) + { + throw CreateWin32Error(); + } + + var dataBytes = new byte[dataLength]; + + if (!CryptoApi.CryptGetKeyParam(keyHandle, keyParamId, dataBytes, ref dataLength, 0)) + { + throw CreateWin32Error(); + } + + return dataBytes; + } + + public static void SetKeyExchangeExportAlgId(ProviderType providerType, SafeKeyHandleImpl keyHandle, int keyExchangeExportAlgId) + { + var keyExchangeExportAlgParamId = providerType.IsVipNet() ? Constants.KP_EXPORTID : Constants.KP_ALGID; + SetKeyParameterInt32(keyHandle, keyExchangeExportAlgParamId, keyExchangeExportAlgId); + } + + public static void SetKeyParameterInt32(SafeKeyHandleImpl keyHandle, int keyParamId, int keyParamValue) + { + var dwDataBytes = BitConverter.GetBytes(keyParamValue); + + if (!CryptoApi.CryptSetKeyParam(keyHandle, (uint)keyParamId, dwDataBytes, 0)) + { + throw CreateWin32Error(); + } + } + + private static void SetKeyParameterString(SafeKeyHandleImpl keyHandle, int keyParamId, string keyParamValue) + { + var stringDataBytes = Encoding.GetEncoding(0).GetBytes(keyParamValue); + + if (!CryptoApi.CryptSetKeyParam(keyHandle, (uint)keyParamId, stringDataBytes, 0)) + { + throw CreateWin32Error(); + } + } + + public static void SetKeyParameter(SafeKeyHandleImpl keyHandle, int keyParamId, byte[] keyParamValue) + { + if (!CryptoApi.CryptSetKeyParam(keyHandle, (uint)keyParamId, keyParamValue, 0)) + { + throw CreateWin32Error(); + } + } + + #endregion + + #region Для экспорта ключей криптографического провайдера + + public static byte[] ExportCspBlob(SafeKeyHandleImpl symKeyHandle, SafeKeyHandleImpl keyExchangeHandle, int blobType) + { + uint exportedKeyLength = 0; + + if (!CryptoApi.CryptExportKey(symKeyHandle, keyExchangeHandle, (uint)blobType, 0, null, ref exportedKeyLength)) + { + throw CreateWin32Error(); + } + + var exportedKeyBytes = new byte[exportedKeyLength]; + + if (!CryptoApi.CryptExportKey(symKeyHandle, keyExchangeHandle, (uint)blobType, 0, exportedKeyBytes, ref exportedKeyLength)) + { + throw CreateWin32Error(); + } + + return exportedKeyBytes; + } + + public static T ExportPublicKey(SafeKeyHandleImpl symKeyHandle, T keyExchangeParams, int keySize) where T : Gost_R3410_KeyExchangeParams + { + var exportedKeyBytes = ExportCspBlob(symKeyHandle, SafeKeyHandleImpl.InvalidHandle, Constants.PUBLICKEYBLOB); + return DecodePublicBlob(exportedKeyBytes, keyExchangeParams, keySize); + } + + private static T DecodePublicBlob(byte[] encodedPublicBlob, T keyExchangeParams, int keySize) where T : Gost_R3410_KeyExchangeParams + { + if (encodedPublicBlob == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encodedPublicBlob)); + } + + if (encodedPublicBlob.Length < 16 + keySize / 8) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + var gostKeyMask = BitConverter.ToUInt32(encodedPublicBlob, 8); + + if (gostKeyMask != Constants.GR3410_1_MAGIC) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + var gostKeySize = BitConverter.ToUInt32(encodedPublicBlob, 12); + + if (gostKeySize != keySize) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + var encodeKeyParameters = new byte[encodedPublicBlob.Length - 16 - keySize / 8]; + Array.Copy(encodedPublicBlob, 16, encodeKeyParameters, 0, encodedPublicBlob.Length - 16 - keySize / 8); + keyExchangeParams.DecodeParameters(encodeKeyParameters); + + var publicKey = new byte[keySize / 8]; + Array.Copy(encodedPublicBlob, encodedPublicBlob.Length - keySize / 8, publicKey, 0, keySize / 8); + keyExchangeParams.PublicKey = publicKey; + + return keyExchangeParams; + } + + public static Gost_28147_89_KeyExchangeInfo ExportKeyExchange(SafeKeyHandleImpl symKeyHandle, SafeKeyHandleImpl keyExchangeHandle) + { + var exportedKeyBytes = ExportCspBlob(symKeyHandle, keyExchangeHandle, Constants.SIMPLEBLOB); + + return DecodeSimpleBlob(exportedKeyBytes); + } + + private static Gost_28147_89_KeyExchangeInfo DecodeSimpleBlob(byte[] exportedKeyBytes) + { + if (exportedKeyBytes == null) + { + throw ExceptionUtility.ArgumentNull(nameof(exportedKeyBytes)); + } + + if (exportedKeyBytes.Length < 16) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + if (BitConverter.ToUInt32(exportedKeyBytes, 4) != Constants.CALG_G28147) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + if (BitConverter.ToUInt32(exportedKeyBytes, 8) != Constants.G28147_MAGIC) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + if (BitConverter.ToUInt32(exportedKeyBytes, 12) != Constants.CALG_G28147) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_DATA); + } + + var keyExchangeInfo = new Gost_28147_89_KeyExchangeInfo(); + + var sourceIndex = 16; + keyExchangeInfo.Ukm = new byte[8]; + Array.Copy(exportedKeyBytes, sourceIndex, keyExchangeInfo.Ukm, 0, 8); + sourceIndex += 8; + + keyExchangeInfo.EncryptedKey = new byte[32]; + Array.Copy(exportedKeyBytes, sourceIndex, keyExchangeInfo.EncryptedKey, 0, 32); + sourceIndex += 32; + + keyExchangeInfo.Mac = new byte[4]; + Array.Copy(exportedKeyBytes, sourceIndex, keyExchangeInfo.Mac, 0, 4); + sourceIndex += 4; + + var encryptionParamSet = new byte[exportedKeyBytes.Length - sourceIndex]; + Array.Copy(exportedKeyBytes, sourceIndex, encryptionParamSet, 0, exportedKeyBytes.Length - sourceIndex); + keyExchangeInfo.EncryptionParamSet = Gost_28147_89_KeyExchangeInfo.DecodeEncryptionParamSet(encryptionParamSet); + + return keyExchangeInfo; + } + + #endregion + + #region Для импорта ключей криптографического провайдера + + public static int ImportCspBlob(byte[] importedKeyBytes, SafeProvHandleImpl providerHandle, SafeKeyHandleImpl publicKeyHandle, out SafeKeyHandleImpl keyExchangeHandle) + { + var dwFlags = MapCspKeyFlags(CspProviderFlags.NoFlags); + var keyExchangeRef = SafeKeyHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptImportKey(providerHandle, importedKeyBytes, (uint)importedKeyBytes.Length, publicKeyHandle, dwFlags, ref keyExchangeRef)) + { + throw CreateWin32Error(); + } + + var keyNumberMask = BitConverter.ToInt32(importedKeyBytes, 4) & 0xE000; + var keyNumber = (keyNumberMask == 0xA000) ? Constants.AT_KEYEXCHANGE : Constants.AT_SIGNATURE; + + keyExchangeHandle = keyExchangeRef; + + return keyNumber; + } + + [SecurityCritical] + public static byte[] EncodePublicBlob(Gost_R3410_KeyExchangeParams publicKeyParameters, int keySize, int signatureAlgId) + { + var encodedKeyParams = publicKeyParameters.EncodeParameters(); + var encodedKeyBlob = new byte[16 + encodedKeyParams.Length + publicKeyParameters.PublicKey.Length]; + encodedKeyBlob[0] = 6; + encodedKeyBlob[1] = 32; + Array.Copy(BitConverter.GetBytes(signatureAlgId), 0, encodedKeyBlob, 4, 4); + Array.Copy(BitConverter.GetBytes(Constants.GR3410_1_MAGIC), 0, encodedKeyBlob, 8, 4); + Array.Copy(BitConverter.GetBytes(keySize), 0, encodedKeyBlob, 12, 4); + Array.Copy(encodedKeyParams, 0, encodedKeyBlob, 16, encodedKeyParams.Length); + Array.Copy(publicKeyParameters.PublicKey, 0, encodedKeyBlob, 16 + encodedKeyParams.Length, publicKeyParameters.PublicKey.Length); + + return encodedKeyBlob; + } + + public static SafeKeyHandleImpl ImportKeyExchange(SafeProvHandleImpl providerHandle, Gost_28147_89_KeyExchangeInfo keyExchangeInfo, SafeKeyHandleImpl keyExchangeHandle) + { + if (keyExchangeInfo == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeInfo)); + } + + var importedKeyBytes = EncodeSimpleBlob(keyExchangeInfo); + + SafeKeyHandleImpl hKeyExchange; + ImportCspBlob(importedKeyBytes, providerHandle, keyExchangeHandle, out hKeyExchange); + + return hKeyExchange; + } + + public static SafeKeyHandleImpl ImportBulkSessionKey(ProviderType providerType, SafeProvHandleImpl providerHandle, byte[] bulkSessionKey, RNGCryptoServiceProvider randomNumberGenerator) + { + if (bulkSessionKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(bulkSessionKey)); + } + + if (randomNumberGenerator == null) + { + throw ExceptionUtility.ArgumentNull(nameof(randomNumberGenerator)); + } + + var hSessionKey = SafeKeyHandleImpl.InvalidHandle; + + if (!CryptoApi.CryptGenKey(providerHandle, Constants.CALG_G28147, 0, ref hSessionKey)) + { + throw CreateWin32Error(); + } + + var keyWrap = new Gost_28147_89_KeyExchangeInfo { EncryptedKey = new byte[32] }; + Array.Copy(bulkSessionKey, keyWrap.EncryptedKey, 32); + SetKeyParameterInt32(hSessionKey, Constants.KP_MODE, Constants.CRYPT_MODE_ECB); + SetKeyParameterInt32(hSessionKey, Constants.KP_ALGID, Constants.CALG_G28147); + SetKeyParameterInt32(hSessionKey, Constants.KP_PADDING, Constants.ZERO_PADDING); + + uint sessionKeySize = 32; + + if (!CryptoApi.CryptEncrypt(hSessionKey, SafeHashHandleImpl.InvalidHandle, true, 0, keyWrap.EncryptedKey, ref sessionKeySize, sessionKeySize)) + { + throw CreateWin32Error(); + } + + SetKeyParameterInt32(hSessionKey, Constants.KP_MODE, Constants.CRYPT_MODE_CFB); + + var hashHandle = CreateHashImit(providerHandle, hSessionKey); + + keyWrap.Ukm = new byte[8]; + randomNumberGenerator.GetBytes(keyWrap.Ukm); + + if (!CryptoApi.CryptSetHashParam(hashHandle, Constants.HP_HASHSTARTVECT, keyWrap.Ukm, 0)) + { + throw CreateWin32Error(); + } + + if (!CryptoApi.CryptHashData(hashHandle, bulkSessionKey, 32, 0)) + { + throw CreateWin32Error(); + } + + keyWrap.Mac = EndHashData(hashHandle); + keyWrap.EncryptionParamSet = GetKeyParameterString(hSessionKey, Constants.KP_CIPHEROID); + + SetKeyExchangeExportAlgId(providerType, hSessionKey, Constants.CALG_SIMPLE_EXPORT); + SetKeyParameterInt32(hSessionKey, Constants.KP_MODE, Constants.CRYPT_MODE_ECB); + SetKeyParameterInt32(hSessionKey, Constants.KP_PADDING, Constants.ZERO_PADDING); + + return ImportKeyExchange(providerHandle, keyWrap, hSessionKey); + } + + private static byte[] EncodeSimpleBlob(Gost_28147_89_KeyExchangeInfo keyExchangeInfo) + { + if (keyExchangeInfo == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyExchangeInfo)); + } + + var encryptionParamSet = Gost_28147_89_KeyExchangeInfo.EncodeEncryptionParamSet(keyExchangeInfo.EncryptionParamSet); + var importedKeyBytes = new byte[encryptionParamSet.Length + 60]; + + var sourceIndex = 0; + importedKeyBytes[sourceIndex] = 1; + sourceIndex++; + + importedKeyBytes[sourceIndex] = 32; + sourceIndex++; + sourceIndex += 2; + + Array.Copy(BitConverter.GetBytes(Constants.CALG_G28147), 0, importedKeyBytes, sourceIndex, 4); + sourceIndex += 4; + + Array.Copy(BitConverter.GetBytes(Constants.G28147_MAGIC), 0, importedKeyBytes, sourceIndex, 4); + sourceIndex += 4; + + Array.Copy(BitConverter.GetBytes(Constants.CALG_G28147), 0, importedKeyBytes, sourceIndex, 4); + sourceIndex += 4; + + Array.Copy(keyExchangeInfo.Ukm, 0, importedKeyBytes, sourceIndex, 8); + sourceIndex += 8; + + Array.Copy(keyExchangeInfo.EncryptedKey, 0, importedKeyBytes, sourceIndex, 32); + sourceIndex += 32; + + Array.Copy(keyExchangeInfo.Mac, 0, importedKeyBytes, sourceIndex, 4); + sourceIndex += 4; + + Array.Copy(encryptionParamSet, 0, importedKeyBytes, sourceIndex, encryptionParamSet.Length); + + return importedKeyBytes; + } + + #endregion + + #region Для работы с цифровой подписью + + public static byte[] SignValue(SafeProvHandleImpl providerHandle, SafeHashHandleImpl hashHandle, int keyNumber, byte[] hashValue) + { + SetHashValue(hashHandle, hashValue); + + uint signatureLength = 0; + + // Вычисление размера подписи + if (!CryptoApi.CryptSignHash(hashHandle, (uint)keyNumber, null, 0, null, ref signatureLength)) + { + throw CreateWin32Error(); + } + + var signatureValue = new byte[signatureLength]; + + // Вычисление значения подписи + if (!CryptoApi.CryptSignHash(hashHandle, (uint)keyNumber, null, 0, signatureValue, ref signatureLength)) + { + throw CreateWin32Error(); + } + + return signatureValue; + } + + public static bool VerifySign(SafeProvHandleImpl providerHandle, SafeHashHandleImpl hashHandle, SafeKeyHandleImpl keyHandle, byte[] hashValue, byte[] signatureValue) + { + SetHashValue(hashHandle, hashValue); + + return CryptoApi.CryptVerifySignature(hashHandle, signatureValue, (uint)signatureValue.Length, keyHandle, null, 0); + } + + private static void SetHashValue(SafeHashHandleImpl hashHandle, byte[] hashValue) + { + uint hashLength = 0; + + if (!CryptoApi.CryptGetHashParam(hashHandle, Constants.HP_HASHVAL, null, ref hashLength, 0)) + { + throw CreateWin32Error(); + } + + if (hashValue.Length != hashLength) + { + throw ExceptionUtility.CryptographicException(Constants.NTE_BAD_HASH); + } + + if (!CryptoApi.CryptSetHashParam(hashHandle, Constants.HP_HASHVAL, hashValue, 0)) + { + throw CreateWin32Error(); + } + } + + #endregion + + public static T DangerousAddRef(this T handle) where T : SafeHandle + { + var success = false; + handle.DangerousAddRef(ref success); + + return handle; + } + + public static void TryDispose(this SafeHandle handle) + { + if ((handle != null) && !handle.IsClosed) + { + handle.Dispose(); + } + } + + private static CryptographicException CreateWin32Error() + { + return ExceptionUtility.CryptographicException(Marshal.GetLastWin32Error()); + } + } +} diff --git a/Hcs.Client/GostCryptography/Native/ISafeHandleProvider.cs b/Hcs.Client/GostCryptography/Native/ISafeHandleProvider.cs new file mode 100644 index 0000000..17d1a5c --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/ISafeHandleProvider.cs @@ -0,0 +1,32 @@ +using System.Runtime.InteropServices; +using System.Security; + +namespace GostCryptography.Native +{ + /// + /// Провайдер дескрипторов криптографического объекта + /// + /// Тип безопасного дескриптора + public interface ISafeHandleProvider where T : SafeHandle + { + /// + /// Возвращает дескриптор объекта + /// + T SafeHandle { [SecurityCritical] get; } + } + + /// + /// Методы расширения для + /// + public static class SafeHandleProviderExtensions + { + /// + /// Возвращает дескриптор объекта + /// + [SecurityCritical] + public static T GetSafeHandle(this ISafeHandleProvider provider) where T : SafeHandle + { + return provider.SafeHandle; + } + } +} diff --git a/Hcs.Client/GostCryptography/Native/SafeHashHandleImpl.cs b/Hcs.Client/GostCryptography/Native/SafeHashHandleImpl.cs new file mode 100644 index 0000000..1b50ccd --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/SafeHashHandleImpl.cs @@ -0,0 +1,31 @@ +using Microsoft.Win32.SafeHandles; +using System; +using System.Security; + +namespace GostCryptography.Native +{ + /// + /// Дескриптор функции хэширования криптографического провайдера + /// + [SecurityCritical] + public class SafeHashHandleImpl : SafeHandleZeroOrMinusOneIsInvalid + { + public static SafeHashHandleImpl InvalidHandle => new SafeHashHandleImpl(IntPtr.Zero); + + public SafeHashHandleImpl() : base(true) + { + } + + public SafeHashHandleImpl(IntPtr handle) : base(true) + { + SetHandle(handle); + } + + [SecurityCritical] + protected override bool ReleaseHandle() + { + CryptoApi.CryptDestroyHash(handle); + return true; + } + } +} diff --git a/Hcs.Client/GostCryptography/Native/SafeKeyHandleImpl.cs b/Hcs.Client/GostCryptography/Native/SafeKeyHandleImpl.cs new file mode 100644 index 0000000..94c0dcb --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/SafeKeyHandleImpl.cs @@ -0,0 +1,36 @@ +using Microsoft.Win32.SafeHandles; +using System; +using System.Security; + +namespace GostCryptography.Native +{ + /// + /// Дескриптор ключа криптографического провайдера + /// + [SecurityCritical] + public sealed class SafeKeyHandleImpl : SafeHandleZeroOrMinusOneIsInvalid + { + public SafeKeyHandleImpl() + : base(true) + { + } + + public SafeKeyHandleImpl(IntPtr handle) + : base(true) + { + SetHandle(handle); + } + + public static SafeKeyHandleImpl InvalidHandle + { + get { return new SafeKeyHandleImpl(IntPtr.Zero); } + } + + [SecurityCritical] + protected override bool ReleaseHandle() + { + CryptoApi.CryptDestroyKey(handle); + return true; + } + } +} diff --git a/Hcs.Client/GostCryptography/Native/SafeProvHandleImpl.cs b/Hcs.Client/GostCryptography/Native/SafeProvHandleImpl.cs new file mode 100644 index 0000000..f042d53 --- /dev/null +++ b/Hcs.Client/GostCryptography/Native/SafeProvHandleImpl.cs @@ -0,0 +1,76 @@ +using Microsoft.Win32.SafeHandles; +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; + +namespace GostCryptography.Native +{ + /// + /// Дескриптор криптографического провайдера + /// + [SecurityCritical] + public sealed class SafeProvHandleImpl : SafeHandleZeroOrMinusOneIsInvalid + { + public static SafeProvHandleImpl InvalidHandle => new SafeProvHandleImpl(IntPtr.Zero); + + public SafeProvHandleImpl() : base(true) + { + } + + public SafeProvHandleImpl(IntPtr handle) : base(true) + { + SetHandle(handle); + } + + public SafeProvHandleImpl(IntPtr handle, bool addref) : base(true) + { + if (!addref) + { + SetHandle(handle); + } + else + { + bool success; + int errorCode; + + // Обеспечивает атомарность блока finally + RuntimeHelpers.PrepareConstrainedRegions(); + + try { } + finally + { + success = CryptoApi.CryptContextAddRef(handle, null, 0); + errorCode = Marshal.GetLastWin32Error(); + + if (success) + { + SetHandle(handle); + } + } + + if (!success) + { + throw ExceptionUtility.CryptographicException(errorCode); + } + } + } + + public bool DeleteOnClose { get; set; } + + [SecurityCritical] + protected override bool ReleaseHandle() + { + if (DeleteOnClose) + { + CryptoApi.CryptSetProvParam2(handle, Constants.PP_DELETE_KEYSET, null, 0); + } + else + { + CryptoApi.CryptReleaseContext(handle, 0); + } + + return true; + } + } +} diff --git a/Hcs.Client/GostCryptography/Pkcs/GostSignedCms.cs b/Hcs.Client/GostCryptography/Pkcs/GostSignedCms.cs new file mode 100644 index 0000000..628c564 --- /dev/null +++ b/Hcs.Client/GostCryptography/Pkcs/GostSignedCms.cs @@ -0,0 +1,176 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography.Pkcs; +using System.Security.Cryptography.X509Certificates; + +namespace GostCryptography.Pkcs +{ + /// + /// Реализует методы для работы с сообщениями CMS (Cryptographic Message Syntax) / PKCS #7 (Public-Key Cryptography Standard #7) + /// + /// + /// CMS (Cryptographic Message Syntax) или PKCS #7 (Public-Key Cryptography Standard #7) - это стандарт, поддерживаемый RSA Laboratories, + /// который описываемый синтаксис криптографических сообщений. Синтаксис CMS описывает способы формирования криптографических сообщений, + /// в результате чего сообщение становится полностью самодостаточным для его открытия и выполнения всех необходимых операций. С этой целью + /// в CMS-сообщении размещается информация об исходном сообщении, алгоритмах хэширования и подписи, параметрах криптоалгоритмов, времени + /// подписи, сертификат ключа электронной подписи, цепочка сертификации и т.д. Большинство из перечисленных атрибутов CMS-сообщения являются + /// опциональными, но их обязательность может определяться прикладной системой. Отдельно следует отметить, что CMS/PKCS#7 позволяет ставить + /// несколько подписей под одним документом, сохраняя всю необходимую информацию в сообщении. + /// + public sealed class GostSignedCms + { + static GostSignedCms() + { + GostCryptoConfig.Initialize(); + } + + /// + public GostSignedCms() + { + _signedCms = new SignedCms(); + _signerIdentifierType = InitSubjectIdentifierType(SubjectIdentifierType.IssuerAndSerialNumber); + } + + /// + public GostSignedCms(SubjectIdentifierType signerIdentifierType) + { + _signedCms = new SignedCms(signerIdentifierType); + _signerIdentifierType = InitSubjectIdentifierType(signerIdentifierType); + } + + /// + public GostSignedCms(ContentInfo contentInfo) + { + _signedCms = new SignedCms(contentInfo); + _signerIdentifierType = InitSubjectIdentifierType(SubjectIdentifierType.IssuerAndSerialNumber); + } + + /// + public GostSignedCms(SubjectIdentifierType signerIdentifierType, ContentInfo contentInfo) + { + _signedCms = new SignedCms(signerIdentifierType, contentInfo); + _signerIdentifierType = InitSubjectIdentifierType(signerIdentifierType); + } + + /// + public GostSignedCms(ContentInfo contentInfo, bool detached) + { + _signedCms = new SignedCms(contentInfo, detached); + _signerIdentifierType = InitSubjectIdentifierType(SubjectIdentifierType.IssuerAndSerialNumber); + } + + /// + public GostSignedCms(SubjectIdentifierType signerIdentifierType, ContentInfo contentInfo, bool detached) + { + _signedCms = new SignedCms(signerIdentifierType, contentInfo, detached); + _signerIdentifierType = InitSubjectIdentifierType(signerIdentifierType); + } + + private readonly SignedCms _signedCms; + private readonly SubjectIdentifierType _signerIdentifierType; + + /// + public int Version => _signedCms.Version; + + /// + public ContentInfo ContentInfo => _signedCms.ContentInfo; + + /// + public bool Detached => _signedCms.Detached; + + /// + public X509Certificate2Collection Certificates => _signedCms.Certificates; + + /// + public SignerInfoCollection SignerInfos => _signedCms.SignerInfos; + + /// + public byte[] Encode() + { + return _signedCms.Encode(); + } + + /// + public void Decode(byte[] encodedMessage) + { + _signedCms.Decode(encodedMessage); + } + + /// + public void ComputeSignature() + { + ComputeSignature(new CmsSigner(_signerIdentifierType), true); + } + + /// + public void ComputeSignature(CmsSigner signer) + { + ComputeSignature(signer, true); + } + + /// + public void ComputeSignature(CmsSigner signer, bool silent) + { + signer = InitCmsSigner(signer); + + _signedCms.ComputeSignature(signer, silent); + } + + /// + public void RemoveSignature(int index) + { + _signedCms.RemoveSignature(index); + } + + /// + public void RemoveSignature(SignerInfo signerInfo) + { + _signedCms.RemoveSignature(signerInfo); + } + + /// + public void CheckSignature(bool verifySignatureOnly) + { + _signedCms.CheckSignature(verifySignatureOnly); + } + + /// + public void CheckSignature(X509Certificate2Collection extraStore, bool verifySignatureOnly) + { + _signedCms.CheckSignature(extraStore, verifySignatureOnly); + } + + /// + public void CheckHash() + { + _signedCms.CheckHash(); + } + + private static SubjectIdentifierType InitSubjectIdentifierType(SubjectIdentifierType signerIdentifierType) + { + if (signerIdentifierType != SubjectIdentifierType.SubjectKeyIdentifier + && signerIdentifierType != SubjectIdentifierType.IssuerAndSerialNumber + && signerIdentifierType != SubjectIdentifierType.NoSignature) + { + return SubjectIdentifierType.IssuerAndSerialNumber; + } + + return signerIdentifierType; + } + + [SecuritySafeCritical] + private static CmsSigner InitCmsSigner(CmsSigner cmsSigner) + { + var certificate = cmsSigner.Certificate; + + var hashAlgorithm = certificate?.GetHashAlgorithm(); + + if (hashAlgorithm != null) + { + cmsSigner.DigestAlgorithm = hashAlgorithm; + } + + return cmsSigner; + } + } +} diff --git a/Hcs.Client/GostCryptography/Properties/Resources.Designer.cs b/Hcs.Client/GostCryptography/Properties/Resources.Designer.cs new file mode 100644 index 0000000..bce1ae1 --- /dev/null +++ b/Hcs.Client/GostCryptography/Properties/Resources.Designer.cs @@ -0,0 +1,864 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GostCryptography.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GostCryptography.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cryptographic service provider (CSP) could not be found for this algorithm.. + /// + internal static string AlgorithmNotAvailable { + get { + return ResourceManager.GetString("AlgorithmNotAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 element '{0}' with value '{1}' violates defined constraint.. + /// + internal static string Asn1ConsVioException { + get { + return ResourceManager.GetString("Asn1ConsVioException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encoded byte array contains algorithm identifier with unknown OID '{0}'.. + /// + internal static string Asn1DecodeAlg { + get { + return ResourceManager.GetString("Asn1DecodeAlg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encoded byte array does not contains algorithm parameters.. + /// + internal static string Asn1DecodeAlgorithmParameters { + get { + return ResourceManager.GetString("Asn1DecodeAlgorithmParameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encoded byte array contains invalid structure '{0}'.. + /// + internal static string Asn1DecodeError { + get { + return ResourceManager.GetString("Asn1DecodeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encode '{0}' error.. + /// + internal static string Asn1EncodeError { + get { + return ResourceManager.GetString("Asn1EncodeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encode '{0}' error. Source value: '{1}'.. + /// + internal static string Asn1EncodeErrorWithValue { + get { + return ResourceManager.GetString("Asn1EncodeErrorWithValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error. Unexpected end-of-buffer encountered. Offset {0}.. + /// + internal static string Asn1EndOfBufferException { + get { + return ResourceManager.GetString("Asn1EndOfBufferException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 fraction doesn't supported for UTCTime.. + /// + internal static string Asn1FractionNotSupportedForUtcTime { + get { + return ResourceManager.GetString("Asn1FractionNotSupportedForUtcTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 hours expected.. + /// + internal static string Asn1HoursExpected { + get { + return ResourceManager.GetString("Asn1HoursExpected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 illegal character '{0}'.. + /// + internal static string Asn1IllegalCharacter { + get { + return ResourceManager.GetString("Asn1IllegalCharacter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 illegal digit in BigInteger.. + /// + internal static string Asn1IllegalDigit { + get { + return ResourceManager.GetString("Asn1IllegalDigit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 illegal embedded minus sign in BigInteger.. + /// + internal static string Asn1IllegalEmbeddedMinusSign { + get { + return ResourceManager.GetString("Asn1IllegalEmbeddedMinusSign", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 integer value is too large.. + /// + internal static string Asn1IntegerValueIsTooLarge { + get { + return ResourceManager.GetString("Asn1IntegerValueIsTooLarge", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid century value: {0}.. + /// + internal static string Asn1InvalidCenturyValue { + get { + return ResourceManager.GetString("Asn1InvalidCenturyValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 Object assigned to value not in CHOICE.. + /// + internal static string Asn1InvalidChoiceOptionException { + get { + return ResourceManager.GetString("Asn1InvalidChoiceOptionException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error. Element with tag '{0}' not in CHOICE. Offset: {1}.. + /// + internal static string Asn1InvalidChoiceOptionTagException { + get { + return ResourceManager.GetString("Asn1InvalidChoiceOptionTagException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid date format.. + /// + internal static string Asn1InvalidDateFormat { + get { + return ResourceManager.GetString("Asn1InvalidDateFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid day value: {0}.. + /// + internal static string Asn1InvalidDayValue { + get { + return ResourceManager.GetString("Asn1InvalidDayValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid day value: {0} for month {1} and year {2}.. + /// + internal static string Asn1InvalidDayValueForMonthAndYear { + get { + return ResourceManager.GetString("Asn1InvalidDayValueForMonthAndYear", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid decimal mark.. + /// + internal static string Asn1InvalidDecimalMark { + get { + return ResourceManager.GetString("Asn1InvalidDecimalMark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid DiffHour.. + /// + internal static string Asn1InvalidDiffHour { + get { + return ResourceManager.GetString("Asn1InvalidDiffHour", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid DiffHour value: {0}.. + /// + internal static string Asn1InvalidDiffHourValue { + get { + return ResourceManager.GetString("Asn1InvalidDiffHourValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid DiffMinute.. + /// + internal static string Asn1InvalidDiffMinute { + get { + return ResourceManager.GetString("Asn1InvalidDiffMinute", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid DiffMinute value: {0}.. + /// + internal static string Asn1InvalidDiffMinuteValue { + get { + return ResourceManager.GetString("Asn1InvalidDiffMinuteValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 encoded data length must be a multiple of four.. + /// + internal static string Asn1InvalidEncodedDataLength { + get { + return ResourceManager.GetString("Asn1InvalidEncodedDataLength", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid format for BigInteger value.. + /// + internal static string Asn1InvalidFormatForBigIntegerValue { + get { + return ResourceManager.GetString("Asn1InvalidFormatForBigIntegerValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid format of bit string: initial octet is invalid ({0}).. + /// + internal static string Asn1InvalidFormatOfBitString { + get { + return ResourceManager.GetString("Asn1InvalidFormatOfBitString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error. ASN.1 invalid format of constructed value. Offset: {0}.. + /// + internal static string Asn1InvalidFormatOfConstructedValue { + get { + return ResourceManager.GetString("Asn1InvalidFormatOfConstructedValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid hour value: {0}.. + /// + internal static string Asn1InvalidHourValue { + get { + return ResourceManager.GetString("Asn1InvalidHourValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error: Invalid length value.. + /// + internal static string Asn1InvalidLengthException { + get { + return ResourceManager.GetString("Asn1InvalidLengthException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid minute value: {0}.. + /// + internal static string Asn1InvalidMinuteValue { + get { + return ResourceManager.GetString("Asn1InvalidMinuteValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid month value: {0}.. + /// + internal static string Asn1InvalidMonthValue { + get { + return ResourceManager.GetString("Asn1InvalidMonthValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid month value: {0} for day {1} and year {2}.. + /// + internal static string Asn1InvalidMonthValueForDayAndYear { + get { + return ResourceManager.GetString("Asn1InvalidMonthValueForDayAndYear", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid number format.. + /// + internal static string Asn1InvalidNumberFormat { + get { + return ResourceManager.GetString("Asn1InvalidNumberFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid object identifier value.. + /// + internal static string Asn1InvalidObjectIdException { + get { + return ResourceManager.GetString("Asn1InvalidObjectIdException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid second value: {0}.. + /// + internal static string Asn1InvalidSecondValue { + get { + return ResourceManager.GetString("Asn1InvalidSecondValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid tag value: too big.. + /// + internal static string Asn1InvalidTagValue { + get { + return ResourceManager.GetString("Asn1InvalidTagValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid year value: {0}.. + /// + internal static string Asn1InvalidYearValue { + get { + return ResourceManager.GetString("Asn1InvalidYearValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid year value: {0} for day {1} and month {2}.. + /// + internal static string Asn1InvalidYearValueForDayAndMonth { + get { + return ResourceManager.GetString("Asn1InvalidYearValueForDayAndMonth", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 minutes expected.. + /// + internal static string Asn1MinutesExpected { + get { + return ResourceManager.GetString("Asn1MinutesExpected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error. SEQUENCE or SET is missing a required element. Offset: {0}.. + /// + internal static string Asn1MissingRequiredException { + get { + return ResourceManager.GetString("Asn1MissingRequiredException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 read output stream not supported.. + /// + internal static string Asn1ReadOutputStreamNotSupported { + get { + return ResourceManager.GetString("Asn1ReadOutputStreamNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 elements in SEQUENCE not in correct order.. + /// + internal static string Asn1SeqOrderException { + get { + return ResourceManager.GetString("Asn1SeqOrderException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 table constraint: parameters decode failed.. + /// + internal static string Asn1TableConstraint { + get { + return ResourceManager.GetString("Asn1TableConstraint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 decode error. Tag match failed: expected '{0}', parsed '{1}'. Offset {2}.. + /// + internal static string Asn1TagMatchFailedException { + get { + return ResourceManager.GetString("Asn1TagMatchFailedException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 time string could not be generated.. + /// + internal static string Asn1TimeStringCouldNotBeGenerated { + get { + return ResourceManager.GetString("Asn1TimeStringCouldNotBeGenerated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 too big integer value (length is {0}).. + /// + internal static string Asn1TooBigIntegerValue { + get { + return ResourceManager.GetString("Asn1TooBigIntegerValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 unexpected '.' or ','.. + /// + internal static string Asn1UnexpectedSymbol { + get { + return ResourceManager.GetString("Asn1UnexpectedSymbol", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 unexpected values at end of string.. + /// + internal static string Asn1UnexpectedValuesAtEndOfString { + get { + return ResourceManager.GetString("Asn1UnexpectedValuesAtEndOfString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 unexpected zone offset in DER/CER/PER time string.. + /// + internal static string Asn1UnexpectedZoneOffset { + get { + return ResourceManager.GetString("Asn1UnexpectedZoneOffset", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 value parse failed. String: '{0}'. Offset: {1}.. + /// + internal static string Asn1ValueParseException { + get { + return ResourceManager.GetString("Asn1ValueParseException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 zero length BigInteger.. + /// + internal static string Asn1ZeroLengthBigInteger { + get { + return ResourceManager.GetString("Asn1ZeroLengthBigInteger", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cipher Text Steaming mode (CTS) is not supported by this implementation.. + /// + internal static string CipherTextSteamingNotSupported { + get { + return ResourceManager.GetString("CipherTextSteamingNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Length of the data to decrypt is invalid.. + /// + internal static string DecryptInvalidDataSize { + get { + return ResourceManager.GetString("DecryptInvalidDataSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Length of the data to encrypt is invalid.. + /// + internal static string EncryptInvalidDataSize { + get { + return ResourceManager.GetString("EncryptInvalidDataSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cryptography operation is not supported on ephemeral key.. + /// + internal static string EphemKeyOperationNotSupported { + get { + return ResourceManager.GetString("EphemKeyOperationNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk session key import from CSP is not supported. Use safe method CreateDecryptor() with DecodePrivateKey().. + /// + internal static string Gost28147UnsafeCreateDecryptorNotSupported { + get { + return ResourceManager.GetString("Gost28147UnsafeCreateDecryptorNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk session key import from CSP is not supported. Use safe method CreateEncryptor() with EncodePrivateKey().. + /// + internal static string Gost28147UnsafeCreateEncryptor { + get { + return ResourceManager.GetString("Gost28147UnsafeCreateEncryptor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Feedback size for the cipher feedback mode (CFB) must be 8 bits.. + /// + internal static string IncorrectFeedbackSize { + get { + return ResourceManager.GetString("IncorrectFeedbackSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value of CspProviderFlags is invalid.. + /// + internal static string InvalidCspProviderFlags { + get { + return ResourceManager.GetString("InvalidCspProviderFlags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.. + /// + internal static string InvalidDataOffset { + get { + return ResourceManager.GetString("InvalidDataOffset", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ASN.1 invalid Diff value: {0}.. + /// + internal static string InvalidDiffValue { + get { + return ResourceManager.GetString("InvalidDiffValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Input string does not contain a valid encoding of the '{0}' parameter.. + /// + internal static string InvalidFromXmlString { + get { + return ResourceManager.GetString("InvalidFromXmlString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid hash algorithm.. + /// + internal static string InvalidHashAlgorithm { + get { + return ResourceManager.GetString("InvalidHashAlgorithm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hash size must be {0} bytes.. + /// + internal static string InvalidHashSize { + get { + return ResourceManager.GetString("InvalidHashSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Specified initialization vector (IV) does not match the block size for this algorithm.. + /// + internal static string InvalidIvSize { + get { + return ResourceManager.GetString("InvalidIvSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Specified padding mode is not valid for this algorithm.. + /// + internal static string InvalidPaddingMode { + get { + return ResourceManager.GetString("InvalidPaddingMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CSP return invalid string.. + /// + internal static string InvalidString { + get { + return ResourceManager.GetString("InvalidString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified cryptographic service provider (CSP) does not support this key algorithm.. + /// + internal static string KeyAlgorithmNotSupported { + get { + return ResourceManager.GetString("KeyAlgorithmNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Object contains only the public half of a key pair. A private key must also be provided.. + /// + internal static string NoPrivateKey { + get { + return ResourceManager.GetString("NoPrivateKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GOST R 34.10-2001 Cryptographic Service Provider is not installed.. + /// + internal static string Provider_2001_IsNotInstalled { + get { + return ResourceManager.GetString("Provider_2001_IsNotInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GOST R 34.10-2012/1024 Cryptographic Service Provider is not installed.. + /// + internal static string Provider_2012_1024_IsNotInstalled { + get { + return ResourceManager.GetString("Provider_2012_1024_IsNotInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GOST R 34.10-2012/512 Cryptographic Service Provider is not installed.. + /// + internal static string Provider_2012_512_IsNotInstalled { + get { + return ResourceManager.GetString("Provider_2012_512_IsNotInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Required GOST 28147 key handle.. + /// + internal static string RequiredGost28147 { + get { + return ResourceManager.GetString("RequiredGost28147", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GOST R 34.10 requires GOST R 34.11 hash.. + /// + internal static string RequiredGost3411 { + get { + return ResourceManager.GetString("RequiredGost3411", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hash algorithm must be GOST R 34.11, GOST R 34.11 HMAC or GOST R 34.11 Imit.. + /// + internal static string RequiredGostHash { + get { + return ResourceManager.GetString("RequiredGostHash", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parameter must support GOST R 34.10 algorithm.. + /// + internal static string ShouldSupportGost3410 { + get { + return ResourceManager.GetString("ShouldSupportGost3410", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk session key export from CSP is not supported.. + /// + internal static string SymmetryExportBulkKeyNotSupported { + get { + return ResourceManager.GetString("SymmetryExportBulkKeyNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk session key import from CSP is not supported.. + /// + internal static string SymmetryImportBulkKeyNotSupported { + get { + return ResourceManager.GetString("SymmetryImportBulkKeyNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk private key blob export is not supported.. + /// + internal static string UserExportBulkBlob { + get { + return ResourceManager.GetString("UserExportBulkBlob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk user key export from CSP is not supported.. + /// + internal static string UserExportBulkKeyNotSupported { + get { + return ResourceManager.GetString("UserExportBulkKeyNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk private key blob import is not supported.. + /// + internal static string UserImportBulkBlob { + get { + return ResourceManager.GetString("UserImportBulkBlob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bulk user key import to CSP is not supported.. + /// + internal static string UserImportBulkKeyNotSupported { + get { + return ResourceManager.GetString("UserImportBulkKeyNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The current session is not interactive.. + /// + internal static string UserInteractiveNotSupported { + get { + return ResourceManager.GetString("UserInteractiveNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find private member '{0}'.. + /// + internal static string XmlCannotFindPrivateMember { + get { + return ResourceManager.GetString("XmlCannotFindPrivateMember", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A KeyInfo element is required to check the signature.. + /// + internal static string XmlKeyInfoRequired { + get { + return ResourceManager.GetString("XmlKeyInfoRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Symmetric algorithm is not specified.. + /// + internal static string XmlMissingAlgorithm { + get { + return ResourceManager.GetString("XmlMissingAlgorithm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to retrieve the decryption key.. + /// + internal static string XmlMissingDecryptionKey { + get { + return ResourceManager.GetString("XmlMissingDecryptionKey", resourceCulture); + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Properties/Resources.resx b/Hcs.Client/GostCryptography/Properties/Resources.resx new file mode 100644 index 0000000..1193b13 --- /dev/null +++ b/Hcs.Client/GostCryptography/Properties/Resources.resx @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Value of CspProviderFlags is invalid. + + + Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. + + + ASN.1 encoded byte array contains invalid structure '{0}'. + + + ASN.1 encoded byte array contains algorithm identifier with unknown OID '{0}'. + + + ASN.1 encoded byte array does not contains algorithm parameters. + + + ASN.1 encode '{0}' error. + + + ASN.1 encode '{0}' error. Source value: '{1}'. + + + Parameter must support GOST R 34.10 algorithm. + + + Cryptographic service provider (CSP) could not be found for this algorithm. + + + Feedback size for the cipher feedback mode (CFB) must be 8 bits. + + + Cipher Text Steaming mode (CTS) is not supported by this implementation. + + + Required GOST 28147 key handle. + + + CSP return invalid string. + + + Object contains only the public half of a key pair. A private key must also be provided. + + + The specified cryptographic service provider (CSP) does not support this key algorithm. + + + Cryptography operation is not supported on ephemeral key. + + + GOST R 34.10 requires GOST R 34.11 hash. + + + Hash algorithm must be GOST R 34.11, GOST R 34.11 HMAC or GOST R 34.11 Imit. + + + Input string does not contain a valid encoding of the '{0}' parameter. + + + Hash size must be {0} bytes. + + + Specified initialization vector (IV) does not match the block size for this algorithm. + + + Specified padding mode is not valid for this algorithm. + + + The current session is not interactive. + + + Length of the data to decrypt is invalid. + + + Length of the data to encrypt is invalid. + + + Bulk session key export from CSP is not supported. + + + Bulk session key import from CSP is not supported. + + + Bulk private key blob export is not supported. + + + Bulk user key export from CSP is not supported. + + + Bulk private key blob import is not supported. + + + Bulk user key import to CSP is not supported. + + + Unable to retrieve the decryption key. + + + Bulk session key import from CSP is not supported. Use safe method CreateDecryptor() with DecodePrivateKey(). + + + Bulk session key import from CSP is not supported. Use safe method CreateEncryptor() with EncodePrivateKey(). + + + Invalid hash algorithm. + + + ASN.1 illegal character '{0}'. + + + ASN.1 invalid date format. + + + ASN.1 encoded data length must be a multiple of four. + + + ASN.1 invalid number format. + + + ASN.1 decode error. Unexpected end-of-buffer encountered. Offset {0}. + + + ASN.1 decode error: Invalid length value. + + + ASN.1 element '{0}' with value '{1}' violates defined constraint. + + + ASN.1 fraction doesn't supported for UTCTime. + + + ASN.1 hours expected. + + + ASN.1 integer value is too large. + + + ASN.1 invalid century value: {0}. + + + ASN.1 Object assigned to value not in CHOICE. + + + ASN.1 decode error. Element with tag '{0}' not in CHOICE. Offset: {1}. + + + ASN.1 invalid day value: {0}. + + + ASN.1 invalid day value: {0} for month {1} and year {2}. + + + ASN.1 invalid decimal mark. + + + ASN.1 invalid DiffHour. + + + ASN.1 invalid DiffHour value: {0}. + + + ASN.1 invalid DiffMinute. + + + ASN.1 invalid DiffMinute value: {0}. + + + ASN.1 invalid format of bit string: initial octet is invalid ({0}). + + + ASN.1 decode error. ASN.1 invalid format of constructed value. Offset: {0}. + + + ASN.1 invalid hour value: {0}. + + + ASN.1 invalid minute value: {0}. + + + ASN.1 invalid month value: {0}. + + + ASN.1 invalid month value: {0} for day {1} and year {2}. + + + ASN.1 invalid object identifier value. + + + ASN.1 invalid second value: {0}. + + + ASN.1 invalid tag value: too big. + + + ASN.1 invalid year value: {0}. + + + ASN.1 invalid year value: {0} for day {1} and month {2}. + + + ASN.1 minutes expected. + + + ASN.1 decode error. SEQUENCE or SET is missing a required element. Offset: {0}. + + + ASN.1 elements in SEQUENCE not in correct order. + + + ASN.1 table constraint: parameters decode failed. + + + ASN.1 decode error. Tag match failed: expected '{0}', parsed '{1}'. Offset {2}. + + + ASN.1 time string could not be generated. + + + ASN.1 too big integer value (length is {0}). + + + ASN.1 unexpected '.' or ','. + + + ASN.1 unexpected values at end of string. + + + ASN.1 unexpected zone offset in DER/CER/PER time string. + + + ASN.1 value parse failed. String: '{0}'. Offset: {1}. + + + ASN.1 invalid Diff value: {0}. + + + ASN.1 illegal digit in BigInteger. + + + ASN.1 illegal embedded minus sign in BigInteger. + + + ASN.1 invalid format for BigInteger value. + + + ASN.1 read output stream not supported. + + + ASN.1 zero length BigInteger. + + + Cannot find private member '{0}'. + + + A KeyInfo element is required to check the signature. + + + Symmetric algorithm is not specified. + + + GOST R 34.10-2001 Cryptographic Service Provider is not installed. + + + GOST R 34.10-2012/1024 Cryptographic Service Provider is not installed. + + + GOST R 34.10-2012/512 Cryptographic Service Provider is not installed. + + \ No newline at end of file diff --git a/Hcs.Client/GostCryptography/README.md b/Hcs.Client/GostCryptography/README.md new file mode 100644 index 0000000..c73c940 --- /dev/null +++ b/Hcs.Client/GostCryptography/README.md @@ -0,0 +1,45 @@ +# GostCryptography + +.NET driver for [ViPNet CSP](http://www.infotecs.ru/) and [CryptoPro CSP](http://www.cryptopro.ru/). +Implements crypto algorithms based on Russian national cryptographic standards `GOST 28147-89`, `GOST R 34.10` +and `GOST R 34.11`. Also provides abstractions to sign and verify `CMS/PKCS #7` messages, sign, verify and +encrypt XML documents. + +- [NuGet Package](https://www.nuget.org/packages/GostCryptography) +- [Examples](Source/GostCryptography.Tests) +- [License](LICENSE) + +## Implemented Algorithms + +- [Symmetric algorithm based on GOST 28147-89](Source/GostCryptography/Gost_28147_89/Gost_28147_89_SymmetricAlgorithm.cs) +- [Hash-based Message Authentication Code (HMAC) based on GOST 28147-89](Source/GostCryptography/Gost_28147_89/Gost_28147_89_ImitHashAlgorithm.cs) + +- [Hash algorithm based on GOST R 34.11-94](Source/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs), [2012/256](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HashAlgorithm.cs), [2012/512](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HashAlgorithm.cs) +- [Hash-based Message Authentication Code (HMAC) based on GOST R 34.11-94](Source/GostCryptography/Gost_R3411/Gost_R3411_94_HMAC.cs), [2012/256](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_256_HMAC.cs), [2012/512](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_512_HMAC.cs) +- [Pseudorandom Function (PRF) based on GOST R 34.11-94](Source/GostCryptography/Gost_R3411/Gost_R3411_94_PRF.cs), [2012/256](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_256_PRF.cs), [2012/512](Source/GostCryptography/Gost_R3411/Gost_R3411_2012_512_PRF.cs) + +- [Asymmetric algorithm based on GOST R 34.10-2001](Source/GostCryptography/Gost_R3410/Gost_R3410_2001_AsymmetricAlgorithm.cs), [2012/256](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_256_AsymmetricAlgorithm.cs), [2012/512](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_512_AsymmetricAlgorithm.cs) +- [Asymmetric algorithm with an ephemeral key based on GOST R 34.10-2001](Source/GostCryptography/Gost_R3410/Gost_R3410_2001_EphemeralAsymmetricAlgorithm.cs), [2012/256](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_256_EphemeralAsymmetricAlgorithm.cs), [2012/512](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_512_EphemeralAsymmetricAlgorithm.cs) + +- [Asymmetric key exchange formatter based on GOST R 34.10-2001](Source/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeFormatter.cs), [2012/256](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeFormatter.cs), [2012/512](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeFormatter.cs) +- [Asymmetric key exchange deformatter based on GOST R 34.10-2001](Source/GostCryptography/Gost_R3410/Gost_R3410_2001_KeyExchangeDeformatter.cs), [2012/256](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_256_KeyExchangeDeformatter.cs), [2012/512](Source/GostCryptography/Gost_R3410/Gost_R3410_2012_512_KeyExchangeDeformatter.cs) + +- [Asymmetric signature formatter based on GOST R 34.10-2001, 2012/256, 2012/512](Source/GostCryptography/Base/GostSignatureFormatter.cs) +- [Asymmetric signature deformatter based on GOST R 34.10-2001, 2012/256, 2012/512](Source/GostCryptography/Base/GostSignatureDeformatter.cs) + +- [XML encryption based on GOST R 34.10-2001, 2012/256, 2012/512](Source/GostCryptography/Xml/GostEncryptedXml.cs) +- [XML signing based on XML-DSig and GOST R 34.10-2001, 2012/256, 2012/512](Source/GostCryptography/Xml/GostSignedXml.cs) +- [Signing and verifying of CMS/PKCS #7 messages based on GOST R 34.10-2001, 2012/256, 2012/512](Source/GostCryptography/Pkcs/GostSignedCms.cs) + +## Tested On + +- Windows 10 x64, CryptoPro CSP 4.0.9963 +- Windows 10 x64, ViPNet CSP 4.2.8.51670 + +## Build instructions + +To build package run in repository root: + +``` +dotnet build --configuration Release +``` diff --git a/Hcs.Client/GostCryptography/Reflection/CryptographyUtils.cs b/Hcs.Client/GostCryptography/Reflection/CryptographyUtils.cs new file mode 100644 index 0000000..4b23c28 --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/CryptographyUtils.cs @@ -0,0 +1,57 @@ +using System; +using System.Reflection; +using System.Security.Cryptography; + +namespace GostCryptography.Reflection +{ + static class CryptographyUtils + { + private static readonly object ObjToHashAlgorithmMethodSync = new object(); + private static volatile MethodInfo _objToHashAlgorithmMethod; + + public static HashAlgorithm ObjToHashAlgorithm(object hashAlg) + { + if (hashAlg == null) + { + throw ExceptionUtility.ArgumentNull(nameof(hashAlg)); + } + + HashAlgorithm hashAlgorithm = null; + + if (_objToHashAlgorithmMethod == null) + { + lock (ObjToHashAlgorithmMethodSync) + { + if (_objToHashAlgorithmMethod == null) + { + var utilsType = Type.GetType("System.Security.Cryptography.Utils"); + + if (utilsType != null) + { + _objToHashAlgorithmMethod = utilsType.GetMethod("ObjToHashAlgorithm", BindingFlags.Static | BindingFlags.NonPublic, null, new[] { typeof(object) }, null); + } + } + } + } + + if (_objToHashAlgorithmMethod != null) + { + try + { + hashAlgorithm = _objToHashAlgorithmMethod.Invoke(null, new[] { hashAlg }) as HashAlgorithm; + } + catch (TargetInvocationException exception) + { + if (exception.InnerException != null) + { + throw exception.InnerException; + } + + throw; + } + } + + return hashAlgorithm; + } + } +} diff --git a/Hcs.Client/GostCryptography/Reflection/CryptographyXmlUtils.cs b/Hcs.Client/GostCryptography/Reflection/CryptographyXmlUtils.cs new file mode 100644 index 0000000..343338c --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/CryptographyXmlUtils.cs @@ -0,0 +1,136 @@ +using GostCryptography.Properties; +using System; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; + +namespace GostCryptography.Reflection +{ + static class CryptographyXmlUtils + { + public static X509Certificate2Collection BuildBagOfCertsVerification(KeyInfoX509Data keyInfoX509Data) + { + return BuildBagOfCerts(keyInfoX509Data, 0); + } + + public static X509Certificate2Collection BuildBagOfCertsDecryption(KeyInfoX509Data keyInfoX509Data) + { + return BuildBagOfCerts(keyInfoX509Data, 1); + } + + private static X509Certificate2Collection BuildBagOfCerts(KeyInfoX509Data keyInfoX509Data, int certUsageType) + { + try + { + return (X509Certificate2Collection)BuildBagOfCertsMethod.Invoke(null, new object[] { keyInfoX509Data, certUsageType }); + } + catch (TargetInvocationException exception) + { + if (exception.InnerException != null) + { + throw exception.InnerException; + } + + throw; + } + } + + private static volatile MethodInfo _buildBagOfCertsMethod; + private static readonly object BuildBagOfCertsMethodSync = new object(); + + private static MethodInfo BuildBagOfCertsMethod + { + get + { + if (_buildBagOfCertsMethod == null) + { + lock (BuildBagOfCertsMethodSync) + { + if (_buildBagOfCertsMethod == null) + { + _buildBagOfCertsMethod = CryptographyXmlUtilsType.GetMethod("BuildBagOfCerts", BindingFlags.Static | BindingFlags.NonPublic); + } + } + } + + if (_buildBagOfCertsMethod == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, $"{CryptographyXmlUtilsType.FullName}.BuildBagOfCerts()"); + } + + return _buildBagOfCertsMethod; + } + } + + public static string ExtractIdFromLocalUri(string uri) + { + try + { + return (string)ExtractIdFromLocalUriMethod.Invoke(null, new object[] { uri }); + } + catch (TargetInvocationException exception) + { + if (exception.InnerException != null) + { + throw exception.InnerException; + } + + throw; + } + } + + private static volatile MethodInfo _extractIdFromLocalUriMethod; + private static readonly object ExtractIdFromLocalUriMethodSync = new object(); + + private static MethodInfo ExtractIdFromLocalUriMethod + { + get + { + if (_extractIdFromLocalUriMethod == null) + { + lock (ExtractIdFromLocalUriMethodSync) + { + if (_extractIdFromLocalUriMethod == null) + { + _extractIdFromLocalUriMethod = CryptographyXmlUtilsType.GetMethod("ExtractIdFromLocalUri", BindingFlags.Static | BindingFlags.NonPublic); + } + } + } + + if (_extractIdFromLocalUriMethod == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, $"{CryptographyXmlUtilsType.FullName}.ExtractIdFromLocalUri()"); + } + + return _extractIdFromLocalUriMethod; + } + } + + private static volatile Type _cryptographyXmlUtilsType; + private static readonly object CryptographyXmlUtilsTypeSync = new object(); + + private static Type CryptographyXmlUtilsType + { + get + { + if (_cryptographyXmlUtilsType == null) + { + lock (CryptographyXmlUtilsTypeSync) + { + if (_cryptographyXmlUtilsType == null) + { + _cryptographyXmlUtilsType = typeof(SignedXml).Assembly.GetType("System.Security.Cryptography.Xml.Utils"); + } + } + } + + if (_cryptographyXmlUtilsType == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "System.Security.Cryptography.Xml.Utils"); + } + + return _cryptographyXmlUtilsType; + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Reflection/CspKeyContainerInfoHelper.cs b/Hcs.Client/GostCryptography/Reflection/CspKeyContainerInfoHelper.cs new file mode 100644 index 0000000..9593347 --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/CspKeyContainerInfoHelper.cs @@ -0,0 +1,78 @@ +using System.Reflection; +using System.Security.Cryptography; + +namespace GostCryptography.Reflection +{ + static class CspKeyContainerInfoHelper + { + private static readonly object CspKeyContainerInfoConstructorSync = new object(); + private static volatile ConstructorInfo _cspKeyContainerInfoConstructor; + + public static CspKeyContainerInfo CreateCspKeyContainerInfo(CspParameters parameters, bool randomKeyContainer) + { + CspKeyContainerInfo result = null; + + if (_cspKeyContainerInfoConstructor == null) + { + lock (CspKeyContainerInfoConstructorSync) + { + if (_cspKeyContainerInfoConstructor == null) + { + _cspKeyContainerInfoConstructor = typeof(CspKeyContainerInfo).GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(CspParameters), typeof(bool) }, null); + } + } + } + + if (_cspKeyContainerInfoConstructor != null) + { + try + { + result = (CspKeyContainerInfo)_cspKeyContainerInfoConstructor.Invoke(new object[] { parameters, randomKeyContainer }); + } + catch (TargetInvocationException exception) + { + if (exception.InnerException != null) + { + throw exception.InnerException; + } + + throw; + } + + if (result.KeyNumber == ((KeyNumber)(-1))) + { + var containerPatameters = GetCspKeyContainerInfoPatameters(result); + containerPatameters.KeyNumber = (int)KeyNumber.Exchange; + } + } + + return result; + } + + private static readonly object CspKeyContainerInfoPatametersFieldSync = new object(); + private static volatile FieldInfo _cspKeyContainerInfoPatametersField; + + private static CspParameters GetCspKeyContainerInfoPatameters(CspKeyContainerInfo cspKeyContainerInfo) + { + CspParameters result = null; + + if (_cspKeyContainerInfoPatametersField == null) + { + lock (CspKeyContainerInfoPatametersFieldSync) + { + if (_cspKeyContainerInfoPatametersField == null) + { + _cspKeyContainerInfoPatametersField = typeof(CspKeyContainerInfo).GetField("m_parameters", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_cspKeyContainerInfoPatametersField != null) + { + result = _cspKeyContainerInfoPatametersField.GetValue(cspKeyContainerInfo) as CspParameters; + } + + return result; + } + } +} diff --git a/Hcs.Client/GostCryptography/Reflection/EncryptedXmlHelper.cs b/Hcs.Client/GostCryptography/Reflection/EncryptedXmlHelper.cs new file mode 100644 index 0000000..19787b9 --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/EncryptedXmlHelper.cs @@ -0,0 +1,83 @@ +using GostCryptography.Properties; +using System.Collections; +using System.Reflection; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace GostCryptography.Reflection +{ + static class EncryptedXmlHelper + { + private static readonly object DocumentFieldSync = new object(); + private static volatile FieldInfo _documentField; + + public static XmlDocument GetDocument(this EncryptedXml encryptedXml) + { + if (_documentField == null) + { + lock (DocumentFieldSync) + { + if (_documentField == null) + { + _documentField = typeof(EncryptedXml).GetField("m_document", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_documentField == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "m_document"); + } + + return (XmlDocument)_documentField.GetValue(encryptedXml); + } + + private static readonly object KeyNameMappingFieldSync = new object(); + private static volatile FieldInfo _keyNameMappingField; + + public static Hashtable GetKeyNameMapping(this EncryptedXml encryptedXml) + { + if (_keyNameMappingField == null) + { + lock (KeyNameMappingFieldSync) + { + if (_keyNameMappingField == null) + { + _keyNameMappingField = typeof(EncryptedXml).GetField("m_keyNameMapping", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_keyNameMappingField == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "m_keyNameMapping"); + } + + return (Hashtable)_keyNameMappingField.GetValue(encryptedXml); + } + + private static readonly object GetCipherValueMethodSync = new object(); + private static volatile MethodInfo _getCipherValueMethod; + + public static byte[] GetCipherValue(this EncryptedXml encryptedXml, CipherData cipherData) + { + if (_getCipherValueMethod == null) + { + lock (GetCipherValueMethodSync) + { + if (_getCipherValueMethod == null) + { + _getCipherValueMethod = typeof(EncryptedXml).GetMethod("GetCipherValue", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_getCipherValueMethod == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "GetCipherValue()"); + } + + return (byte[])_getCipherValueMethod.Invoke(encryptedXml, new object[] { cipherData }); + } + } +} diff --git a/Hcs.Client/GostCryptography/Reflection/SignedXmlHelper.cs b/Hcs.Client/GostCryptography/Reflection/SignedXmlHelper.cs new file mode 100644 index 0000000..d57a507 --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/SignedXmlHelper.cs @@ -0,0 +1,122 @@ +using GostCryptography.Properties; +using System.Collections; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; + +namespace GostCryptography.Reflection +{ + static class SignedXmlHelper + { + public static IEnumerator GetKeyInfoEnumerable(this SignedXml signedXml) + { + return (IEnumerator)KeyInfoEnumerableField.GetValue(signedXml); + } + + public static void SetKeyInfoEnumerable(this SignedXml signedXml, IEnumerator keyInfoEnumerable) + { + KeyInfoEnumerableField.SetValue(signedXml, keyInfoEnumerable); + } + + private static volatile FieldInfo _keyInfoEnumerableField; + private static readonly object KeyInfoEnumerableFieldSync = new object(); + + private static FieldInfo KeyInfoEnumerableField + { + get + { + if (_keyInfoEnumerableField == null) + { + lock (KeyInfoEnumerableFieldSync) + { + if (_keyInfoEnumerableField == null) + { + _keyInfoEnumerableField = typeof(SignedXml).GetField("m_keyInfoEnum", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_keyInfoEnumerableField == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "m_keyInfoEnum"); + } + + return _keyInfoEnumerableField; + } + } + + public static IEnumerator GetX509Enumerable(this SignedXml signedXml) + { + return (IEnumerator)X509EnumerableField.GetValue(signedXml); + } + + public static void SetX509Enumerable(this SignedXml signedXml, IEnumerator x509Enumerable) + { + X509EnumerableField.SetValue(signedXml, x509Enumerable); + } + + private static volatile FieldInfo _x509EnumerableField; + private static readonly object X509EnumerableSync = new object(); + + private static FieldInfo X509EnumerableField + { + get + { + if (_x509EnumerableField == null) + { + lock (X509EnumerableSync) + { + if (_x509EnumerableField == null) + { + _x509EnumerableField = typeof(SignedXml).GetField("m_x509Enum", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_x509EnumerableField == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "m_x509Enum"); + } + + return _x509EnumerableField; + } + } + + public static X509Certificate2Collection GetX509Collection(this SignedXml signedXml) + { + return (X509Certificate2Collection)X509CollectionField.GetValue(signedXml); + } + + public static void SetX509Collection(this SignedXml signedXml, X509Certificate2Collection x509Collection) + { + X509CollectionField.SetValue(signedXml, x509Collection); + } + + private static volatile FieldInfo _x509CollectionField; + private static readonly object X509CollectionFieldSync = new object(); + + private static FieldInfo X509CollectionField + { + get + { + if (_x509CollectionField == null) + { + lock (X509CollectionFieldSync) + { + if (_x509CollectionField == null) + { + _x509CollectionField = typeof(SignedXml).GetField("m_x509Collection", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_keyInfoEnumerableField == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlCannotFindPrivateMember, "m_x509Collection"); + } + + return _x509CollectionField; + } + } + } +} diff --git a/Hcs.Client/GostCryptography/Reflection/X509CertificateHelper.cs b/Hcs.Client/GostCryptography/Reflection/X509CertificateHelper.cs new file mode 100644 index 0000000..939aa85 --- /dev/null +++ b/Hcs.Client/GostCryptography/Reflection/X509CertificateHelper.cs @@ -0,0 +1,293 @@ +using GostCryptography; +using GostCryptography.Asn1.Gost.Gost_R3410_2001; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_256; +using GostCryptography.Asn1.Gost.Gost_R3410_2012_512; +using GostCryptography.Asn1.Gost.Gost_R3410_94; +using GostCryptography.Gost_R3410; +using GostCryptography.Native; +using System.Reflection; + +// ReSharper disable once CheckNamespace +namespace System.Security.Cryptography.X509Certificates +{ + /// + /// Методы расширения + /// + [SecurityCritical] + public static class X509CertificateHelper + { + /// + /// Возвращает для сертификатов ГОСТ + /// + public static bool IsGost(this X509Certificate2 certificate) + { + return certificate.IsGost_R3410_2012_512() + || certificate.IsGost_R3410_2012_256() + || certificate.IsGost_R3410_2001() + || certificate.IsGost_R3410_94(); + } + + /// + /// Возвращает для сертификатов ГОСТ Р 34.10-94 + /// + public static bool IsGost_R3410_94(this X509Certificate2 certificate) + { + return Gost_R3410_94_Constants.KeyAlgorithm.Value.Equals(certificate.GetKeyAlgorithm()); + } + + /// + /// Возвращает для сертификатов ГОСТ Р 34.10-2001 + /// + public static bool IsGost_R3410_2001(this X509Certificate2 certificate) + { + return Gost_R3410_2001_Constants.KeyAlgorithm.Value.Equals(certificate.GetKeyAlgorithm()); + } + + /// + /// Возвращает для сертификатов ГОСТ Р 34.10-2012/256 + /// + public static bool IsGost_R3410_2012_256(this X509Certificate2 certificate) + { + return Gost_R3410_2012_256_Constants.KeyAlgorithm.Value.Equals(certificate.GetKeyAlgorithm()); + } + + /// + /// Возвращает для сертификатов ГОСТ Р 34.10-2012/512 + /// + public static bool IsGost_R3410_2012_512(this X509Certificate2 certificate) + { + return Gost_R3410_2012_512_Constants.KeyAlgorithm.Value.Equals(certificate.GetKeyAlgorithm()); + } + + /// + /// Возвращает функции хэширования сертификата + /// + /// + /// + public static Oid GetHashAlgorithm(this X509Certificate2 certificate) + { + if (certificate.IsGost_R3410_2012_512()) + { + return Gost_R3410_2012_512_Constants.HashAlgorithm.ToOid(); + } + + if (certificate.IsGost_R3410_2012_256()) + { + return Gost_R3410_2012_256_Constants.HashAlgorithm.ToOid(); + } + + if (certificate.IsGost_R3410_2001()) + { + return Gost_R3410_2001_Constants.HashAlgorithm.ToOid(); + } + + if (certificate.IsGost_R3410_94()) + { + return Gost_R3410_94_Constants.HashAlgorithm.ToOid(); + } + + return null; + } + + private static volatile MethodInfo _getPrivateKeyInfoMethod; + private static readonly object GetPrivateKeyInfoMethodSync = new object(); + + /// + /// Возвращает параметры закрытого ключа сертификата + /// + /// + /// + public static CspParameters GetPrivateKeyInfo(this X509Certificate2 certificate) + { + if (certificate == null) + { + throw ExceptionUtility.ArgumentNull(nameof(certificate)); + } + + if (certificate.HasPrivateKey) + { + if (_getPrivateKeyInfoMethod == null) + { + lock (GetPrivateKeyInfoMethodSync) + { + if (_getPrivateKeyInfoMethod == null) + { + _getPrivateKeyInfoMethod = typeof(X509Certificate2).GetMethod("GetPrivateKeyInfo", BindingFlags.Static | BindingFlags.NonPublic); + } + } + } + + if (_getPrivateKeyInfoMethod != null) + { + var certContext = GetCertContext(certificate); + + if (certContext != null) + { + try + { + var parameters = new CspParameters(); + + var success = _getPrivateKeyInfoMethod.Invoke(null, new[] { certContext, parameters }); + + if (Equals(success, true)) + { + return parameters; + } + } + catch + { + } + } + } + } + + return null; + } + + private static volatile MethodInfo _setPrivateKeyPropertyMethod; + private static readonly object SetPrivateKeyPropertyMethodSync = new object(); + + private static void SetPrivateKeyProperty(X509Certificate2 certificate, ICspAsymmetricAlgorithm privateKey) + { + if (_setPrivateKeyPropertyMethod == null) + { + lock (SetPrivateKeyPropertyMethodSync) + { + if (_setPrivateKeyPropertyMethod == null) + { + _setPrivateKeyPropertyMethod = typeof(X509Certificate2).GetMethod("SetPrivateKeyProperty", BindingFlags.Static | BindingFlags.NonPublic); + } + } + } + + if (_setPrivateKeyPropertyMethod != null) + { + var certContext = GetCertContext(certificate); + + if (certContext != null) + { + try + { + _setPrivateKeyPropertyMethod.Invoke(null, new[] { certContext, privateKey }); + } + catch + { + } + } + } + } + + private static volatile FieldInfo _certContextField; + private static readonly object CertContextFieldSync = new object(); + + private static object GetCertContext(X509Certificate2 certificate) + { + if (_certContextField == null) + { + lock (CertContextFieldSync) + { + if (_certContextField == null) + { + _certContextField = typeof(X509Certificate2).GetField("m_safeCertContext", BindingFlags.Instance | BindingFlags.NonPublic); + } + } + } + + if (_certContextField != null) + { + try + { + return _certContextField.GetValue(certificate); + } + catch + { + } + } + + return null; + } + + /// + /// Возвращает закрытый ключ сертификата + /// + public static AsymmetricAlgorithm GetPrivateKeyAlgorithm(this X509Certificate2 certificate) + { + if (certificate.IsGost_R3410_2012_512()) + { + var cspParameters = GetPrivateKeyInfo(certificate); + return new Gost_R3410_2012_512_AsymmetricAlgorithm(cspParameters); + } + + if (certificate.IsGost_R3410_2012_256()) + { + var cspParameters = GetPrivateKeyInfo(certificate); + return new Gost_R3410_2012_256_AsymmetricAlgorithm(cspParameters); + } + + if (certificate.IsGost_R3410_2001()) + { + var cspParameters = GetPrivateKeyInfo(certificate); + return new Gost_R3410_2001_AsymmetricAlgorithm(cspParameters); + } + + return certificate.PrivateKey; + } + + /// + /// Возвращает открытый ключ сертификата + /// + public static AsymmetricAlgorithm GetPublicKeyAlgorithm(this X509Certificate2 certificate) + { + if (certificate.IsGost_R3410_2012_512()) + { + var publicKey = new Gost_R3410_2012_512_AsymmetricAlgorithm(); + var encodedParameters = certificate.PublicKey.EncodedParameters.RawData; + var encodedKeyValue = certificate.PublicKey.EncodedKeyValue.RawData; + publicKey.ImportCspBlob(encodedParameters, encodedKeyValue); + return publicKey; + } + + if (certificate.IsGost_R3410_2012_256()) + { + var publicKey = new Gost_R3410_2012_256_AsymmetricAlgorithm(); + var encodedParameters = certificate.PublicKey.EncodedParameters.RawData; + var encodedKeyValue = certificate.PublicKey.EncodedKeyValue.RawData; + publicKey.ImportCspBlob(encodedParameters, encodedKeyValue); + return publicKey; + } + + if (certificate.IsGost_R3410_2001()) + { + var publicKey = new Gost_R3410_2001_AsymmetricAlgorithm(); + var encodedParameters = certificate.PublicKey.EncodedParameters.RawData; + var encodedKeyValue = certificate.PublicKey.EncodedKeyValue.RawData; + publicKey.ImportCspBlob(encodedParameters, encodedKeyValue); + return publicKey; + } + + return certificate.PublicKey.Key; + } + + /// + /// Возвращает сертификат для указанного ключа + /// + /// Ключ сертификата + /// Использовать ключ, как приватный + public static X509Certificate2 GetCertificate(this AsymmetricAlgorithm key, bool useAsPrivateKey = false) + { + X509Certificate2 certificate = null; + + if (key is ISafeHandleProvider keyHandleProvider) + { + certificate = CryptoApiHelper.GetKeyCertificate(keyHandleProvider.SafeHandle); + } + + if (useAsPrivateKey && (certificate != null) && (key is ICspAsymmetricAlgorithm privateKey)) + { + SetPrivateKeyProperty(certificate, privateKey); + } + + return certificate; + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/GetIdElementDelegate.cs b/Hcs.Client/GostCryptography/Xml/GetIdElementDelegate.cs new file mode 100644 index 0000000..9bd2193 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GetIdElementDelegate.cs @@ -0,0 +1,11 @@ +using System.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Возвращает XML-элемент с указанным идентификатором + /// + /// Документ для поиска идентификатора элемента + /// Значение идентификатора элемента + public delegate XmlElement GetIdElementDelegate(XmlDocument document, string idValue); +} diff --git a/Hcs.Client/GostCryptography/Xml/GostEncryptedXml.cs b/Hcs.Client/GostCryptography/Xml/GostEncryptedXml.cs new file mode 100644 index 0000000..e190a00 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GostEncryptedXml.cs @@ -0,0 +1,349 @@ +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_28147_89; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Security.Policy; +using System.Text; +using System.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Объект для шифрации и дешифрации XML по ГОСТ 34.10 + /// + public sealed class GostEncryptedXml + { + /// + /// URI пространства имен для синтаксиса и правил обработки при шифровании XML по ГОСТ + /// + public const string XmlEncGostNamespaceUrl = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:"; + + /// + /// URI алгоритма экспорта ключа по ГОСТ 28147-89 + /// + public const string XmlEncGostKeyExportUrl = XmlEncGostNamespaceUrl + "kw-gost"; + + /// + /// URI алгоритма экспорта ключа КриптоПро + /// + public const string XmlEncGostCryptoProKeyExportUrl = XmlEncGostNamespaceUrl + "kw-cp"; + + static GostEncryptedXml() + { + GostCryptoConfig.Initialize(); + } + + /// + public GostEncryptedXml() : this(GostCryptoConfig.ProviderType) + { + } + + /// + public GostEncryptedXml(ProviderType providerType) + { + _encryptedXml = new GostEncryptedXmlImpl(providerType); + } + + /// + public GostEncryptedXml(XmlDocument document) : this(GostCryptoConfig.ProviderType, document) + { + } + + /// + public GostEncryptedXml(ProviderType providerType, XmlDocument document) + { + _encryptedXml = new GostEncryptedXmlImpl(providerType, document); + } + + /// + public GostEncryptedXml(XmlDocument document, Evidence evidence) : this(GostCryptoConfig.ProviderType, document, evidence) + { + } + + /// + public GostEncryptedXml(ProviderType providerType, XmlDocument document, Evidence evidence) + { + _encryptedXml = new GostEncryptedXmlImpl(providerType, document, evidence); + } + + private readonly GostEncryptedXmlImpl _encryptedXml; + + /// + public Evidence DocumentEvidence + { + get => _encryptedXml.DocumentEvidence; + set => _encryptedXml.DocumentEvidence = value; + } + + /// + public XmlResolver Resolver + { + get => _encryptedXml.Resolver; + set => _encryptedXml.Resolver = value; + } + + /// + public PaddingMode Padding + { + get => _encryptedXml.Padding; + set => _encryptedXml.Padding = value; + } + + /// + public CipherMode Mode + { + get => _encryptedXml.Mode; + set => _encryptedXml.Mode = value; + } + + /// + public Encoding Encoding + { + get => _encryptedXml.Encoding; + set => _encryptedXml.Encoding = value; + } + + /// + public string Recipient + { + get => _encryptedXml.Recipient; + set => _encryptedXml.Recipient = value; + } + + // Encryption + + /// + /// Шифрует XML-элемент с помощью ключа с указанным именем + /// + /// Шифруемый XML-элемент + /// Имя ключа для шифрования XML-элемента + /// Зашифрованное представление XML-элемента + public EncryptedData Encrypt(XmlElement element, string keyName) + { + return _encryptedXml.Encrypt(element, keyName); + } + + /// + /// Шифрует XML-элемент с помощью сертификата + /// + /// Шифруемый XML-элемент + /// Сертификат X.509 для шифрования XML-элемента + /// Зашифрованное представление XML-элемента + public EncryptedData Encrypt(XmlElement element, X509Certificate2 certificate) + { + return _encryptedXml.Encrypt(element, certificate); + } + + /// + /// Шифрует данные с помощью указанного симметричного ключа + /// + /// Шифруемые данные + /// Симметричный ключ для шифрования данных + /// Массив байт, содержащий зашифрованные данные + public byte[] EncryptData(byte[] data, SymmetricAlgorithm symmetricKey) + { + return _encryptedXml.EncryptData(data, symmetricKey); + } + + /// + /// Шифрует XML-элемент с помощью указанного симметричного ключа + /// + /// Шифруемый XML-элемент + /// Симметричный ключ для шифрования XML-элемента + /// Значение true для шифрования только содержимого элемента; значение false для шифрования всего элемента + /// Массив байт, содержащий зашифрованные данные + public byte[] EncryptData(XmlElement element, SymmetricAlgorithm symmetricKey, bool content) + { + return _encryptedXml.EncryptData(element, symmetricKey, content); + } + + /// + /// Шифрует сессионный ключ с помощью указанного общего симметричного ключа + /// + /// Шифруемый сессионный ключ + /// Общий симметричный ключ для шифрования сессионного ключа + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] EncryptKey(byte[] keyData, SymmetricAlgorithm sharedKey) + { + return EncryptedXml.EncryptKey(keyData, sharedKey); + } + + /// + /// Шифрует сессионный ключ с помощью указанного асимметричного ключа RSA + /// + /// Шифруемый сессионный ключ + /// Открытый ключ RSA для шифрования сессионного ключа + /// Значение, указывающее, следует ли использовать заполнение OAEP (Optimal Asymmetric Encryption Padding) + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] EncryptKey(byte[] keyData, RSA publicKey, bool useOaep) + { + return EncryptedXml.EncryptKey(keyData, publicKey, useOaep); + } + + /// + /// Шифрует сессионный ключ с помощью указанного асимметричного ключа ГОСТ Р 34.10 + /// + /// Шифруемый сессионный ключ + /// Открытый ключ ГОСТ Р 34.10 для шифрования сессионного ключа + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, GostAsymmetricAlgorithm publicKey) + { + return GostEncryptedXmlImpl.EncryptKey(sessionKey, publicKey); + } + + /// + /// Шифрует сессионный ключ с помощью указанного симметричного ключа ГОСТ 28147 + /// + /// Шифруемый сессионный ключ + /// Общий симметричный ключ ГОСТ 28147 для шифрования сессионного ключа + /// Алгоритм экспорта сессионного ключа + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, Gost_28147_89_SymmetricAlgorithmBase sharedKey, GostKeyExchangeExportMethod exportMethod = GostKeyExchangeExportMethod.GostKeyExport) + { + return GostEncryptedXmlImpl.EncryptKey(sessionKey, sharedKey, exportMethod); + } + + /// + /// Расшифровывает зашифрованный XML-элемент с помощью указанного симметричного ключа + /// + /// Зашифрованное представление XML-элемента + /// Симметричный ключ для расшифровки данных + /// Массив байт, содержащий расшифрованный XML-элемент + public byte[] DecryptData(EncryptedData encryptedData, SymmetricAlgorithm symmetricKey) + { + return _encryptedXml.DecryptData(encryptedData, symmetricKey); + } + + /// + /// Расшифровывает все зашифрованные XML-элементы документа + /// + public void DecryptDocument() + { + _encryptedXml.DecryptDocument(); + } + + /// + /// Возвращает вектор инициализации для расшифровки XML-элемента + /// + /// Зашифрованное представление XML-элемента + /// URI алгоритма шифрования + /// Массив байт, содержащий вектор инициализации для расшифровки XML-элемента + public byte[] GetDecryptionIV(EncryptedData encryptedData, string symmetricAlgorithmUri) + { + return _encryptedXml.GetDecryptionIV(encryptedData, symmetricAlgorithmUri); + } + + /// + /// Возвращает симметричный ключ для расшифровки XML-элемента + /// + /// Зашифрованное представление XML-элемента + /// URI алгоритма шифрования + /// Симметричный ключ для расшифровки XML-элемента + public SymmetricAlgorithm GetDecryptionKey(EncryptedData encryptedData, string symmetricAlgorithmUri) + { + return _encryptedXml.GetDecryptionKey(encryptedData, symmetricAlgorithmUri); + } + + /// + /// Извлекает ключ из элемента <EncryptedKey> + /// + /// Элемент <EncryptedKey> с информацией о ключе шифрования + /// Массив байт, содержащий ключ для расшифровки + public byte[] DecryptEncryptedKey(EncryptedKey encryptedKey) + { + return _encryptedXml.DecryptEncryptedKey(encryptedKey); + } + + /// + /// Расшифровывает сессионный ключ с помощью указанного общего симметричного ключа + /// + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Общий симметричный ключ для расшифровки сессионного ключа + /// Массив байт, который содержит сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] DecryptKey(byte[] keyData, SymmetricAlgorithm sharedKey) + { + return EncryptedXml.EncryptKey(keyData, sharedKey); + } + + /// + /// Расшифровывает сессионный ключ с помощью указанного асимметричного ключа RSA + /// + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Закрытый ключ RSA для расшифровки сессионного ключа + /// Значение, указывающее, следует ли использовать заполнение OAEP (Optimal Asymmetric Encryption Padding) + /// Массив байт, который содержит сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static byte[] DecryptKey(byte[] keyData, RSA privateKey, bool useOaep) + { + return EncryptedXml.DecryptKey(keyData, privateKey, useOaep); + } + + /// + /// Расшифровывает сессионный ключ с помощью указанного асимметричного ключа ГОСТ Р 34.10 + /// + /// Массив байт, содержащий зашифрованный сессионный ключ + /// Закрытый ключ ГОСТ Р 34.10 для расшифровки сессионного ключа + /// Сессионный ключ + /// Как правило сессионный ключ используется для шифрования данных и в свою очередь так же шифруется + public static SymmetricAlgorithm DecryptKey(byte[] keyData, GostAsymmetricAlgorithm privateKey) + { + return GostEncryptedXmlImpl.DecryptKeyClass(keyData, privateKey); + } + + /// + /// Заменяет указанный зашифрованный XML-элемент его расшифрованным представлением + /// + /// Заменяемый зашифрованный XML-элемент + /// Расшифрованное представление XML-элемента + public void ReplaceData(XmlElement element, byte[] decryptedData) + { + _encryptedXml.ReplaceData(element, decryptedData); + } + + /// + /// Заменяет указанный XML-элемент его зашифрованным представлением + /// + /// Заменяемый XML-элемент + /// Зашифрованное представление XML-элемента + /// Значение true для замены только содержимого элемента; значение false для замены всего элемента + public static void ReplaceElement(XmlElement element, EncryptedData encryptedData, bool content) + { + EncryptedXml.ReplaceElement(element, encryptedData, content); + } + + /// + /// Возвращает XML-элемент с указанным идентификатором + /// + /// Документ для поиска идентификатора XML-элемента + /// Значение идентификатора XML-элемента + public XmlElement GetIdElement(XmlDocument document, string idValue) + { + return _encryptedXml.GetIdElement(document, idValue); + } + + /// + /// Сопоставляет имя ключа шифрования со значением + /// + /// Имя ключа шифрования + /// Значение ключа шифрования + public void AddKeyNameMapping(string keyName, object keyObject) + { + _encryptedXml.AddKeyNameMapping(keyName, keyObject); + } + + /// + /// Сбрасывает все сопоставления между именами и ключами шифрования + /// + public void ClearKeyNameMappings() + { + _encryptedXml.ClearKeyNameMappings(); + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/GostEncryptedXmlImpl.cs b/Hcs.Client/GostCryptography/Xml/GostEncryptedXmlImpl.cs new file mode 100644 index 0000000..50cb230 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GostEncryptedXmlImpl.cs @@ -0,0 +1,429 @@ +using GostCryptography.Base; +using GostCryptography.Config; +using GostCryptography.Gost_28147_89; +using GostCryptography.Properties; +using GostCryptography.Reflection; +using System; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Security.Policy; +using System.Xml; + +namespace GostCryptography.Xml +{ + sealed class GostEncryptedXmlImpl : EncryptedXml + { + public GostEncryptedXmlImpl(ProviderType providerType) + { + ProviderType = providerType; + } + + public GostEncryptedXmlImpl(ProviderType providerType, XmlDocument document) : base(document) + { + ProviderType = providerType; + } + + public GostEncryptedXmlImpl(ProviderType providerType, XmlDocument document, Evidence evidence) : base(document, evidence) + { + ProviderType = providerType; + } + + public ProviderType ProviderType { get; } + + public new void AddKeyNameMapping(string keyName, object keyObject) + { + if (string.IsNullOrEmpty(keyName)) + { + throw ExceptionUtility.ArgumentNull(nameof(keyName)); + } + + if (keyObject == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyObject)); + } + + if (keyObject is GostAsymmetricAlgorithm) + { + this.GetKeyNameMapping().Add(keyName, keyObject); + } + else + { + base.AddKeyNameMapping(keyName, keyObject); + } + } + + [SecuritySafeCritical] + public new EncryptedData Encrypt(XmlElement element, X509Certificate2 certificate) + { + if (element == null || certificate == null || !certificate.IsGost()) + { + return base.Encrypt(element, certificate); + } + + var publicKey = (GostAsymmetricAlgorithm)certificate.GetPublicKeyAlgorithm(); + var encryptionKey = new Gost_28147_89_SymmetricAlgorithm(publicKey.ProviderType); + + var encryptedKey = new EncryptedKey(); + encryptedKey.KeyInfo.AddClause(new KeyInfoX509Data(certificate)); + encryptedKey.EncryptionMethod = new EncryptionMethod(publicKey.KeyExchangeAlgorithm); + encryptedKey.CipherData.CipherValue = EncryptKey(encryptionKey, publicKey); + + var encryptedData = new EncryptedData + { + Type = XmlEncElementUrl, + EncryptionMethod = new EncryptionMethod(encryptionKey.AlgorithmName) + }; + + encryptedData.KeyInfo.AddClause(new KeyInfoEncryptedKey(encryptedKey)); + encryptedData.CipherData.CipherValue = EncryptData(element, encryptionKey, false); + + return encryptedData; + } + + public static byte[] EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, GostAsymmetricAlgorithm publicKey) + { + if (sessionKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(sessionKey)); + } + + if (publicKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(publicKey)); + } + + var formatter = publicKey.CreateKeyExchangeFormatter(); + return formatter.CreateKeyExchangeData(sessionKey); + } + + public static byte[] EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, Gost_28147_89_SymmetricAlgorithmBase sharedKey, GostKeyExchangeExportMethod exportMethod) + { + if (sessionKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(sessionKey)); + } + + if (sharedKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(sharedKey)); + } + + return sharedKey.EncodePrivateKey(sessionKey, exportMethod); + } + + public override byte[] GetDecryptionIV(EncryptedData encryptedData, string symmetricAlgorithmUri) + { + if (encryptedData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptedData)); + } + + if (symmetricAlgorithmUri == null) + { + if (encryptedData.EncryptionMethod == null) + { + return base.GetDecryptionIV(encryptedData, null); + } + + symmetricAlgorithmUri = encryptedData.EncryptionMethod.KeyAlgorithm; + } + + if (Gost_28147_89_SymmetricAlgorithm.AlgorithmNameValue.Equals(symmetricAlgorithmUri, StringComparison.OrdinalIgnoreCase)) + { + var iv = new byte[8]; + Buffer.BlockCopy(this.GetCipherValue(encryptedData.CipherData), 0, iv, 0, iv.Length); + + return iv; + } + + return base.GetDecryptionIV(encryptedData, symmetricAlgorithmUri); + } + + public override SymmetricAlgorithm GetDecryptionKey(EncryptedData encryptedData, string symmetricAlgorithmUri) + { + if (encryptedData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptedData)); + } + + SymmetricAlgorithm decryptionKey = null; + + if (encryptedData.KeyInfo != null) + { + EncryptedKey encryptedKey = null; + + foreach (var keyInfo in encryptedData.KeyInfo) + { + // Извлечение ключа по имени + if (keyInfo is KeyInfoName) + { + var keyName = ((KeyInfoName)keyInfo).Value; + var keyAlgorithm = this.GetKeyNameMapping()[keyName]; + + if (keyAlgorithm == null) + { + var nsManager = new XmlNamespaceManager(this.GetDocument().NameTable); + nsManager.AddNamespace("enc", XmlEncNamespaceUrl); + + var encryptedKeyNodes = this.GetDocument().SelectNodes("//enc:EncryptedKey", nsManager); + + if (encryptedKeyNodes != null) + { + foreach (XmlElement encryptedKeyNode in encryptedKeyNodes) + { + var currentEncryptedKey = new EncryptedKey(); + currentEncryptedKey.LoadXml(encryptedKeyNode); + + if ((currentEncryptedKey.CarriedKeyName == keyName) && (currentEncryptedKey.Recipient == Recipient)) + { + encryptedKey = currentEncryptedKey; + break; + } + } + } + } + else + { + decryptionKey = (SymmetricAlgorithm)keyAlgorithm; + } + + break; + } + + // Извлечение ключа по ссылке + if (keyInfo is KeyInfoRetrievalMethod) + { + var idValue = CryptographyXmlUtils.ExtractIdFromLocalUri(((KeyInfoRetrievalMethod)keyInfo).Uri); + var idElement = GetIdElement(this.GetDocument(), idValue); + + if (idElement != null) + { + encryptedKey = new EncryptedKey(); + encryptedKey.LoadXml(idElement); + } + + break; + } + + // Ключ в готовом виде + if (keyInfo is KeyInfoEncryptedKey) + { + encryptedKey = ((KeyInfoEncryptedKey)keyInfo).EncryptedKey; + break; + } + } + + if (decryptionKey == null && encryptedKey != null) + { + if (symmetricAlgorithmUri == null) + { + if (encryptedData.EncryptionMethod == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlMissingAlgorithm); + } + + symmetricAlgorithmUri = encryptedData.EncryptionMethod.KeyAlgorithm; + } + + decryptionKey = DecryptEncryptedKeyClass(encryptedKey, symmetricAlgorithmUri); + } + } + + return decryptionKey; + } + + [SecuritySafeCritical] + private SymmetricAlgorithm DecryptEncryptedKeyClass(EncryptedKey encryptedKey, string symmetricAlgorithmUri) + { + if (encryptedKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(encryptedKey)); + } + + SymmetricAlgorithm decryptionKey = null; + + if (encryptedKey.KeyInfo != null) + { + foreach (var keyInfo in encryptedKey.KeyInfo) + { + // Извлечение ключа по имени + if (keyInfo is KeyInfoName) + { + var keyName = ((KeyInfoName)keyInfo).Value; + var keyAlgorithm = this.GetKeyNameMapping()[keyName]; + + if (keyAlgorithm != null) + { + if (keyAlgorithm is SymmetricAlgorithm) + { + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, (SymmetricAlgorithm)keyAlgorithm, symmetricAlgorithmUri, encryptedKey.EncryptionMethod.KeyAlgorithm); + } + else if (keyAlgorithm is RSA) + { + var useOaep = (encryptedKey.EncryptionMethod != null) && (encryptedKey.EncryptionMethod.KeyAlgorithm == XmlEncRSAOAEPUrl); + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, (RSA)keyAlgorithm, useOaep, symmetricAlgorithmUri); + } + else if (keyAlgorithm is GostAsymmetricAlgorithm) + { + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, (GostAsymmetricAlgorithm)keyAlgorithm); + } + } + + break; + } + + // Извлечение ключа из сертификата + if (keyInfo is KeyInfoX509Data) + { + var certificates = CryptographyXmlUtils.BuildBagOfCertsDecryption((KeyInfoX509Data)keyInfo); + + foreach (var certificate in certificates) + { + var privateKey = certificate.GetPrivateKeyAlgorithm(); + + if (privateKey is RSA) + { + var useOaep = (encryptedKey.EncryptionMethod != null) && (encryptedKey.EncryptionMethod.KeyAlgorithm == XmlEncRSAOAEPUrl); + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, (RSA)privateKey, useOaep, symmetricAlgorithmUri); + } + else if (privateKey is GostAsymmetricAlgorithm) + { + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, (GostAsymmetricAlgorithm)privateKey); + } + } + + break; + } + + // Извлечение ключа по ссылке + if (keyInfo is KeyInfoRetrievalMethod) + { + var idValue = CryptographyXmlUtils.ExtractIdFromLocalUri(((KeyInfoRetrievalMethod)keyInfo).Uri); + var idElement = GetIdElement(this.GetDocument(), idValue); + + if (idElement != null) + { + var secondEncryptedKey = new EncryptedKey(); + secondEncryptedKey.LoadXml(idElement); + + decryptionKey = DecryptEncryptedKeyClass(secondEncryptedKey, symmetricAlgorithmUri); + } + + break; + } + + // Ключ в готовом виде + if (keyInfo is KeyInfoEncryptedKey) + { + var secondEncryptedKey = ((KeyInfoEncryptedKey)keyInfo).EncryptedKey; + var symmetricAlgorithm = DecryptEncryptedKeyClass(secondEncryptedKey, symmetricAlgorithmUri); + + if (symmetricAlgorithm != null) + { + decryptionKey = DecryptKeyClass(encryptedKey.CipherData.CipherValue, symmetricAlgorithm, symmetricAlgorithmUri, encryptedKey.EncryptionMethod.KeyAlgorithm); + } + + break; + } + } + } + + return decryptionKey; + } + + private static SymmetricAlgorithm DecryptKeyClass(byte[] keyData, SymmetricAlgorithm algorithm, string symmetricAlgorithmUri, string encryptionKeyAlgorithm) + { + if (keyData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyData)); + } + + if (algorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(algorithm)); + } + + SymmetricAlgorithm decryptionKey = null; + + if (algorithm is Gost_28147_89_SymmetricAlgorithmBase gost28147) + { + if (string.Equals(encryptionKeyAlgorithm, GostEncryptedXml.XmlEncGostKeyExportUrl, StringComparison.OrdinalIgnoreCase)) + { + decryptionKey = gost28147.DecodePrivateKey(keyData, GostKeyExchangeExportMethod.GostKeyExport); + } + + if (string.Equals(encryptionKeyAlgorithm, GostEncryptedXml.XmlEncGostCryptoProKeyExportUrl, StringComparison.OrdinalIgnoreCase)) + { + decryptionKey = gost28147.DecodePrivateKey(keyData, GostKeyExchangeExportMethod.CryptoProKeyExport); + } + } + else + { + var decryptionKeyBytes = DecryptKey(keyData, algorithm); + + if (decryptionKeyBytes != null) + { + decryptionKey = (SymmetricAlgorithm)GostCryptoConfig.CreateFromName(symmetricAlgorithmUri); + decryptionKey.Key = decryptionKeyBytes; + } + } + + if (decryptionKey == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlMissingAlgorithm); + } + + return decryptionKey; + } + + private static SymmetricAlgorithm DecryptKeyClass(byte[] keyData, RSA algorithm, bool useOaep, string symmetricAlgorithmUri) + { + if (keyData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyData)); + } + + if (algorithm == null) + { + throw ExceptionUtility.ArgumentNull(nameof(algorithm)); + } + + SymmetricAlgorithm decryptionKey = null; + + var decryptionKeyBytes = DecryptKey(keyData, algorithm, useOaep); + + if (decryptionKeyBytes != null) + { + decryptionKey = (SymmetricAlgorithm)GostCryptoConfig.CreateFromName(symmetricAlgorithmUri); + decryptionKey.Key = decryptionKeyBytes; + } + + if (decryptionKey == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlMissingAlgorithm); + } + + return decryptionKey; + } + + public static SymmetricAlgorithm DecryptKeyClass(byte[] keyData, GostAsymmetricAlgorithm privateKey) + { + if (keyData == null) + { + throw ExceptionUtility.ArgumentNull(nameof(keyData)); + } + + if (privateKey == null) + { + throw ExceptionUtility.ArgumentNull(nameof(privateKey)); + } + + var deformatter = privateKey.CreateKeyExchangeDeformatter(); + var decryptionKey = deformatter.DecryptKeyExchangeAlgorithm(keyData); + + return decryptionKey; + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/GostKeyValue.cs b/Hcs.Client/GostCryptography/Xml/GostKeyValue.cs new file mode 100644 index 0000000..7f95534 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GostKeyValue.cs @@ -0,0 +1,50 @@ +using GostCryptography.Base; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Параметры открытого ключа цифровой подписи ГОСТ Р 34.10 элемента + /// + public abstract class GostKeyValue : KeyInfoClause + { + /// + /// URI пространства имен для XML-подписи ГОСТ Р 34.10 + /// + public const string XmlDsigNamespaceUrl = "urn:ietf:params:xml:ns:cpxmlsec"; + + /// + /// Создает экземпляр класса с заданным публичным ключом + /// + protected GostKeyValue(GostAsymmetricAlgorithm publicKey) + { + PublicKey = publicKey; + } + + /// + /// Открытый ключ + /// + public GostAsymmetricAlgorithm PublicKey { get; set; } + + /// + public override void LoadXml(XmlElement element) + { + if (element == null) + { + throw ExceptionUtility.ArgumentNull(nameof(element)); + } + + PublicKey.FromXmlString(element.OuterXml); + } + + /// + public override XmlElement GetXml() + { + var document = new XmlDocument { PreserveWhitespace = true }; + var element = document.CreateElement("KeyValue", SignedXml.XmlDsigNamespaceUrl); + element.InnerXml = PublicKey.ToXmlString(false); + return element; + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/GostSignedXml.cs b/Hcs.Client/GostCryptography/Xml/GostSignedXml.cs new file mode 100644 index 0000000..998b728 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GostSignedXml.cs @@ -0,0 +1,143 @@ +using GostCryptography.Config; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Объект для работы с подписями XML по ГОСТ 34.10 + /// + /// + /// Данный класс реализует стандарт XML-DSig с использованием ГОСТ 34.10. Стандарт XML-DSig разработан консорциумом W3C + /// и определяет рекомендации по формированию подписанных сообщений в формате XML. Фактически XML-DSig решает те же вопросы, + /// что и CMS/PKCS#7. Основное отличие в том, что в CMS/PKCS#7 данные хранятся в структурах, сформированных в соответствии + /// с разметкой ANS.1 (фактически, бинарные данные), а в XML-DSig данные хранятся в текстовом формате в соответствии с правилами + /// документа "XML Signature Syntax and Processing". Основное применение XML-DSig - это XML-ориентированные протоколы, например, + /// Web- и SOAP-сервисы. + /// + public sealed class GostSignedXml + { + static GostSignedXml() + { + GostCryptoConfig.Initialize(); + } + + /// + public GostSignedXml() + { + _signedXml = new GostSignedXmlImpl(); + } + + /// + public GostSignedXml(XmlElement element) + { + if (element == null) + { + throw ExceptionUtility.ArgumentNull(nameof(element)); + } + + _signedXml = new GostSignedXmlImpl(element); + } + + /// + public GostSignedXml(XmlDocument document) + { + if (document == null) + { + throw ExceptionUtility.ArgumentNull(nameof(document)); + } + + _signedXml = new GostSignedXmlImpl(document); + } + + private readonly GostSignedXmlImpl _signedXml; + + /// + public SignedInfo SignedInfo => _signedXml.SignedInfo; + + /// + public KeyInfo KeyInfo + { + get => _signedXml.KeyInfo; + set => _signedXml.KeyInfo = value; + } + + /// + public AsymmetricAlgorithm SigningKey + { + get => _signedXml.SigningKey; + set => _signedXml.SigningKey = value; + } + +#if !NET40 + /// + public System.Collections.ObjectModel.Collection SafeCanonicalizationMethods + { + get => _signedXml.SafeCanonicalizationMethods; + } +#endif + + /// + /// Обработчик для перекрытия метода + /// + public GetIdElementDelegate GetIdElementHandler + { + get => _signedXml.GetIdElementHandler; + set => _signedXml.GetIdElementHandler = value; + } + + /// + /// Устанавливает сертификат для вычисления цифровой подписи + /// + [SecuritySafeCritical] + public void SetSigningCertificate(X509Certificate2 certificate) + { + SigningKey = certificate.GetPrivateKeyAlgorithm(); + } + + /// + public void AddReference(Reference reference) + { + _signedXml.AddReference(reference); + } + + /// + public void ComputeSignature() + { + _signedXml.ComputeSignatureGost(); + } + + /// + public bool CheckSignature() + { + return _signedXml.CheckSignature(); + } + + /// + public bool CheckSignature(AsymmetricAlgorithm publicKey) + { + return _signedXml.CheckSignature(publicKey); + } + + /// + public void LoadXml(XmlElement element) + { + _signedXml.LoadXml(element); + } + + /// + public XmlElement GetXml() + { + return _signedXml.GetXml(); + } + + /// + public XmlElement GetIdElement(XmlDocument document, string idValue) + { + return _signedXml.GetIdElement(document, idValue); + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/GostSignedXmlImpl.cs b/Hcs.Client/GostCryptography/Xml/GostSignedXmlImpl.cs new file mode 100644 index 0000000..f4d7090 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/GostSignedXmlImpl.cs @@ -0,0 +1,159 @@ +using GostCryptography.Base; +using GostCryptography.Properties; +using GostCryptography.Reflection; +using System.Collections; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace GostCryptography.Xml +{ + sealed class GostSignedXmlImpl : SignedXml + { + public GostSignedXmlImpl() + { + } + + public GostSignedXmlImpl(XmlElement element) : base(element) + { + } + + public GostSignedXmlImpl(XmlDocument document) : base(document) + { + } + + public GetIdElementDelegate GetIdElementHandler { get; set; } + + private IEnumerator KeyInfoEnumerable + { + get => this.GetKeyInfoEnumerable(); + set => this.SetKeyInfoEnumerable(value); + } + + private IEnumerator X509Enumerable + { + get => this.GetX509Enumerable(); + set => this.SetX509Enumerable(value); + } + + private X509Certificate2Collection X509Collection + { + get => this.GetX509Collection(); + set => this.SetX509Collection(value); + } + + [SecuritySafeCritical] + public void ComputeSignatureGost() + { + var signingKey = SigningKey; + + if (signingKey == null) + { + ComputeSignatureBase(); + } + else + { + if ((SignedInfo.SignatureMethod == null) && (signingKey is GostAsymmetricAlgorithm)) + { + SignedInfo.SignatureMethod = signingKey.SignatureAlgorithm; + } + + ComputeSignatureBase(); + } + } + + [SecurityCritical] + private void ComputeSignatureBase() + { + ComputeSignature(); + } + + protected override AsymmetricAlgorithm GetPublicKey() + { + if (KeyInfo == null) + { + throw ExceptionUtility.CryptographicException(Resources.XmlKeyInfoRequired); + } + + if (X509Enumerable != null) + { + var nextCertificatePublicKey = GetNextCertificatePublicKey(); + + if (nextCertificatePublicKey != null) + { + return nextCertificatePublicKey; + } + } + + if (KeyInfoEnumerable == null) + { + KeyInfoEnumerable = KeyInfo.GetEnumerator(); + } + + var keyInfoEnum = KeyInfoEnumerable; + + while (keyInfoEnum.MoveNext()) + { + if (keyInfoEnum.Current is RSAKeyValue rsaKeyValue) + { + return rsaKeyValue.Key; + } + + if (keyInfoEnum.Current is DSAKeyValue dsaKeyValue) + { + return dsaKeyValue.Key; + } + + if (keyInfoEnum.Current is GostKeyValue gostKeyValue) + { + return gostKeyValue.PublicKey; + } + + if (keyInfoEnum.Current is KeyInfoX509Data keyInfoX509Data) + { + X509Collection = CryptographyXmlUtils.BuildBagOfCertsVerification(keyInfoX509Data); + + if (X509Collection.Count > 0) + { + X509Enumerable = X509Collection.GetEnumerator(); + + var nextCertificatePublicKey = GetNextCertificatePublicKey(); + + if (nextCertificatePublicKey != null) + { + return nextCertificatePublicKey; + } + } + } + } + + return null; + } + + [SecuritySafeCritical] + private AsymmetricAlgorithm GetNextCertificatePublicKey() + { + while (X509Enumerable.MoveNext()) + { + if (X509Enumerable.Current is X509Certificate2 certificate) + { + return certificate.GetPublicKeyAlgorithm(); + } + } + + return null; + } + + public override XmlElement GetIdElement(XmlDocument document, string idValue) + { + if (GetIdElementHandler != null) + { + return GetIdElementHandler(document, idValue); + } + + return base.GetIdElement(document, idValue); + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/Gost_R3410_2001_KeyValue.cs b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2001_KeyValue.cs new file mode 100644 index 0000000..9ae802a --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2001_KeyValue.cs @@ -0,0 +1,36 @@ +using GostCryptography.Gost_R3410; +using System.Security.Cryptography.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Параметры открытого ключа цифровой подписи ГОСТ Р 34.10-2001 элемента + /// + public sealed class Gost_R3410_2001_KeyValue : GostKeyValue + { + /// + /// URI параметров ключа ГОСТ Р 34.10-2001 + /// + public const string KeyValueUrl = SignedXml.XmlDsigNamespaceUrl + " KeyValue/" + Gost_R3410_2001_KeyExchangeXmlSerializer.KeyValueTag; + + /// + /// Известные URIs параметров ключа ГОСТ Р 34.10-2001 + /// + public static readonly string[] KnownValueUrls = { KeyValueUrl }; + + + /// + /// Создает экземпляр класса с новым ключом ГОСТ Р 34.10-2001 + /// + public Gost_R3410_2001_KeyValue() : base(new Gost_R3410_2001_AsymmetricAlgorithm()) + { + } + + /// + /// Создает экземпляр класса с заданным ключом ГОСТ Р 34.10-2001 + /// + public Gost_R3410_2001_KeyValue(Gost_R3410_2001_AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_256_KeyValue.cs b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_256_KeyValue.cs new file mode 100644 index 0000000..c6fe784 --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_256_KeyValue.cs @@ -0,0 +1,36 @@ +using GostCryptography.Gost_R3410; +using System.Security.Cryptography.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Параметры открытого ключа цифровой подписи ГОСТ Р 34.10-2012/256 элемента + /// + public sealed class Gost_R3410_2012_256_KeyValue : GostKeyValue + { + /// + /// URI параметров ключа ГОСТ Р 34.10-2012/256 + /// + public const string KeyValueUrl = SignedXml.XmlDsigNamespaceUrl + " KeyValue/" + Gost_R3410_2012_256_KeyExchangeXmlSerializer.KeyValueTag; + + /// + /// Известные URIs параметров ключа ГОСТ Р 34.10-2012/256 + /// + public static readonly string[] KnownValueUrls = { KeyValueUrl }; + + + /// + /// Создает экземпляр класса с новым ключом ГОСТ Р 34.10-2012/256 + /// + public Gost_R3410_2012_256_KeyValue() : base(new Gost_R3410_2012_256_AsymmetricAlgorithm()) + { + } + + /// + /// Создает экземпляр класса с заданным ключом ГОСТ Р 34.10-2012/256 + /// + public Gost_R3410_2012_256_KeyValue(Gost_R3410_2012_256_AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + } +} diff --git a/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_512_KeyValue.cs b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_512_KeyValue.cs new file mode 100644 index 0000000..244543e --- /dev/null +++ b/Hcs.Client/GostCryptography/Xml/Gost_R3410_2012_512_KeyValue.cs @@ -0,0 +1,36 @@ +using GostCryptography.Gost_R3410; +using System.Security.Cryptography.Xml; + +namespace GostCryptography.Xml +{ + /// + /// Параметры открытого ключа цифровой подписи ГОСТ Р 34.10-2012/512 элемента + /// + public sealed class Gost_R3410_2012_512_KeyValue : GostKeyValue + { + /// + /// URI параметров ключа ГОСТ Р 34.10-2012/512 + /// + public const string KeyValueUrl = SignedXml.XmlDsigNamespaceUrl + " KeyValue/" + Gost_R3410_2012_512_KeyExchangeXmlSerializer.KeyValueTag; + + /// + /// Известные URIs параметров ключа ГОСТ Р 34.10-2012/512 + /// + public static readonly string[] KnownValueUrls = { KeyValueUrl }; + + + /// + /// Создает экземпляр класса с новым ключом ГОСТ Р 34.10-2012/512 + /// + public Gost_R3410_2012_512_KeyValue() : base(new Gost_R3410_2012_512_AsymmetricAlgorithm()) + { + } + + /// + /// Создает экземпляр класса с заданным ключом ГОСТ Р 34.10-2012/512 + /// + public Gost_R3410_2012_512_KeyValue(Gost_R3410_2012_512_AsymmetricAlgorithm publicKey) : base(publicKey) + { + } + } +} diff --git a/Hcs.Client/GostXades/Abstractions/ICertificateMatcher.cs b/Hcs.Client/GostXades/Abstractions/ICertificateMatcher.cs new file mode 100644 index 0000000..df650b6 --- /dev/null +++ b/Hcs.Client/GostXades/Abstractions/ICertificateMatcher.cs @@ -0,0 +1,18 @@ +using Microsoft.Xades; +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.GostXades.Abstractions +{ + /// + /// , XML + /// + public interface ICertificateMatcher + { + /// + /// , + /// + /// xml + /// + X509Certificate2 GetSignatureCertificate(XadesSignedXml signedXml); + } +} diff --git a/Hcs.Client/GostXades/Abstractions/ICryptoProvider.cs b/Hcs.Client/GostXades/Abstractions/ICryptoProvider.cs new file mode 100644 index 0000000..5c8fc68 --- /dev/null +++ b/Hcs.Client/GostXades/Abstractions/ICryptoProvider.cs @@ -0,0 +1,58 @@ +using Microsoft.Xades; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; + +namespace Hcs.GostXades.Abstractions +{ + public interface ICryptoProvider + { + /// + /// URI метода подписи + /// + string SignatureMethod { get; } + + /// + /// URI метода хеширования + /// + string DigestMethod { get; } + + /// + /// Получение реализации асимметричного алгоритма + /// + /// Сертификат, исользуемый для подписания + /// Пароль от контейнера закрытого ключа + /// + AsymmetricAlgorithm GetAsymmetricAlgorithm(X509Certificate2 certificate, string privateKeyPassword); + + /// + /// Получение Reference-элемента для XML-документа + /// + /// Идентификатор подписываемого узла XML-документа + /// Идентификатор подписи + /// + Reference GetReference(string signedElementId, string signatureId); + + /// + /// Получение форматтера, с помощью которого будет производиться подпись + /// + /// Сертификат, с помощью которого будет производиться подпись + /// + AsymmetricSignatureFormatter GetSignatureFormatter(X509Certificate2 certificate); + + /// + /// Получение реализации алгоритма хеширования по URI + /// + /// URI метода хеширования + /// + HashAlgorithm GetHashAlgorithm(string algorithm); + + /// + /// Получение объекта XadesObject + /// + /// Информация о XAdES-подписи + /// Идентификатор подписи + /// + XadesObject GetXadesObject(XadesInfo xadesInfo, string signatureId); + } +} diff --git a/Hcs.Client/GostXades/Abstractions/IIssuerComparer.cs b/Hcs.Client/GostXades/Abstractions/IIssuerComparer.cs new file mode 100644 index 0000000..9479806 --- /dev/null +++ b/Hcs.Client/GostXades/Abstractions/IIssuerComparer.cs @@ -0,0 +1,16 @@ +namespace Hcs.GostXades.Abstractions +{ + /// + /// + /// + public interface IIssuerComparer + { + /// + /// , (X509IssuerName) + /// + /// + /// + /// true, , false + bool AreSameIssuer(string first, string second); + } +} diff --git a/Hcs.Client/GostXades/Abstractions/IXadesService.cs b/Hcs.Client/GostXades/Abstractions/IXadesService.cs new file mode 100644 index 0000000..9e3b7a3 --- /dev/null +++ b/Hcs.Client/GostXades/Abstractions/IXadesService.cs @@ -0,0 +1,23 @@ +namespace Hcs.GostXades.Abstractions +{ + public interface IXadesService + { + /// + /// Валидация XAdES подписи. + /// Бросает исключение, если подпись не верна. + /// + /// + /// + void ValidateSignature(string xmlData, string elementId); + + /// + /// Подпись XML-документа с помощью XAdES подписи + /// + /// XML-документ, который необходимо подписать + /// Значение атрибута Id узла XML-документа, который необходимо подписать + /// Отпечаток сертификата, который необходимо использовать для подписи + /// Пароль от контейнера закрытого ключа используемого сертификата + /// Подписанный XML-документ + string Sign(string xmlData, string elementId, string certificateThumbprint, string certificatePassword); + } +} diff --git a/Hcs.Client/GostXades/CertificateMatcher.cs b/Hcs.Client/GostXades/CertificateMatcher.cs new file mode 100644 index 0000000..d723fb4 --- /dev/null +++ b/Hcs.Client/GostXades/CertificateMatcher.cs @@ -0,0 +1,129 @@ +using Hcs.GostXades.Abstractions; +using Hcs.GostXades.Helpers; +using Microsoft.Xades; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; + +namespace Hcs.GostXades +{ + public class CertificateMatcher : ICertificateMatcher + { + public IIssuerComparer IssuerComparer { get; set; } = new IssuerComparer(); + + public CertificateMatcher(ICryptoProvider cryptoProvider) + { + if (cryptoProvider == null) + { + throw new ArgumentNullException(nameof(cryptoProvider)); + } + _cryptoProvider = cryptoProvider; + } + + public X509Certificate2 GetSignatureCertificate(XadesSignedXml signedXml) + { + var candidates = GetCandidateCertificates(signedXml).ToArray(); + if (!candidates.Any()) + { + throw new InvalidOperationException("Не найдено ни одного сертификата, обозначенного в xades:SigningCertificate"); + } + return FindMatchedCertificate(signedXml, candidates); + } + + private IEnumerable GetCandidateCertificates(XadesSignedXml signedXml) + { + var certificates = ExtractCertificates(signedXml).ToArray(); + if (certificates.Length == 0) + { + throw new InvalidOperationException("Элемент KeyInfo.X509Data.X509Certificate не заполнен или отсутствует"); + } + var certInfosCollection = signedXml.SignedSignatureProperties.SigningCertificate.CertCollection; + if (certInfosCollection == null) + { + throw new InvalidOperationException("Элемент xades:SigningCertificate не заполнен или отсутствует"); + } + var certInfos = certInfosCollection.OfType().ToArray(); + foreach (var certificate in certificates) + { + // TODO: Проверить комментарий + var isCertificateMatch = true; //certInfos.Any(certInfo => IsCertificateMatchCertInfo(certificate, certInfo)); + if (isCertificateMatch) + { + yield return certificate; + } + } + } + + private IEnumerable ExtractCertificates(XadesSignedXml signedXml) + { + var keyInfo = signedXml.KeyInfo; + if (keyInfo == null || keyInfo.Count == 0) + { + throw new InvalidOperationException("Элемент KeyInfo не заполнен или отсутствует"); + } + if (keyInfo.Count > 1) + { + throw new InvalidOperationException("Найдено более одного элемента KeyInfo"); + } + var x509Data = keyInfo.OfType().FirstOrDefault(); + if (x509Data == null) + { + throw new InvalidOperationException("Элемент X509Data не заполнен или отсутствует"); + } + return x509Data.Certificates.OfType(); + } + + private readonly ICryptoProvider _cryptoProvider; + + #region Certificate match + + private bool IsCertificateMatchCertInfo(X509Certificate2 certificate, Cert certInfo) + { + var isSerialMatch = IsSerialMatch(certificate, certInfo); + var issuerNameMatch = IsNameMatch(certificate, certInfo); + var isCertHashMatch = IsCertHashMatch(certificate, certInfo); + return isSerialMatch && issuerNameMatch && isCertHashMatch; + } + + private bool IsSerialMatch(X509Certificate2 certificate, Cert certInfo) + { + var issuerSerial = certInfo.IssuerSerial.X509SerialNumber; + string certInfoSerialNumberHex; + try + { + certInfoSerialNumberHex = ConvertHelper.BigIntegerToHex(issuerSerial); + } + catch (FormatException) + { + certInfoSerialNumberHex = issuerSerial; + } + return certificate.SerialNumber == certInfoSerialNumberHex; + } + + private bool IsCertHashMatch(X509Certificate2 certificate, Cert certInfo) + { + var certDigest = certInfo.CertDigest; + var pkHash = _cryptoProvider.GetHashAlgorithm(certDigest.DigestMethod.Algorithm); + if (pkHash == null) + { + throw new XadesBesValidationException($"Алгоритм {certDigest.DigestMethod.Algorithm} не поддерживается"); + } + var hashValue = pkHash.ComputeHash(certificate.RawData); + return ArrayHelper.AreEquals(hashValue, certDigest.DigestValue); + } + + private bool IsNameMatch(X509Certificate2 certificate, Cert certInfo) + { + return IssuerComparer.AreSameIssuer(certificate.Issuer, certInfo.IssuerSerial.X509IssuerName); + } + + private X509Certificate2 FindMatchedCertificate(SignedXml signedXml, IEnumerable candidates) + { + return candidates.FirstOrDefault(candidate => signedXml.CheckSignature(candidate, true)); + } + + #endregion + } +} diff --git a/Hcs.Client/GostXades/CryptoProviderTypeEnum.cs b/Hcs.Client/GostXades/CryptoProviderTypeEnum.cs new file mode 100644 index 0000000..f9f0fab --- /dev/null +++ b/Hcs.Client/GostXades/CryptoProviderTypeEnum.cs @@ -0,0 +1,13 @@ +namespace Hcs.GostXades +{ + /// + /// Типы криптопровайдеров + /// + public enum CryptoProviderTypeEnum + { + CryptoPRO = GostCryptography.Base.ProviderType.CryptoPro, + CryptoPro_2012_512 = GostCryptography.Base.ProviderType.CryptoPro_2012_512, + CryptoPro_2012_1024 = GostCryptography.Base.ProviderType.CryptoPro_2012_1024, + VipNET = GostCryptography.Base.ProviderType.VipNet + } +} diff --git a/Hcs.Client/GostXades/GostCryptoProvider.cs b/Hcs.Client/GostXades/GostCryptoProvider.cs new file mode 100644 index 0000000..f259917 --- /dev/null +++ b/Hcs.Client/GostXades/GostCryptoProvider.cs @@ -0,0 +1,130 @@ +using GostCryptography.Config; +using GostCryptography.Gost_R3410; +using GostCryptography.Gost_R3411; +using Hcs.GostXades.Abstractions; +using Hcs.GostXades.Helpers; +using Microsoft.Xades; +using Org.BouncyCastle.X509; +using System; +using System.Collections.Generic; +using System.Security; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; + +namespace Hcs.GostXades +{ + public class GostCryptoProvider : ICryptoProvider + { + public GostCryptoProvider(CryptoProviderTypeEnum cryptoProviderType) + { + GostCryptoConfig.ProviderType = (GostCryptography.Base.ProviderType)cryptoProviderType; + } + + private Dictionary HashAlgorithmMap { get; set; } = new Dictionary + { + ["http://www.w3.org/2001/04/xmldsig-more#gostr3411"] = "GOST3411" + }; + + public HashAlgorithm GetHashAlgorithm(string algorithm) + { + string algorithmName; + var algorithmUrl = algorithm; + if (!HashAlgorithmMap.TryGetValue(algorithmUrl, out algorithmName)) + { + return null; + } + var pkHash = HashAlgorithm.Create(algorithmName); + return pkHash; + } + + private int _referenceIndex; + + public string SignatureMethod => Gost_R3410_2012_256_AsymmetricAlgorithm.SignatureAlgorithmValue; + public string DigestMethod => Gost_R3411_2012_256_HashAlgorithm.AlgorithmNameValue; + private HashAlgorithm GetHashAlgorithm() => new Gost_R3411_2012_256_HashAlgorithm(); + + public AsymmetricAlgorithm GetAsymmetricAlgorithm(X509Certificate2 certificate, string privateKeyPassword) + { + var provider = certificate.GetPrivateKeyAlgorithm(); + + if (!string.IsNullOrEmpty(privateKeyPassword)) + { + var secureString = new SecureString(); + foreach (var chr in privateKeyPassword) + secureString.AppendChar(chr); + + if (provider is Gost_R3410_2012_256_AsymmetricAlgorithm alg1) + alg1.SetContainerPassword(secureString); + else if (provider is Gost_R3410_2012_512_AsymmetricAlgorithm alg2) + alg2.SetContainerPassword(secureString); + else throw new NotSupportedException( + $"Неизвестный тип алгоритма {provider.SignatureAlgorithm} для применения пароля"); + } + + return provider; + } + + public Reference GetReference(string signedElementId, string signatureId) + { + var reference = new Reference + { + Uri = $"#{signedElementId}", + DigestMethod = DigestMethod, + Id = $"{signatureId}-ref{_referenceIndex}" + }; + reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); + reference.AddTransform(new XmlDsigExcC14NTransform()); + + _referenceIndex++; + + return reference; + } + + public AsymmetricSignatureFormatter GetSignatureFormatter(X509Certificate2 certificate) + { + var alg = certificate.GetPrivateKeyAlgorithm(); + var signatureDescription = + (SignatureDescription)CryptoConfig.CreateFromName(alg.SignatureAlgorithm); + return signatureDescription.CreateFormatter(alg); + } + + public XadesObject GetXadesObject(XadesInfo xadesInfo, string signatureId) + { + var xadesObject = new XadesObject + { + QualifyingProperties = new QualifyingProperties + { + Target = $"#{signatureId}", + SignedProperties = new SignedProperties { Id = $"{signatureId}-signedprops" } + } + }; + + var hashAlgorithm = GetHashAlgorithm(); + var hashValue = hashAlgorithm.ComputeHash(xadesInfo.RawCertData); + + var x509CertificateParser = new X509CertificateParser(); + var bouncyCert = x509CertificateParser.ReadCertificate(xadesInfo.RawCertData); + + var cert = new Cert + { + IssuerSerial = new IssuerSerial + { + X509IssuerName = bouncyCert.IssuerDN.ToX509IssuerName(), + X509SerialNumber = bouncyCert.SerialNumber.ToString() + }, + CertDigest = + { + DigestValue = hashValue, + DigestMethod = new DigestMethod { Algorithm = DigestMethod } + } + }; + + var signedSignatureProperties = xadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties; + signedSignatureProperties.SigningCertificate.CertCollection.Add(cert); + signedSignatureProperties.SigningTime = xadesInfo.SigningDateTimeUtc.ToDateTimeOffset(xadesInfo.TimeZoneOffsetMinutes); + + return xadesObject; + } + } +} diff --git a/Hcs.Client/GostXades/GostXadesBesService.cs b/Hcs.Client/GostXades/GostXadesBesService.cs new file mode 100644 index 0000000..e0ea01b --- /dev/null +++ b/Hcs.Client/GostXades/GostXadesBesService.cs @@ -0,0 +1,72 @@ +using Hcs.GostXades.Abstractions; +using Hcs.GostXades.Helpers; +using System; + +namespace Hcs.GostXades +{ + public class GostXadesBesService : IXadesService + { + CryptoProviderTypeEnum cryptoProviderType; + + public GostXadesBesService(CryptoProviderTypeEnum cryptoProviderType) + { + this.cryptoProviderType = cryptoProviderType; + } + + public void ValidateSignature(string xmlData, string elementId) + { + if (string.IsNullOrEmpty(xmlData)) + { + throw new ArgumentNullException(nameof(xmlData)); + } + if (string.IsNullOrWhiteSpace(elementId)) + { + throw new ArgumentNullException(nameof(elementId)); + } + + var document = XmlDocumentHelper.Create(xmlData); + var signedXml = new XadesBesSignedXml(document, elementId) + { + CertificateMatcher = new CertificateMatcher(new GostCryptoProvider(this.cryptoProviderType)) + }; + signedXml.Validate(); + } + + public string Sign(string xmlData, string elementId, string certificateThumbprint, string certificatePassword) + { + if (string.IsNullOrEmpty(xmlData)) + { + throw new ArgumentNullException(nameof(xmlData)); + } + if (string.IsNullOrEmpty(elementId)) + { + throw new ArgumentNullException(nameof(elementId)); + } + if (string.IsNullOrEmpty(certificateThumbprint)) + { + throw new ArgumentNullException(nameof(certificateThumbprint)); + } + + var originalDoc = XmlDocumentHelper.Create(xmlData); + var certificate = CertificateHelper.GetCertificateByThumbprint(certificateThumbprint); + + var provider = new GostCryptoProvider(this.cryptoProviderType); + var xadesSignedXml = new XadesBesSignedXml(originalDoc) + { + SignedElementId = elementId, + CryptoProvider = provider + }; + + var element = xadesSignedXml.FindElement(elementId, originalDoc); + if (element == null) + { + throw new InvalidOperationException($" c Id {elementId}"); + } + + xadesSignedXml.ComputeSignature(certificate, certificatePassword); + xadesSignedXml.InjectSignatureTo(originalDoc); + + return originalDoc.OuterXml; + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/ArrayHelper.cs b/Hcs.Client/GostXades/Helpers/ArrayHelper.cs new file mode 100644 index 0000000..81d7d45 --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/ArrayHelper.cs @@ -0,0 +1,38 @@ +using System; + +namespace Hcs.GostXades.Helpers +{ + public static class ArrayHelper + { + public static bool AreEquals(byte[] first, byte[] second) + { + return AreEquals(first, second, (x, y) => x.Equals(y)); + } + + public static bool AreEquals(string[] first, string[] second) + { + return AreEquals(first, second, (x, y) => string.Equals(x, y, StringComparison.InvariantCultureIgnoreCase)); + } + + private static bool AreEquals(T[] first, T[] second, Func comparator) + { + if (first == second) + { + return true; + } + if (first.Length != second.Length) + { + return false; + } + for (var i = 0; i < first.Length; i++) + { + var equals = comparator.Invoke(first[i], second[i]); + if (!equals) + { + return false; + } + } + return true; + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/CertificateHelper.cs b/Hcs.Client/GostXades/Helpers/CertificateHelper.cs new file mode 100644 index 0000000..d0b8192 --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/CertificateHelper.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.GostXades.Helpers +{ + public static class CertificateHelper + { + /// + /// Получение сертификата из личного локального хранилища по отпечатку + /// + /// Отпечаток требуемого сертификата + /// Сертификат с нужным отпечатком + public static X509Certificate2 GetCertificateByThumbprint(string thumbprint) + { + var certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); + + try + { + certificateStore.Open(OpenFlags.ReadOnly); + var certificateCollection = certificateStore.Certificates + .Cast() + .Where(i => string.Equals(i.Thumbprint, thumbprint, StringComparison.InvariantCultureIgnoreCase)) + .ToArray(); + + if (!certificateCollection.Any()) + { + throw new ArgumentException("Некорректный отпечаток сертификата"); + } + + var activeCertificates = certificateCollection.Where(i => DateTime.Parse(i.GetEffectiveDateString()) <= DateTime.Now && + DateTime.Now <= DateTime.Parse(i.GetExpirationDateString())) + .ToArray(); + if (activeCertificates.Any()) + { + return activeCertificates[0]; + } + + throw new ArgumentException($"Сертификат с указанным отпечатком {thumbprint} недействителен"); + } + finally + { + certificateStore.Close(); + } + } + + /// + /// Получение сертификатов из локального хранилища текущего пользователя + /// + /// Сертификаты из локального хранилища текущего пользователя + public static IEnumerable GetCertificates() + { + var certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); + + try + { + certificateStore.Open(OpenFlags.ReadOnly); + return certificateStore.Certificates.OfType(); + } + finally + { + certificateStore.Close(); + } + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/CollectionHelper.cs b/Hcs.Client/GostXades/Helpers/CollectionHelper.cs new file mode 100644 index 0000000..40bafb8 --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/CollectionHelper.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Linq; + +namespace Hcs.GostXades.Helpers +{ + public static class CollectionHelper + { + public static bool IsNotEmpty(this IEnumerable enumerable) + { + return enumerable != null && enumerable.OfType().Any(); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/ConvertHelper.cs b/Hcs.Client/GostXades/Helpers/ConvertHelper.cs new file mode 100644 index 0000000..1a9e87b --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/ConvertHelper.cs @@ -0,0 +1,12 @@ +using System.Numerics; + +namespace Hcs.GostXades.Helpers +{ + public static class ConvertHelper + { + public static string BigIntegerToHex(string str) + { + return BigInteger.Parse(str).ToString("X"); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/DateTimeHelper.cs b/Hcs.Client/GostXades/Helpers/DateTimeHelper.cs new file mode 100644 index 0000000..ddedd0e --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/DateTimeHelper.cs @@ -0,0 +1,14 @@ +using System; + +namespace Hcs.GostXades.Helpers +{ + public static class DateTimeHelper + { + public static DateTimeOffset ToDateTimeOffset(this DateTime dateTime, int timeZoneOffsetMinutes = 0) + { + var shiftedDateTime = dateTime.AddMinutes(timeZoneOffsetMinutes); + var unspecifiedDateTime = DateTime.SpecifyKind(shiftedDateTime, DateTimeKind.Unspecified); + return new DateTimeOffset(unspecifiedDateTime, new TimeSpan(0, timeZoneOffsetMinutes, 0)); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/EnumerableHelper.cs b/Hcs.Client/GostXades/Helpers/EnumerableHelper.cs new file mode 100644 index 0000000..72439fb --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/EnumerableHelper.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Hcs.GostXades.Helpers +{ + public static class EnumerableHelper + { + public static bool AreSequenceEquals(IEnumerable first, IEnumerable second) + { + var sortedFirst = first.OrderBy(x => x).ToArray(); + var sortedSecond = second.OrderBy(x => x).ToArray(); + return ArrayHelper.AreEquals(sortedFirst, sortedSecond); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/GostHashAlgorithmHelper.cs b/Hcs.Client/GostXades/Helpers/GostHashAlgorithmHelper.cs new file mode 100644 index 0000000..3b5a020 --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/GostHashAlgorithmHelper.cs @@ -0,0 +1,23 @@ +using GostCryptography.Config; +using System; + +namespace Hcs.GostXades.Helpers +{ + public static class GostHashAlgorithmHelper + { + /// + /// Рассчитать хэш + /// + /// Тип криптопровайдера + /// + /// + public static string ComputeHash(CryptoProviderTypeEnum cryptoProviderType, byte[] bytes) + { + byte[] hashValue; + GostCryptoConfig.ProviderType = (GostCryptography.Base.ProviderType)cryptoProviderType; + var hashAlgorithm = new GostCryptography.Gost_R3411.Gost_R3411_2012_512_HashAlgorithm(); + hashValue = hashAlgorithm.ComputeHash(bytes); + return BitConverter.ToString(hashValue).Replace("-", ""); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/KeyInfoHelper.cs b/Hcs.Client/GostXades/Helpers/KeyInfoHelper.cs new file mode 100644 index 0000000..aba27ae --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/KeyInfoHelper.cs @@ -0,0 +1,28 @@ +using System; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Hcs.GostXades.Helpers +{ + public static class KeyInfoHelper + { + public static KeyInfo Create(X509Certificate2 certificate) + { + var xmlDocument = new XmlDocument(); + + var x509DataElement = xmlDocument.CreateElement("ds", "X509Data", KeyInfoNamespace); + var x509CertificateElement = xmlDocument.CreateElement("ds", "X509Certificate", KeyInfoNamespace); + x509CertificateElement.InnerText = Convert.ToBase64String(certificate.GetRawCertData()); + + x509DataElement.AppendChild(x509CertificateElement); + + var keyInfo = new KeyInfo(); + keyInfo.AddClause(new KeyInfoNode(x509DataElement)); + + return keyInfo; + } + + private const string KeyInfoNamespace = "http://www.w3.org/2000/09/xmldsig#"; + } +} diff --git a/Hcs.Client/GostXades/Helpers/X509NameHelper.cs b/Hcs.Client/GostXades/Helpers/X509NameHelper.cs new file mode 100644 index 0000000..3fc030a --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/X509NameHelper.cs @@ -0,0 +1,74 @@ +using Org.BouncyCastle.Asn1.X509; +using System.Linq; +using System.Text; + +namespace Hcs.GostXades.Helpers +{ + public static class X509NameHelper + { + /// + /// Исправить строку X509IssuerName для рукожопых пейсателей из Ланита + /// + /// Исходная строка из сертификата + /// Исправленная строка, чтобы ее понимал сервер ГИС ЖКХ + public static string ToX509IssuerName(this X509Name x509Name) + { + string x509IssuerName = x509Name.ToString(); + var pairs = x509IssuerName + .Replace("\\,", "^_^") + .Split(',') + .Select(part => part.Split('=')) + .Select(lrParts => new ReplacementPair + { + Key = lrParts[0], + Value = lrParts.Length == 2 ? lrParts[1] : string.Empty + }).ToList(); + + var nCount = pairs.Count; + var result = new StringBuilder(); + var i = 0; + foreach (var pair in pairs) + { + switch (pair.Key.ToLower()) + { + case "t": + case "title": + pair.Key = "2.5.4.12"; + break; + + case "g": + case "givenname": + pair.Key = "2.5.4.42"; + break; + case "e": + pair.Key = "1.2.840.113549.1.9.1"; + break; + case "sn": + case "surname": + pair.Key = "2.5.4.4"; + break; + + case "ou": + case "orgunit": + pair.Key = "2.5.4.11"; + break; + + case "unstructured-name": + case "unstructuredname": + pair.Key = "1.2.840.113549.1.9.2"; + break; + } + + result.Append($"{pair.Key}={pair.Value}{(i != (nCount - 1) ? ", " : string.Empty)}"); + i++; + } + return result.ToString().Replace("^_^", "\\,"); + } + } + + internal class ReplacementPair + { + public string Key { get; set; } + public string Value { get; set; } + } +} diff --git a/Hcs.Client/GostXades/Helpers/XadesSignedXmlHelper.cs b/Hcs.Client/GostXades/Helpers/XadesSignedXmlHelper.cs new file mode 100644 index 0000000..bb48c9b --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/XadesSignedXmlHelper.cs @@ -0,0 +1,16 @@ +using Microsoft.Xades; +using System.Xml; + +namespace Hcs.GostXades.Helpers +{ + public static class XadesSignedXmlHelper + { + public static void InjectSignatureTo(this XadesSignedXml signedXml, XmlDocument originalDoc) + { + var signatureElement = signedXml.GetXml(); + var importSignatureElement = originalDoc.ImportNode(signatureElement, true); + var signedDataContainer = signedXml.GetIdElement(originalDoc, signedXml.SignedElementId); + signedDataContainer.InsertBefore(importSignatureElement, signedDataContainer.FirstChild); + } + } +} diff --git a/Hcs.Client/GostXades/Helpers/XmlDocumentHelper.cs b/Hcs.Client/GostXades/Helpers/XmlDocumentHelper.cs new file mode 100644 index 0000000..a663a24 --- /dev/null +++ b/Hcs.Client/GostXades/Helpers/XmlDocumentHelper.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Xml; + +namespace Hcs.GostXades.Helpers +{ + public static class XmlDocumentHelper + { + /// + /// XmlDocument + /// + public static XmlDocument Create(string xmlData) + { + var xmlDocument = new XmlDocument { PreserveWhitespace = true }; + try + { + xmlDocument.LoadXml(xmlData); + } + catch (XmlException xmlEx) + { + throw new InvalidOperationException($" xml : {xmlEx.Message}", xmlEx); + } + return xmlDocument; + } + + /// + /// XmlDocument + /// + public static XmlDocument Load(string pathName) + { + var xmlDocument = new XmlDocument { PreserveWhitespace = true }; + try + { + xmlDocument.Load(pathName); + } + catch (XmlException xmlEx) + { + throw new InvalidOperationException($" xml : {xmlEx.Message}", xmlEx); + } + return xmlDocument; + } + + /// + /// XmlDocument + /// + public static XmlNamespaceManager CreateNamespaceManager(this XmlDocument xml) + { + var manager = new XmlNamespaceManager(xml.NameTable); + foreach (var name in GetNamespaceDictionary(xml)) + { + manager.AddNamespace(name.Key, name.Value); + } + + return manager; + } + + private static IDictionary GetNamespaceDictionary(this XmlDocument xml) + { + var nameSpaceList = xml.SelectNodes(@"//namespace::*[not(. = ../../namespace::*)]").OfType(); + return nameSpaceList.Distinct(new LocalNameComparer()).ToDictionary(xmlNode => xmlNode.LocalName, xmlNode => xmlNode.Value); + } + + private class LocalNameComparer : IEqualityComparer + { + public bool Equals(XmlNode x, XmlNode y) + { + return x.LocalName == y.LocalName; + } + + public int GetHashCode(XmlNode obj) + { + return obj.LocalName.GetHashCode(); + } + } + } +} diff --git a/Hcs.Client/GostXades/IssuerComparer.cs b/Hcs.Client/GostXades/IssuerComparer.cs new file mode 100644 index 0000000..dc03cd8 --- /dev/null +++ b/Hcs.Client/GostXades/IssuerComparer.cs @@ -0,0 +1,59 @@ +using Hcs.GostXades.Abstractions; +using Hcs.GostXades.Helpers; +using Org.BouncyCastle.Asn1.X509; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +namespace Hcs.GostXades +{ + public class IssuerComparer : IIssuerComparer + { + static IssuerComparer() + { + var regexps = new Dictionary + { + ["^(ОГРН|OGRN|OID.1.2.643.100.1)="] = "1.2.643.100.1=", + ["^(ОГРНИП|OGRNIP|OID.1.2.643.100.5)="] = "1.2.643.100.5=", + ["^(ИНН|INN|OID.1.2.643.3.131.1.1)="] = "1.2.643.3.131.1.1=", + ["^(E|Е|OID.1.2.840.113549.1.9.1)="] = "1.2.840.113549.1.9.1=", + ["^S="] = "ST=", + ["\\\""] = string.Empty, + [". "] = ".", + }; + RegexpToReplace = regexps.ToDictionary(x => new Regex(x.Key), x => x.Value); + } + + private static IEnumerable ParseIssuer(string issuer) + { + return Tokenize(issuer).Select(ReplaceOids); + } + + private static string ReplaceOids(string oidString) + { + foreach (var item in RegexpToReplace) + { + oidString = item.Key.Replace(oidString, item.Value); + } + return oidString; + } + + private static IEnumerable Tokenize(string issuer) + { + var tokenizer = new X509NameTokenizer(issuer); + while (tokenizer.HasMoreTokens()) + { + yield return tokenizer.NextToken(); + } + } + + private static readonly Dictionary RegexpToReplace; + + public bool AreSameIssuer(string first, string second) + { + var firstTokens = ParseIssuer(first); + var secondTokens = ParseIssuer(second); + return EnumerableHelper.AreSequenceEquals(firstTokens, secondTokens); + } + } +} diff --git a/Hcs.Client/GostXades/XadesBesSignedXml.cs b/Hcs.Client/GostXades/XadesBesSignedXml.cs new file mode 100644 index 0000000..5c5d27f --- /dev/null +++ b/Hcs.Client/GostXades/XadesBesSignedXml.cs @@ -0,0 +1,174 @@ +using Hcs.GostXades.Abstractions; +using Hcs.GostXades.Helpers; +using Microsoft.Xades; +using System; +using System.Linq; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Xml; + +namespace Hcs.GostXades +{ + public class XadesBesSignedXml : XadesSignedXml + { + public ICertificateMatcher CertificateMatcher { get; set; } + public ICryptoProvider CryptoProvider { get; set; } + + /// Документ, который необходимо подписать с помощью XAdES-BES + public XadesBesSignedXml(XmlDocument document) : base(document) { } + + /// Документ, подписанный с помощью XAdES-BES + /// Id подписанного элемента + public XadesBesSignedXml(XmlDocument document, string elementId) : base(document, elementId) + { + var elementToVerify = FindElement(elementId, document); + var signatureNodeList = FindSignatureNodes(elementToVerify); + if (!signatureNodeList.Any()) + { + throw new InvalidOperationException($"Элемент с Id {elementId} не содержит подписи"); + } + if (signatureNodeList.Length > 1) + { + throw new InvalidOperationException($"Элемент с {elementId} подписан более одного раза"); + } + var signatureNode = (XmlElement)signatureNodeList[0]; + var standart = GetSignatureStandart(signatureNode); + if (standart != KnownSignatureStandard.Xades) + { + throw new InvalidOperationException($"Элемент с Id {elementId} подписан не по стандарту XADES-BES"); + } + LoadXml(signatureNode); + } + + /// + /// Валидация XAdES-BES подписи + /// + public void Validate() + { + X509Certificate2 matchedCert; + try + { + matchedCert = CertificateMatcher.GetSignatureCertificate(this); + } + catch (InvalidOperationException ex) + { + throw new XadesBesValidationException(ex.Message, ex); + } + if (matchedCert == null) + { + throw new XadesBesValidationException("XML подпись неверна"); + } + ValidateCertificate(matchedCert); + ValidateAdditionalProperties(); + } + + /// + /// Подписывает XML-документ c помощью XAdES-BES + /// + /// Сертификат, с помощью которого производится подпись + /// Пароль от контейнера закрытого ключа используемого сертификата + public void ComputeSignature(X509Certificate2 certificate, string privateKeyPassword) + { + var signatureId = $"xmldsig-{Guid.NewGuid().ToString().ToLower()}"; + + SigningKey = CryptoProvider.GetAsymmetricAlgorithm(certificate, privateKeyPassword); + + Signature.Id = signatureId; + SignatureValueId = $"{signatureId}-sigvalue"; + + var reference = CryptoProvider.GetReference(SignedElementId, signatureId); + AddReference(reference); + + SignedInfo.CanonicalizationMethod = XmlDsigCanonicalizationUrl; + SignedInfo.SignatureMethod = CryptoProvider.SignatureMethod; + + var xadesInfo = new XadesInfo(certificate); + KeyInfo = KeyInfoHelper.Create(certificate); + + var xadesObject = CryptoProvider.GetXadesObject(xadesInfo, signatureId); + AddXadesObject(xadesObject); + + ComputeSignature(); + + HashAlgorithm hashAlgorithm; + GetSignedInfoHash(out hashAlgorithm); + + var formatter = CryptoProvider.GetSignatureFormatter(certificate); + var signedHash = formatter.CreateSignature(hashAlgorithm.Hash); + Signature.SignatureValue = signedHash; + } + + public XmlElement FindElement(string elementId, XmlDocument xmlDocument) + { + var elementToVerify = GetIdElement(xmlDocument, elementId); + if (elementToVerify == null) + { + throw new InvalidOperationException($"Элемент с Id {elementId} не найден"); + } + return elementToVerify; + } + + private KnownSignatureStandard GetSignatureStandart(XmlElement signatureElement) + { + return GetXadesObjectElement(signatureElement) == null ? KnownSignatureStandard.XmlDsig : KnownSignatureStandard.Xades; + } + + private static XmlNode[] FindSignatureNodes(XmlElement elementToVerify) + { + var items = elementToVerify.ChildNodes + .OfType() + .Where(x => string.Equals(x.LocalName, SignatureTagName, StringComparison.InvariantCulture) + && string.Equals(x.NamespaceURI, XmlDsigNamespaceUrl, StringComparison.InvariantCultureIgnoreCase)) + .ToArray(); + return items; + } + + private void ValidateAdditionalProperties() + { + var signedSignatureProperties = SignedSignatureProperties; + var signedDataObjectProperties = SignedDataObjectProperties; + + // XAdES 1.4.2 clause G.2.2.6 Checking SignaturePolicyIdentifier + ThrowIfTrue(signedSignatureProperties?.SignaturePolicyIdentifier != null, "SignaturePolicyIdentifier"); + + // XAdES 1.4.2 clause G.2.2.8 Checking DataObjectFormat + ThrowIfTrue(signedDataObjectProperties?.DataObjectFormatCollection.IsNotEmpty(), "DataObjectFormat"); + + // XAdES 1.4.2 clause G.2.2.9 Checking CommitmentTypeIndication + ThrowIfTrue(signedDataObjectProperties?.CommitmentTypeIndicationCollection.IsNotEmpty(), "CommitmentTypeIndication"); + + // XAdES 1.4.2 clause G.2.2.11 Checking SignerRole + var signerRole = signedSignatureProperties?.SignerRole; + ThrowIfTrue(signerRole?.ClaimedRoles != null || signerRole?.CertifiedRoles != null, "SignerRole"); + + // XAdES 1.4.2 clause G.2.2.16.1.1 Checking AllDataObjectsTimeStamp + ThrowIfTrue(signedDataObjectProperties?.AllDataObjectsTimeStampCollection.IsNotEmpty(), "AllDataObjectsTimeStamp"); + + // XAdES 1.4.2 clause G.2.2.16.1.2 Checking IndividualDataObjectsTimeStamp + ThrowIfTrue(signedDataObjectProperties?.IndividualDataObjectsTimeStampCollection.IsNotEmpty(), "IndividualDataObjectsTimeStamp"); + } + + private static void ValidateCertificate(X509Certificate2 certificate) + { + if (DateTime.Now > certificate.NotAfter || DateTime.Now < certificate.NotBefore) + { + throw new XadesBesValidationException("Срок действия сертификата истек или еще не наступил"); + } + var isCertValid = certificate.Verify(); + if (!isCertValid) + { + throw new XadesBesValidationException("Неверный сертификат"); + } + } + + private static void ThrowIfTrue(bool? condition, string tagName) + { + if (condition == true) + { + throw new XadesBesValidationException($"Свойство xades:{tagName} не поддерживается"); + } + } + + private const string SignatureTagName = "Signature"; + } +} diff --git a/Hcs.Client/GostXades/XadesBesValidationException.cs b/Hcs.Client/GostXades/XadesBesValidationException.cs new file mode 100644 index 0000000..2e8b77d --- /dev/null +++ b/Hcs.Client/GostXades/XadesBesValidationException.cs @@ -0,0 +1,25 @@ +using System; +using System.Runtime.Serialization; + +namespace Hcs.GostXades +{ + [Serializable] + public class XadesBesValidationException : Exception + { + public XadesBesValidationException() + { + } + + public XadesBesValidationException(string message) : base(message) + { + } + + public XadesBesValidationException(string message, Exception inner) : base(message, inner) + { + } + + protected XadesBesValidationException(SerializationInfo info, StreamingContext context) : base(info, context) + { + } + } +} diff --git a/Hcs.Client/GostXades/XadesInfo.cs b/Hcs.Client/GostXades/XadesInfo.cs new file mode 100644 index 0000000..5973678 --- /dev/null +++ b/Hcs.Client/GostXades/XadesInfo.cs @@ -0,0 +1,21 @@ +using System; +using System.Security.Cryptography.X509Certificates; + +namespace Hcs.GostXades +{ + public class XadesInfo + { + public byte[] RawCertData { get; } + public DateTime SigningDateTimeUtc { get; } + public int TimeZoneOffsetMinutes { get; } + + public XadesInfo(X509Certificate certificate) + { + var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.Now); + + RawCertData = certificate.GetRawCertData(); + SigningDateTimeUtc = DateTime.UtcNow; + TimeZoneOffsetMinutes = Convert.ToInt32(offset.TotalMinutes); + } + } +} diff --git a/Hcs.Client/Hcs.Client.csproj b/Hcs.Client/Hcs.Client.csproj new file mode 100644 index 0000000..4c83bf5 --- /dev/null +++ b/Hcs.Client/Hcs.Client.csproj @@ -0,0 +1,885 @@ + + + + + Debug + AnyCPU + {3AF820FD-6776-4C74-AA76-F918E60FE456} + Library + Properties + Hcs + Hcs.Client + v4.8 + 512 + 12.0 + false + + + + + + + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + Designer + + + + Designer + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + Designer + + + Designer + + + Designer + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + + Designer + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Designer + + + + + + Designer + + + + Designer + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + + Designer + + + + Designer + + + Designer + + + Designer + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + WCF Proxy Generator + Reference.cs + + + + + WCF Proxy Generator + Reference.cs + + + + + WCF Proxy Generator + Reference.cs + + + + + + + + + 2.3.1 + + + 13.0.3 + + + + + + \ No newline at end of file diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-service-async.wsdl b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-service-async.wsdl new file mode 100644 index 0000000..9f6409d --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-service-async.wsdl @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Загрузка в ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + Выгрузка из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + Загрузка в ГИС ЖКХ ответов на запросы о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + Выгрузка из ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + Результат обработки асинхронного вызова + + + + + + + + + Загрузка в ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + + + + + + + + + + Выгрузка из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + + + + + + + + + + Загрузка в ГИС ЖКХ ответов на запросы о наличии задолженности за ЖКУ (организациями, предоставляющими ЖКУ) + + + + + + + + + + + + + + + Выгрузка из ГИС ЖКХ запросов о наличии задолженности за ЖКУ (организациями, направляющими запросы) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Сервис управления запросами о наличии задолженности за ЖКУ + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-types.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-types.xsd new file mode 100644 index 0000000..362b807 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/debt-requests/hcs-debt-requests-types.xsd @@ -0,0 +1,1450 @@ + + + + + + + + + Импорт в ГИС ЖКХ запросов о наличии задолженности за ЖКУ. Доступны версии 13.1.10.1 и 14.0.0.0 + + + + + + + + Операция над запросом о наличии задолженности за ЖКУ + + + + + + + Идентификатор запроса о наличии задолженности за ЖКУ. + + Обязателен для операции Revoke. + + Для операции Send указывается в том случае, если поставщикам ЖКУ направляется уже существующий в ГИС ЖКХ запрос + + + + + Тип операции над запросом о наличии задолженности за ЖКУ. + + Допустимые значения: + Send - Направить запрос поставщикам ЖКУ; + Revoke - Отозвать запрос, ранее направленный поставщикам ЖКУ. + + Для операции Send должен быть указан хотя бы один из элементов requestGUID или requestData + + + + + Данные запроса о наличии задолженности за ЖКУ. + + Указывается только для операции Send. + + Если операция связана с уже существующим в ГИС ЖКХ запросом (указан элемент requestGUID), то контент элемента используется для изменения запроса перед его направлением поставщикам ЖКУ. В противном случае, контент элемента используется для создания в ГИС ЖКХ нового запроса, который направляется поставщикам ЖКУ + + + + + + + + + + + + + Проверка уникальности транспортного идентификатора в рамках запроса + + + + + + + Проверка уникальности подзапроса о наличии задолженности в рамках importDRsRequest + + + + + + + + + Экспорт из ГИС ЖКХ запросов о наличии задолженности за ЖКУ. Доступны версии 13.1.10.1 и 14.0.0.0 + + + + + + + Условия отбора запросов о наличии задолженности за ЖКУ + + + + Идентификатор запроса о наличии задолженности за ЖКУ + + + + + Номер запроса, присвоенный ГИС ЖКХ + + + + + Условия отбора по атрибутам запроса. + + Условия могут указываться в любых сочетаниях. В ответное сообщение будут включены только те запросы о задолженности, которые удовлетворяют ВСЕМ указанным условиям. Условие считается выполненным, если значение соответствующего атрибута запроса о задолженности + + либо совпадает с указанным в условии значением (применимо к элементу applicantInfo); + + либо совпадает с одним из указанных в условии значений (для элементов requestStatus, requestResult, houseGuid); + + либо попадает в заданный временной период (для элементов, задающих временной период) + + + + Период создания запроса в ГИС ЖКХ. + + Указываемый период не должен превышать 6-ти месяцев + + + + + Период направления запроса поставщикам ЖКУ. + + Указываемый период не должен превышать 6-ти месяцев + + + + + Период крайнего срока ответа на запрос + + + + + Информация о заявителе + + + + + + Идентификатор дома/помещения/комнаты в Реестре адресных объектов ГИС ЖКХ и Тип ОЖФ. +Указывается для версии 14.0.0.0 + + + + + Идентификатор дома в Реестре адресных объектов ГИС ЖКХ, по которому осуществляется запрос. +Указывается для версии 13.1.10.1 + + + + + + Статус запроса в ГИС ЖКХ. + + Допустимые значения: + Draft - Проект; + Processing - В обработке; + Sent - Направлен поставщикам ЖКУ; + Processed - Получен ответ; + Revoked - Отозван + + + + + Результат выполнения запроса о наличии задолженности за ЖКУ (НСИ #357) + + + + + Идентификатор, используемый для экспорта 2-го и последующих блоков данных. + + Если в элементе exportDRsRequest указаны условия отбора по атрибутам запроса, то экспорт запросов осуществляется блоками по 100 запросов в каждом блоке (последний блок может содержать меньшее число запросов). + + Для экспорта первого блока данных элемент не указывается. Для экспорта каждого следующего блока данных в элементе должно указываться значение элемента getStateResult/ exportDRsResult/ pagedOutput/ nextRequestGUID, полученное при экспорте предыдущего блока данных + + + + + + + + + + + + Результат экспорта из ГИС ЖКХ запросов о наличии задолженности за ЖКУ. Доступны версии 13.1.10.1 и 14.0.0.0 + + + + + + + + Результат выполнения запроса на экспорт из ГИС ЖКХ запросов о наличии задолженности за ЖКУ + + + + + + + + + + + + Тип для результата экспорта из ГИС ЖКХ запросов о наличии задолженности за ЖКУ + + + + + Данные запроса о наличии задолженности за ЖКУ + + + + + Запросы о наличии задолженности за ЖКУ, данные о которых не найдены в ГИС ЖКХ + + + + + + Идентификатор запроса о наличии задолженности за ЖКУ + + + + + Номер запроса, присвоенный ГИС ЖКХ + + + + + + + + Параметры, необходимые для экспорта следующего блока данных (см. аннотацию элемента exportDRsRequest/ exportRequestGUID). + + Заполняется, если в элементе exportDRsRequest указаны условия отбора по атрибутам запроса + + + + + + Идентификатор, который необходимо указать в элементе exportDRsRequest/ exportRequestGUID для экспорта следующего блока данных + + + + + Признак того, что текущий экспортируемый блок является последним + + + + + + + + + + + + Экспорт из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ, сформированных ГИС ЖКХ. Доступны версии 13.1.10.1 и 14.0.0.0 + + + + + + + + Условия отбора подзапросов + + + + Идентификатор подзапроса, сформированного ГИС ЖКХ + + + + + Номер запроса о наличии задолженности за ЖКУ, направленного в ГИС ЖКХ + + + + + Условия на атрибуты запроса / подзапроса + + + + Период направления запроса поставщикам ЖКУ. + Указываемый период не должен превышать 6-ти месяцев + + + + + + Идентификатор дома в Реестре адресных объектов ГИС ЖКХ, с которым связан запрос о наличии задолженности. +Указывается для версии 13.1.10.1 + + + + + Идентификатор дома/помещения/комнаты в Реестре адресных объектов ГИС ЖКХ и Тип ОЖФ. +Указывается для версии 14.0.0.0 + + + + + + Статус запроса, направленного в ГИС ЖКХ. + + Допустимые значения: + Sent - Направлен; + Processed - Получен ответ + + + + + Статус ответа на подзапрос, сформированный ГИС ЖКХ. + + Допустимые значения: + NotSent - Не отправлен; + Sent - Отправлен; + AutoGenerated - Сформирован автоматически + + + + + Идентификатор, используемый для экспорта 2-го и последующих блоков данных. + + Если в элементе exportDSRsRequest указаны условия отбора по атрибутам запроса/подзапроса, то экспорт подзапросов осуществляется блоками по 100 подзапросов в каждом блоке (последний блок может содержать меньшее число подзапросов). + + Для экспорта первого блока данных элемент не указывается. Для экспорта каждого следующего блока данных в элементе должно указываться значение элемента getStateResult/ exportDSRsResult/ pagedOutput/ nextSubrequestGUID, полученное при экспорте предыдущего блока данных + + + + + + + Признак включения в результат сведений об ответах на запросы о задолженности по ЖКУ. +Указывается для версии 13.1.10.1 + + + + + + + + + + + Результат экспорта из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ, сформированных ГИС ЖКХ. Доступны версии 13.1.10.1 и 14.0.0.0 + + + + + + + + Результат выполнения запроса на экспорт подзапросов о наличии задолженности за ЖКУ, сформированных ГИС ЖКХ + + + + + + + + + + + + Тип для результата экспорта из ГИС ЖКХ подзапросов о наличии задолженности за ЖКУ, сформированных ГИС ЖКХ + + + + + Данные подзапроса о наличии задолженности за ЖКУ + + + + + Запросы и подзапросы о наличии задолженности за ЖКУ, данные о которых не найдены в ГИС ЖКХ + + + + + + Идентификатор подзапроса, сформированного ГИС ЖКХ + + + + + Номер запроса о наличии задолженности за ЖКУ, направленного в ГИС ЖКХ + + + + + + + + Параметры, необходимые для экспорта следующего блока данных (см. аннотацию элемента exportDSRsRequest/ exportSubrequestGUID). + + Заполняется, если в элементе exportDSRsRequest указаны условия отбора по атрибутам запроса / подзапроса + + + + + + Идентификатор, который необходимо указать в элементе exportDSRsRequest/ exportSubrequestGUID для экспорта следующего блока данных + + + + + Признак того, что текущий экспортируемый блок является последним + + + + + + + + + + + Импорт в ГИС ЖКХ ответов на подзапросы о наличии задолженности за ЖКУ, сформированные ГИС ЖКХ + + + + + + + + Действие с ответом на подзапрос о наличии задолженности + + + + + + + Идентификатор подзапроса о наличии задолженности, сформированного ГИС ЖКХ + + + + + Тип операции с ответом на подзапрос. + + Допустимые значения: + Send - Отправить ответ; + Revoke - Отозвать ранее отправленный ответ + + + + + Ответ на подзапрос. + + Указывается только для операции Send. + + Если для подзапроса ответ уже существует в ГИС ЖКХ, то контент элемента используется для изменения ответа перед его отправкой. В противном случае, контент элемента используется для создания и отправки нового ответа + + + + + + + + + + + + + Проверка уникальности транспортного идентификатора в рамках запроса + + + + + + + Проверка уникальности подзапроса о наличии задолженности в рамках importDSRResponsesRequest + + + + + + + + + Возврат статуса и результатов отправленного сообщения + + + + + + + + Результат импорта + + + + + Результат выполнения запроса на экспорт из ГИС ЖКХ запросов о наличии задолженности за ЖКУ + + + + + Результат выполнения запроса на экспорт подзапросов о наличии задолженности за ЖКУ, сформированных ГИС ЖКХ + + + + + + + + + + + + + Информация о заявителе, указываемая в параметрах запроса + + + + + Имя + + + + + Фамилия + + + + + Отчество + + + + + СНИЛС + + + + + Документ, удостоверяющий личность заявителя + + + + + + + Информация о заявителе + + + + + Имя + + + + + Фамилия + + + + + Отчество + + + + + СНИЛС + + + + + Документ, удостоверяющий личность заявителя + + + + + + + Информация о задолженности, подтвержденной судебным актом + + + + + Информация о лице, в отношении которого имеется задолженность + + + + + + Имя + + + + + Фамилия + + + + + Отчество + + + + + СНИЛС + + + + + Документ, удостоверяющий личность + + + + + + + + Документ, подтверждающий задолженность + + + + + + Тип документа, для ответа на подзапрос (НСИ 358) + + + + + Прикрепленный файл + + + + + + + + + + Документ, удостоверяющий личность заявителя + + + + + Вид документа, удостоверяющего личность (НСИ #95) + + + + + Серия + + + + + + + + + + Номер + + + + + + + + + + + + Данные подзапроса о наличии задолженности за ЖКУ, сформированного ГИС ЖКХ + + + + + Идентификатор подзапроса, присвоенный в ГИС ЖКХ + + + + + Информация об исходном запросе в ГИС ЖКХ о наличии задолженности за ЖКУ + + + + + + Идентификатор запроса в ГИС ЖКХ + + + + + Номер запроса + + + + + Организация, + направившая запрос + + + + + Объект жилищного фонда (ОЖФ), по которому осуществляется запрос + + + + + Период, за который запрашивается задолженность + + + + + Статус запроса. + + Допустимые значения: + Sent - Направлен + Processed - Получен ответ + + + + + Дата направления запроса + + + + + Крайний срок ответа на запрос + + + + + Информация о сотруднике, сформировавшем запрос + + + + + + + + Статус ответа на подзапрос о наличии задолженности за ЖКУ. + + Допустимые значения: + NotSent - Не отправлен + Sent - Отправлен + AutoGenerated - Сформирован автоматически + + + + + Ответ на подзапрос + + + + + + Признак наличия задолженности, подтвержденной судебным актом + + + + + Информация о непогашенной задолженности, подтвержденной судебным актом + + + + + Дополнительный файл + + + + + Дополнительная информация + + + + + + + + + + Информация о сотруднике, сформировавшем ответ + + + + + + + + + + Информация об исполнителе + + + + + Идентификатор исполнителя + + + + + ФИО Исполнителя + + + + + + + Данные запроса о наличии задолженности за ЖКУ для экспорта из ГИС ЖКХ + + + + + Идентификатор запроса, присвоенный в ГИС ЖКХ + + + + + Номер запроса, присвоенный в ГИС ЖКХ + + + + + Информация о заявителе + + + + + Сведения об объекте жилищного фонда (ОЖФ), по которому осуществляется запрос + + + + + Период, за который запрашивается задолженность + + + + + Организация, + сформировавшая запрос + + + + + Информация о сотруднике, сформировавшем запрос + + + + + Статус запроса в ГИС ЖКХ. + + Допустимые значения: + Draft - Проект; + Processing - В обработке; + Sent - Направлен поставщикам ЖКУ; + Processed - Получен ответ; + Revoked - Отозван + + + + + Результат выполнения запроса. + + Допускаются любые значения из справочника ГИС ЖКХ "Результат запроса о наличии или отсутствии + задолженности за ЖКУ" (НСИ #345). Aктуальными + являются следующие значения: + 1 - Запрос не отправлен + 2 - Запрос ожидает ответа + 3 - Имеется информация о задолженности + 4 - Задолженности нет + 5 - Отсутствует размещенная информация в ГИС ЖКХ + 6 - Информация о задолженности отсутствует + 7 - Информация о задолженности не подтверждена поставщиком + + + + + Дата создания запроса + + + + + Дата направления запроса поставщикам ЖКУ + + + + + Крайний срок ответа на запрос + + + + + Запросы организациям, предоставляющим ЖКУ + + + + + + Организация, + предоставляющая ЖКУ + + + + + Ответ организации + + + + + + Способ формирования ответа. + + Допустимые значения: + Provided - Предоставлен организацией + AutoGenerated - Сформирован автоматически + + + + + Признак наличия задолженности, подтвержденной судебным актом + + + + + Информация о непогашенной задолженности, подтвержденной судебным актом + + + + + Дополнительный файл + + + + + Дополнительная информация + + + + + + + + + + Информация о сотруднике, сформировавшем ответ + + + + + + + + + + + + + Экспортируемые сведения об объекте жилищного фонда (ОЖФ), по которому осуществляется запрос + + + + + + Заполняется для запросов, направленных по версии 13.1.10.1 + + + + Идентификатор дома (либо в Реестре адресных объектов ГИС ЖКХ, либо в справочнике ФИАС) + + + + + Дополнительная информация об ОЖФ (номер квартиры / помещения, комнаты, блока жилого дома). + +Обязателен для ОЖФ, имеющих тип многоквартирный дом или жилой дом блокированной застройки. Не указывается для ОЖФ, имеющих тип жилой дом + + + + + + + + + + + Заполняется для запросов, направленных по версии 14.0.0.0 + + + + Идентификатор дома/помещения/комнаты в Реестре адресных объектов ГИС ЖКХ. + + + + + Тип объекта. + Возможные значения: + Appartment - Помещение/блок, + Room - Комната, + House - Жилой дом + Заполняется только для новой версии + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Адресная строка + + + + + + + + + + + + + Данные запроса о наличии задолженности за ЖКУ для импорта в ГИС ЖКХ + + + + + Информация о заявителе + + + + + Сведения об объекте жилищного фонда (ОЖФ), по которому осуществляется запрос + + + + + Идентификатор сотрудника, сформировавшего запрос + + + + + + + Данные подзапроса о наличии задолженности за ЖКУ для импорта в ГИС ЖКХ + + + + + Признак наличия задолженности, подтвержденной судебным актом + + + + + Дополнительный файл. + + Может быть указан, только если hasDebt=TRUE + + + + + Дополнительная информация + + + + + + + + + + Идентификатор сотрудника, сформировавшего ответ + + + + + Информация о непогашенной задолженности, подтвержденной судебным актом. + +Может быть указан, только если hasDebt=TRUE. + + + + Информация о непогашенной задолженности, подтвержденной судебным актом. Указывается, если ответ направляется без учета реестра сведений о задолженности. + +Может быть указан, только если hasDebt=TRUE. В этом случае элемент обязателен + + + + + Идентификатор записи реестра сведений о задолженности. Указывается при направлении ответа с учетом реестра сведений о задолженности. Может быть указан, только если hasDebt=TRUE. Необязателен для заполнения + + + + + + + + Сведения об организации + + + + + Корневой идентификатор организации (в Реестре организаций ГИС ЖКХ) + + + + + Наименование организации + + + + + Телефон организации + + + + + + + блок судебного акта + + + + + Номер судебного акта + + + + + + + + + + Дата вступления в силу судебного акта + + + + + + + Информация об аннулированном объекте жилищного фонда, указанном в записи в реестре сведений о задолженности. + Запролняется, если судебный акт ссылается на аннулированный в ГИС ЖКХ объект жилищного фонда. + + + + + Адрес аннулированного объекта жилищного фонда. + + + + + + + + + + Глобальный уникальный идентификатор аннулированного дома по ФИАС + + + + + Идентификационный код аннулированного дома в ГИС ЖКХ.Адреса объектов, добавленных по заявкам на добавление в ФИАС, выгружаются в открытой части ГИС ЖКХ в разделе «Регламенты и инструкции». + + + + + Глобальный уникальный идентификатор аннулированного объекта жилищного фонда в Реестре адресных объектов ГИС ЖКХ. + + + + + + + Информация о задолженности, подтвержденной судебным актом для экспорта ГИС ЖКХ + + + + + Информация о лице, в отношении которого имеется задолженность + + + + + + Имя + + + + + Фамилия + + + + + Отчество + + + + + СНИЛС + + + + + Документ, удостоверяющий личность + + + + + + + + Документ, подтверждающий задолженность + + + + + + Тип документа, для ответа на подзапрос (НСИ 358) + + + + + Прикрепленный файл + + + + + Идентификатор записи в реестре сведений о задолженности. + +Выгружается, если запрос на экспорт отправлен по новой версии (14.0.0.0) + + + + + Информация о судебном акте. + Обязательно для заполнения, если тип документа = судебный акт (заполняется для новой версии ответа на запрос). + +Выгружается, если запрос на экспорт отправлен по новой версии (14.0.0.0) + + + + + Информация об аннулированном объекте жилищного фонда, указанном в записи в реестре сведений о задолженности. + Запролняется, если судебный акт ссылается на аннулированный в ГИС ЖКХ объект жилищного фонда. + +Выгружается, если запрос на экспорт отправлен по новой версии (14.0.0.0) + + + + + + + + + + Сведения об объекте жилищного фонда (ОЖФ) для запроса экспорта запросов/подзапросов (версия 14.0.0.0) + + + + + Идентификатор дома/помещения/комнаты в Реестре адресных объектов ГИС ЖКХ. + + + + + Тип объекта. + Возможные значения: + Apartment - Помещение/блок, + Room - Комната, + House - Жилой дом + + + + + + + + Импортируемые сведения об объекте жилищного фонда (ОЖФ) в запросе + + + + + Указывается при направлении запроса по версии 13.1.10.1 + + + + Идентификатор дома (либо в Реестре адресных объектов ГИС ЖКХ, либо в справочнике ФИАС) + + + + + Дополнительная информация об ОЖФ (номер квартиры / помещения, комнаты, блока жилого дома). + +Обязателен для ОЖФ, имеющих тип многоквартирный дом или жилой дом блокированной застройки. Не указывается для ОЖФ, имеющих тип жилой дом + + + + + + + + + + + Указывается при направлении запроса по версии 14.0.0.0. + + + + + Идентификатор объекта жилищного фонда в Реестре адресных объектов ГИС ЖКХ. Обязателен для заполнения для всех типов, кроме жилой дом. Если тип = жилой дом. то может быть заполнен, либо HMObjectGUID, либо fiasHouseGUID + + + + + Тип объекта. + Возможные значения: + Apartment - Помещение/блок, + Room - Комната, + House - Жилой дом + + + + + + + Идентификатор ФИАС. Может быть заполнен, если тип объекта = жилой дом + + + + + + + + + Все статусы запроса в ГИС ЖКХ. + + Допустимые значения: + Draft - Проект; + Processing - В обработке; + Sent - Направлен поставщикам ЖКУ; + Processed - Получен ответ; + Revoked - Отозван + + + + + + + + + + + + Типы операций с запросами о наличии задолженности за ЖКУ. + + Допустимые значения: + Send - Направить запрос поставщикам ЖКУ; + Revoke - Отозвать запрос, ранее направленный поставщикам ЖКУ + + + + + + + + + Типы операций с ответами на подзапросы о наличии задолженности за ЖКУ. + + Допустимые значения: + Send - Отправить ответ; + Revoke - Отозвать ранее отправленный ответ + + + + + + + + + Скалярный тип для ввода ФИО + + + + + + + + + Скалярный тип для номера запроса + + + + + + + + Статус запроса, направленного в ГИС ЖКХ. + + Допустимые значения: + Sent - Направлен; + Processed - Получен ответ + + + + + + + + + Статус ответа на подзапрос, сформированный ГИС ЖКХ. + + Допустимые значения: + NotSent - Не отправлен; + Sent - Отправлен; + AutoGenerated - Сформирован автоматически + + + + + + + + + + Способ формирования ответа на подзапрос. + + Допустимые значения: + Provided - Предоставлен организацией; + AutoGenerated - Сформирован автоматически + + + + + + + + + Тип для ввода СНИЛС + + + + + + + + Тип ОЖФ. Возможные значения: Apartment - Помещение, Room - Комната, House - Жилой дом, HouseBlock - Блок в жилом доме + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-service-async.wsdl b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-service-async.wsdl new file mode 100644 index 0000000..258a6f9 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-service-async.wsdl @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Передать показания ПУ + + + + + + Получить историю показаний ПУ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Асинхронный сервис управления приборами учета и передачей показаний + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-types.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-types.xsd new file mode 100644 index 0000000..657b015 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/device-metering/hcs-device-metering-types.xsd @@ -0,0 +1,1001 @@ + + + + + + + + + Показание однотарифного ПУ. Используется при импорте текущих и контрольных показаний ПУ + + + + + + + Дата снятия показания + + + + + + + + + + Показание однотарифного ПУ. Используется при импорте текущих и контрольных показаний ПУ + + + + + + + Дата снятия показания + + + + + + + + + + Данные ПУ, измеряющего объем потребления КР. Используется при импорте текущих и контрольных объемов + + + + + + + Дата снятия показания + + + + + + + + + + Базовые показания однотарифного ПУ: коммунальный ресурс, значение показания в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ, дата-время внесения в Систему. Используется при экспорте базовых показаний ПУ и показаний на начало / окончание поверки + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Заполняется, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + Значение показания ПУ, выраженное в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + + + + + Показания многотарифного ПУ: значения показаний в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ, дата-время внесения в Систему. Используется при экспорте базовых показаний ПУ и показаний на начало / окончание поверки + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Заполняется, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + Значения показаний ПУ, выраженные в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + + + + + Текущие показания однотарифного ПУ: расширяет тип базовых показаний однотарифного ПУ датой снятия показаний. Используется при экспорте текущих и контрольных показаний ПУ + + + + + + + Дата снятия показания + + + + + + + + + Текущие показания многотарифного ПУ: расширяет тип базовых показаний многотарифного ПУ датой снятия показаний. Используется при экспорте текущих и контрольных показаний ПУ электроэнергии + + + + + + + Дата снятия показания + + + + + + + + + Данные текущих показаний ПУ, измеряющего объем потребляемого коммунального ресурса: коммунальный ресурс, значение показания в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ. Используется при экспорте показаний на начало / окончание поверки + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела данные в Систему. Не заполняется, если данные были введены гражданином + + + + + Дата и время внесения в Систему + + + + + Код единицы измерения объемов потребления (из расширенного классификатора ОКЕИ). Заполняется, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + Значения объемов потребления ПУ, выраженные в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + + + + + Данные текущих показаний ПУ, измеряющего объем потребляемого коммунального ресурса: расширяет базовый тип датой снятия показаний. Используется при экспорте текущих и контрольных показаний + + + + + + + Дата снятия показания + + + + + + + + + Экспортируемые виды показаний ПУ (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (используется при экспорте показаний) + + + + + Объем потребления за период + + + + + + + + Период, к которому относятся показания + + + + + + + + + + Контрольный объем + + + + + Данные поверки, ПУ остается прежним + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Объем на начало поверки + + + + + Объем на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + + + + Импорт показаний приборов учета. Показания импортируются в единицах измерения, которые назначены прибору учета при его создании. (Допустимы следующие ЕИ: для коммунальных ресурсов "Холодная вода", "Горячая вода", "Сточные бытовые воды" - 112 (Литр) и 113 (Кубический метр); для КР "Электрическая энергия" - 245 (Киловатт-час); для КР "Газ" - 113 (Кубический метр); для КР "Тепловая энергия" - 233 (Гигакалория), 245 (Киловатт-час), 246 (Мегаватт-час), 271 (Джоуль), A056 (Гигаджоуль) и A058 (Мегаджоуль)) + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Показания и объемы потребленных ресурсов ПУ + + + + + + + Идентификатор ПУ + + + + + Идентификатор версии ПУ + + + + + + + Показания по ПУ (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих показания + + + + + + Показания за период + + + + + + + + Период, за который передаются показания. + +Если не указан, то показания относятся к месяцу Даты снятия показаний + + + + + + + + + + Контрольное показание + + + + + Показание поверки, ПУ остается прежним либо архивируется в случае выхода из строя + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Показание на начало поверки + + + + + Показание на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + + + + + Показания по ПУ (электрическая энергия). Указывается только для ПУ, предоставляющих показания + + + + + + Показания за период + + + + + + + + Период, за который передаются показания. + +Если не указан, то показания относятся к месяцу Даты снятия показаний + + + + + + + + + + Контрольное показание + + + + + Показание поверки, ПУ остается прежним либо архивируется в случае выхода из строя + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Показание на начало поверки + + + + + Показание на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + + + + + Объемы потребленных ресурсов по ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих объем потребленного КР + + + + + + Объем потребления за период + + + + + + + + Период, за который передаются показания. + +Если не указан, то показания относятся к месяцу Даты снятия показаний + + + + + + + + + + Контрольный объем + + + + + Сведения о поверке, ПУ остается прежним либо архивируется в случае выхода из строя + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Объем на начало поверки + + + + + Объем на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Экспорт истории показаний и поверок приборов учета (ПУ) пользователя, установленных в указанном доме. Допускается указание нескольких домов. Также допускается не указывать ни одного дома (в этом случае экспортируются данные по всем ПУ пользователя). Если запрошен экспорт по 2-м и более (или всем) домам, то данные экспортируются блоками, содержащими не более 1000 ПУ в каждом блоке. Для экспорта 2-го и последующих блоков необходимо повторить запрос с теми же значениями параметров и указать в нем элемент ExportMeteringDeviceRootGUID + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС, в котором установлен ПУ пользователя. Допускается указание нескольких элементов. Если не указан, то будут экспортироваться данные по всем ПУ пользователя + + + + + Идентификатор ПУ в ГИС ЖКХ, используемый для экспорта 2-го и последующих блоков данных (см. аннотацию корневого элемента). Должно указываться значение, полученное в элементе exportMeteringDeviceHistoryResult/PagedOutput/ExportMeteringDeviceRootGUID при экспорте предыдущего блока данных. Для выгрузки первого блока данных элемент не указывается + + + + + + Тип прибора учета (НСИ 27) + + + + + Вид коммунального ресурса (НСИ 2) + + + + + Идентификатор ПУ + + + + + + Дата ввода в эксплуатацию «С» + + + + + Дата ввода в эксплуатацию «По» + + + + + Выгружать архивированные + + + + + Дата архивации «С» + + + + + Дата архивации «По» + + + + + Дата начала периода, за который выгружаются показания и поверки ПУ (по дате снятия показаний). Значение по умолчанию: 1-е число предыдущего календарного месяца. Период выгрузки показаний ПУ (определяемый элементами inputDateFrom и inputDateTo) не должен выходить за пределы двух последовательных календарных месяцев + + + + + Дата окончания периода, за который выгружаются показания и поверки ПУ (по дате снятия показаний). Значение по умолчанию: текущая дата. Период выгрузки показаний ПУ (определяемый элементами inputDateFrom и inputDateTo) не должен выходить за пределы двух последовательных календарных месяцев + + + + + Если флаг сброшен или отсутствует, то показания, введенные в Систему гражданином, включаются в выгрузку. Если флаг установлен, то такие показания в выгрузку не включаются + + + + + Если флаг сброшен или отсутствует, то показания, введенные в Систему текущей организацией, включаются в выгрузку (при условии, что не установлен флаг excludeISValues). Если флаг установлен, то такие показания в выгрузку не включаются + + + + + Если флаг сброшен или отсутствует, то показания, введенные в Систему организациями отличной от текущей, включаются в выгрузку. Если флаг установлен, то такие показания в выгрузку не включаются + + + + + Если флаг установлен, то в выгрузку включаются только показания, введенные в личном кабинете или загруженные организациями отличной от текущей. В остальных случаях выгружаются все показания. (Устаревшая функциональность, которая перекрывается флагами ExcludePersonAsDataSource, ExcludeCurrentOrgAsDataSource, ExcludeOtherOrgAsDataSource) + + + + + + + + + + + Экспорт показаний и поверок приборов учета. Значения показаний и поверок указываются в единицах измерения (ЕИ), которые назначены прибору учета при его создании. Если ЕИ прибора учета отличается от ЕИ коммунального ресурса (КР) по умолчанию, то дополнительно указываются значения показаний и поверок в ЕИ КР по умолчанию + + + + + Идентификатор ПУ + + + + + Уникальный идентификатор дома-места установки ПУ (в ГИС ЖКХ). Заполняется всегда, кроме случая, когда в запросе exportMeteringDeviceHistoryRequest указан ровно один элемент tns:FIASHouseGuid + + + + + Уникальный идентификатор дома-места установки ПУ (по ФИАС). Заполняется всегда, кроме случая, когда в запросе exportMeteringDeviceHistoryRequest указан ровно один элемент tns:FIASHouseGuid + + + + + + Показания ПУ расхода холодной/горячей воды; газа; тепловой энергии. Указывается только для ПУ, предоставляющих показания + + + + + + Базовое показание + + + + + Показание + + + + + + Показание за период + + + + + + + + Период, к которому относятся показания + + + + + + + + + + Контрольное показание + + + + + Показание поверки, ПУ остается прежним + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Показание на начало поверки + + + + + Показание на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + Выгрузить показания, поставщик которых не текущая ИС. +(Часть показаний может быть внесена не только через ГУИ, а с помощью другой ИС) Если флаг = "истина", то выгружаются показания, созданные через ГУИ и с помощью других ИС, в остальных случаях выгружаются все показания + + + + + + + + + + + Показания ПУ расхода электроэнергии. Указывается только для ПУ, предоставляющих показания + + + + + + Базовое показание + + + + + Показание + + + + + + Показания за период + + + + + + + + Период, к которому относятся показания + + + + + + + + + + Контрольное показание + + + + + Показание поверки, ПУ остается прежним + + + + + + Дата начала поверки + + + + + Дата окончания поверки + + + + + Дата опломбиролвания ПУ после поверки + + + + + Показание на начало поверки + + + + + Показание на окончание поверки + + + + + + Признак плановой поверки + + + + + Причина выхода ПУ из строя (НСИ 224). Вносится при неплановой поверке. + + + + + + + + + Выгрузить показания, поставщик которых не текущая ИС. +(Часть показаний может быть внесена не только через ГУИ, а с помощью другой ИС) Если флаг = "истина", то выгружаются показания, созданные через ГУИ и с помощью других ИС, в остальных случаях выгружаются все показания + + + + + + + + + + + Объемы потребления ресурсов ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих объем потребленного КР + + + + + + + + Выгрузить данные, поставщик которых не текущая ИС. +(Часть данных может быть внесена не только через ГУИ, а с помощью другой ИС) Если флаг = "истина", то выгружаются данные, созданные через ГУИ и с помощью других ИС, в остальных случаях выгружаются все данные + + + + + + + + + + + Данные об архивации ПУ + + + + + + Причина архивации. Ссылка на НСИ "Причина архивации прибора учета" (реестровый номер 21). + + + + + + + + + + + Возврат статуса отправленного сообщения + + + + + + + + + + + + Параметры, используемые для выгрузки показаний и поверок ПУ блоками, содержащими не более 1000 ПУ в каждом блоке. Заполняется всегда, кроме случая, когда в запросе exportMeteringDeviceHistoryRequest указан ровно один элемент tns:FIASHouseGuid + + + + + + Корневой идентификатор ПУ в ГИС ЖКХ для получения следующего блока запроса + + + + + Признак последнего блока запроса + + + + + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-service-async.wsdl b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-service-async.wsdl new file mode 100644 index 0000000..c96f30d --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-service-async.wsdl @@ -0,0 +1,1049 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Передать данные ПУ + + + + + + Получить перечень ПУ + + + + + + + + + + + Cоздание/редактирование, удаление, пролонгация, расторжение ДУ + + + + + + Cоздание/редактирование, удаление, пролонгация, расторжение устава + + + + + + Экспорт статусов договоров управления, уставов, доп. соглашений + + + + + + ВИ_ИРАО_ДОМ_ЭКСП. Экспорт данных дома. + + + + + + ВИ_ИЛС_СЗЛС. передать данные лицевых счетов + + + + + + ВИ_ИЛС_РЛС. получить перечень лицевых счетов + + + + + + Импорт ДОИ (Договор на пользование общим имуществом) + + + + + + Экспорт списка ДОИ + + + + + + ВИ_ИО_И_1. Импорт новостей для информирования граждан + + + + + + Импорт протокола ОСС + + + + + + Экспорт протокола ОСС + + + + + + Импорт решения собственника по вопросам голосования + + + + + + Экспорт решений собственников по вопросам голосования + + + + + + Экспорт договоров управления, уставов, доп. соглашений + + + + + + Импорт данных дома для полномочия УО + + + + + + Импорт данных дома для полномочия ОМС + + + + + + Импорт данных дома для полномочия ЕСП + + + + + + Импорт договора ресурсоснабжения с РСО + + + + + + Экспорт договоров ресурсоснабжения + + + + + + Импорт индивидуальных услуг лицевого счета + + + + + + Экспорт индивидуальных услуг лицевого счета + + + + + + Экспорт объектов жилищного фонда из договоров ресурсоснабжения + + + + + + Импорт информации об объектах жилищного фонда в договор ресурсоснабжения + + + + + + Импорт проекта договора ресурсоснабжения + + + + + + Экспорт статусов автопролонгации договоров управления, уставов + + + + + + Экспорт сокращенного состава информации о договоре ресурсоснабжения + + + + + + Экспорт краткой информации о договоре найма + + + + + + Операция сноса дома + + + + + + Экспорт краткой базовой информации о доме + + + + + + Экспорт краткой информации о жилом доме + + + + + + Экспорт краткой информации о многоквартирном доме + + + + + + Импорт итогов голосования, проведенного с использованием системы, отличной от ГИС ЖКХ + + + + + + Импорт сообщения о проведении ОСС + + + + + + Экспорт сообщения о проведении ОСС + + + + + + Импорт письменных отказов собственников + + + + + + Экспорт письменных отказов собственников + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Сервис управления объектами РАО + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-types.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-types.xsd new file mode 100644 index 0000000..94f5535 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/house-management/hcs-house-management-types.xsd @@ -0,0 +1,19584 @@ + + + + + + + + + + + + + + + Импорт данных дома. В ответ на запрос формируется статус обработки данных многоквартирного дома. ImportResult содержит результат обработки данных дома (В GUID содержится FIASHouseGuid входных данных, UniqueNumber содержит Уникальный номер дома), помещений (UniqueNumber содержит Уникальный номер помещения), комнат (UniqueNumber содержит Уникальный номер комнаты). Доступны версии 11.0.10.1, 13.2.3.2 + + + + + + + + + Многоквартирный дом + + + + + + + Добавление многоквартирного дома + + + + + + + + + + + + + + Изменение данных многоквартирного дома + + + + + + + + + + + + + + + Нежилое помещение + + + + Добавление нежилого помещения + + + + + + + + + + + + + + Изменение данных нежилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Подъезды и жилые помещения + + + + + Добавление нового подъезда + + + + + + + + + + + + + + Изменение подъезда + + + + + + + + + Идентификатор подъезда + + + + + + + + + + + Жилое помещение + + + + + + + Добавление жилого помещения + + + + + + + + + + + + + + Изменение данных жилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Комната в квартире коммунального заселения + + + + Добавление комнаты + + + + + + + + + + + + + + Изменение комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + Добавление нового лифта + + + + + + + + + + + + + + Изменение лифта + + + + + + + + + Идентификатор лифта + + + + + + + + + + + + + + + Жилой дом + + + + + + + Добавление жилого дома + + + + + + + + + + + + + + Изменение данных жилого дома + + + + + + + + + + + + + + + + Комнаты (для обычных ЖД) + + + + Добавление комнаты + + + + + + + + + + + + + + Обновление комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + Блоки (для ЖД блокированной застройки) + + + + + + + Создание блока + + + + + + + + + + + + + + Обновление блока + + + + + + + + + Идентификатор блока жилого дома + + + + + + + + + + + Комнаты в блоке + + + + Добавление комнаты + + + + + + + + + + + + + + Обновление комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Импорт данных дома. В ответ на запрос формируется статус обработки данных многоквартирного дома. ImportResult содержит результат обработки данных дома (В GUID содержится FIASHouseGuid входных данных, UniqueNumber содержит Уникальный номер дома), помещений (UniqueNumber содержит Уникальный номер помещения), комнат (UniqueNumber содержит Уникальный номер комнаты). Доступны версии 11.5.0.2, 13.2.3.2 + + + + + + + + + Многоквартирный дом + + + + + + + Добавление многоквартирного дома + + + + + + + + Cпособ управления домом (НСИ 25). Разрешено предавать параметр только при отсутствии информации об управлении МКД (отсутствует запись в РИСУ и/или не размещён договор управления/устав): +- Не выбран +- Непосредственное управление. + + + + + + + + + + + + Изменение данных многоквартирного дома + + + + + + + + + Cпособ управления домом (НСИ 25). Разрешено предавать параметр только при отсутствии информации об управлении МКД (отсутствует запись в РИСУ и/или не размещён договор управления/устав): +- Не выбран +- Непосредственное управление. + + + + + + + + + + + + Нежилое помещение + + + + Добавление нежилого помещения + + + + + + + + + + + + + + Изменение данных нежилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Подъезд + + + + + Добавление нового подъезда + + + + + + + + + + + + + + Изменение подъезда + + + + + + + + + Идентификатор подъезда + + + + + + + + + + + Жилое помещение + + + + + + + Добавление жилого помещения + + + + + + + + + + + + + + Изменение данных жилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Комната в квартире коммунального заселения + + + + Добавление комнаты + + + + + + + + + + + + + + Изменение комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + Добавление нового лифта + + + + + + + + + + + + + + Изменение лифта + + + + + + + + + Идентификатор лифта + + + + + + + + + + + + + + + Жилой дом + + + + + + + Добавление жилого дома + + + + + + + + + Не применимо для ЖД + + + + + + + + + + Изменение данных жилого дома + + + + + + + + + Не применимо для ЖД + + + + + + + + + + + + Комнаты (для обычных ЖД) + + + + Добавление комнаты + + + + + + + + + + + + + + Обновление комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + Блоки (для ЖД блокированной застройки) + + + + + + + Создание блока + + + + + + + + + + + + + + Обновление блока + + + + + + + + + Идентификатор блока жилого дома + + + + + + + + + + + Комнаты в блоке + + + + Добавление комнаты + + + + + + + + + + + + + + Обновление комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Импорт данных дома. В ответ на запрос формируется статус обработки данных многоквартирного дома. ImportResult содержит результат обработки данных дома (В GUID содержится FIASHouseGuid входных данных, UniqueNumber содержит Уникальный номер дома), помещений (UniqueNumber содержит Уникальный номер помещения), комнат (UniqueNumber содержит Уникальный номер комнаты). Доступны версии 11.6.0.2, 13.2.3.2 + + + + + + + + Многоквартирный дом + + + + + + + Добавление многоквартирного дома + + + + + + + + + Разрешено предавать параметр только при отсутствии информации об управлении МКД (отсутствует запись в РИСУ и/или не размещён договор управления/устав): +- Не выбран +- Непосредственное управление. + + + + + + + + + + + Изменение данных многоквартирного дома + + + + + + + + + Разрешено предавать параметр только при отсутствии информации об управлении МКД (отсутствует запись в РИСУ и/или не размещён договор управления/устав): +- Не выбран +- Непосредственное управление. + + + + + + + + + + + + Нежилое помещение + + + + Добавление нежилого помещения + + + + + + + + + + + + + + Изменение данных нежилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Подъезды и жилые помещения + + + + + Добавление нового подъезда + + + + + + + + + + + + + + Изменение подъезда + + + + + + + + + Идентификатор подъезда + + + + + + + + + + + Жилое помещение + + + + + + + Добавление жилого помещения + + + + + + + + + + + + + + Изменение данных жилого помещения + + + + + + + + + Идентификатор помещения + + + + + + + + + + + Комната в квартире коммунального заселения + + + + Добавление комнаты + + + + + + + + + + + + + + Изменение комнаты + + + + + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + Добавление нового лифта + + + + + + + + + + + + + + Изменение лифта + + + + + + + + + Идентификатор лифта + + + + + + + + + + + + + + + + + + + + + + + + + + Запрос на экспорт информации о доме. + +Доступны версии: 11.1.0.1, 12.2.0.1 и 13.2.3.2 + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + + + + + Ответ на экспорт информации о доме. + + + + + Уникальный номер дома + + + + + Дата модификации данных дома + + + + + + Многоквартирный дом + + + + + + + + Подъезд + + + + + + + + Дата модификации данных подъезда + + + + + Идентификатор подъезда + + + + + + + + + + Жилое помещение + + + + + + + + Уникальный номер помещения + + + + + Дата модификации данных помещения + + + + + Комната в квартире коммунального заселения + + + + + + + + Уникальный номер комнаты + + + + + Дата модификации данных комнаты + + + + + Идентификатор комнаты + + + + + + + + + + Идентификатор помещения + + + + + + + + + + Лифты + + + + + + + + Дата модификации данных лифта + + + + + Идентификатор лифта + + + + + + + + + + Нежилое помещение + + + + + + + + Уникальный номер помещения + + + + + Дата модификации данных помещения + + + + + Идентификатор помещения + + + + + + + + + + Cпособ управления домом (НСИ 25). + + + + + + + + + + Жилой дом + + + + + + + + + Комнаты (для обычного жилого дома) + + + + + + + + Уникальный номер комнаты + + + + + Дата модификации данных комнаты + + + + + Идентификатор комнаты + + + + + + + + + + Блоки (для жилого дома блокированной застройки) + + + + + + + + Уникальный номер блока + + + + + Дата модификации данных блока + + + + + Идентификатор блока жилого дома + + + + + Комната в блоке + + + + + + + + Уникальный номер комнаты + + + + + Дата модификации данных комнаты + + + + + Идентификатор комнаты + + + + + + + + + + + + + + + + Актуальная версия сведений о доме + + + + + + + + + + + + + + Снос дома. В ответ на запрос формируется статус обработки данных дома. ImportResult содержит результат обработки данных дома (В GUID содержится FIASHouseGuid входных данных, UniqueNumber содержит Уникальный номер дома). + + + + + + + + + Тип, описывающий запрос на снос дома + + + + + + + + + + + + + Информация о сносе дома + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Дата сноса + + + + + Основание сноса. Обязательно для домов, не признанных аварийными + + + + + + + + Причина сноса + + + + + Документ + + + + + Описание + + + + + + + + Запрос на экспорт краткой базовой информации о доме. Доступны версии 12.2.1.2, 13.2.3.2 + + + + + + + + Элемент поискового запроса. Один элемент - одна операция поиска дома + + + + + + + + + + + + + + + Запрос на экспорт краткой информации о жилом доме. Доступны версии 12.2.1.2, 13.2.3.2 + + + + + + + + Элемент поискового запроса. Один элемент - одна операция поиска дома + + + + + + + + + + + + + + + Запрос на экспорт краткой информации о многоквартирном доме. Доступны версии 12.2.1.2, 13.2.3.2 + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС или в ГИС ЖКХ + + + + + + + + + + + + Тип данных, описывающий запрос на экспорт краткой базовой информации об одном доме + + + + + + Критерий поиска + + + + + + + Критерии поиска дома + + + + + Уникальный номер дома + + + + + Уникальный номер помещения + + + + + Уникальный номер комнаты + + + + + Уникальный номер блока + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + Результат экпорта краткой базовой информации об одном доме. + + + + + Транспортный идентификатор + + + + + + Базовая информация о доме + + + + + Описание ошибки + + + + + + + + Тип данных, описывающий запрос на экспорт краткой информации об одном жилом доме + + + + + + Глобальный уникальный идентификатор дома по ФИАС или в ГИС ЖКХ + + + + + + + Результат запроса краткой информации о жилом доме. + + + + + Транспортный идентификатор + + + + + + Базовая информация о доме + + + + + Описание ошибки + + + + + + + + Кратка базовая информация о доме + + + + + Информация о расположении дома + + + + + Базовые характеристики дома в реестре адресных объектов ГИС ЖКХ + + + + + + + Краткая информация о базовых характеристиках дома в реестре адресных объектов ГИС ЖКХ + + + + + Уникальный номер дома + + + + + Состояние (НСИ 24) + + + + + + Стадия жизненного цикла (НСИ 338) + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Идентификатор управляющей организации + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Дата сноса + + + + + Основание сноса (описание) + + + + + Признак асинхронной обработки - для дома запущена процедура аннулирования или сохранения информации о сносе + + + + + Данные общежития + + + + + + + Краткая информация о расположении дома + + + + + Уникальный идентификатор адреса дома, присвоенный ГИС ЖКХ + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Неформализованное описание адреса + + + + + + + + + + + Guid записи родительского объекта (улицы) + + + + + Номер дома + + + + + + + + + + + Номер корпуса + + + + + + + + + + + Номер строения + + + + + + + + + + + Признак владения: +0 – не определено; +1 – владение; +2 – дом; +3 – домовладение; +4 - участок; +5 - здание; +6 - шахта; +7 - подвал; +8 - котельная; +9 - погреб; +10 - объект незавершенного строительства. + + + + + + + + + + + + + + + + + + + + + + Признак строения: +0 – не определено; +1 – строение; +2 – сооружение; +3 – литер. + + + + + + + + + + + + + + + Краткая информация о жилом доме + + + + + Уникальный идентификатор адреса дома, присвоенный ГИС ЖКХ + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Уникальный номер дома + + + + + Дата модификации данных дома + + + + + Жилой дом блокированной застройки + + + + + Несколько жилых домов с одинаковым адресом + + + + + + Блоки (для жилого дома блокированной застройки) + + + + + Комнаты (для обычного жилого дома) + + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Дата сноса + + + + + Основание сноса (описание) + + + + + Признак асинхронной обработки - для дома запущена процедура аннулирования или сохранения информации о сносе + + + + + Данные общежития + + + + + + + Краткая информация о многоквартирном доме + + + + + Уникальный идентификатор адреса дома, присвоенный ГИС ЖКХ + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Уникальный номер дома + + + + + Дата модификации данных дома + + + + + Подъезд + + + + + Жилое помещение + + + + + Нежилое помещение + + + + + Cпособ управления домом (НСИ 25). + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Дата сноса + + + + + Основание сноса (описание) + + + + + Признак асинхронной обработки - для дома запущена процедура аннулирования или сохранения информации о сносе + + + + + Данные общежития + + + + + + + Краткая информация о блоке в жилом доме блокированной застройки + + + + + Идентификатор блока + + + + + Уникальный номер блока + + + + + Номер блока + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + Комната в квартире коммунального заселения + + + + + + + Краткая информация о подъезде + + + + + Идентификатор подъезда + + + + + Номер подъезда +(Может быть не заполнен для группирующих домов) + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Краткая информация о нежилом помещении + + + + + Идентификатор помещения + + + + + Уникальный номер помещения + + + + + Номер помещения + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + Краткая информация о жилом помещении + + + + + Идентификатор помещения + + + + + Уникальный номер помещения + + + + + Номер помещения + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Признак отсутствия подъезда + + + + + + Комната в квартире коммунального заселения + + + + + + + Краткая информация о комнате + + + + + Идентификатор комнаты + + + + + Уникальный номер комнаты + + + + + Номер комнаты + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + Импорт лицевых счетов. В ImportResult/CRUDResult/UniqueNumber содержится уникальный номер счета, присвоенный ЛС в ГИС ЖКХ + + + + + + + + Перечень ЛС + + + + + + + + + + Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС) + + + + + Конкретизация оснований ЛС (договоров ресурсоснабжения, договоров социального найма, договоров по обращению с ТКО) + + + + + + + + + + + + + + + + + + + Проверка уникальности идентификатора ЛС в рамках запроса + + + + + + + + + Экспорт лицевых счетов + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС) + + + + + + + + + + + + + Ответ на запрос экспорта лицевых счетов + + + + + + + Основания ЛС + + + + + + + + + + + + + + + + + + + + + + Протокол решения собственников о выбранном способе формирования фонда капитального ремонта + + + + + + Идентификатор протокола решения собственников о выбранном способе формирования фонда капитального ремонта + + + + + + + + Решение ОМС о выбранном способе формирования фонда капитального ремонта + + + + + + Идентификатор решения ОМС о выбранном способе формирования фонда капитального ремонта + + + + + + + + + + + + + Номер лицевого счета/Иной идентификтатор плательщика + + + + + + + + + + + Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС) + + + + + + + + + + + + Импорт индивидуальных услуг ЛС + + + + + + + + Создание/обновление индивидуальной услуги ЛС +AccountGUID - для создания индивидуальной услуги ЛС +IndividualServiceGUID - для обновления индивидуальной услуги ЛС + + + + + + + + + + + Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС) + + + + + + + + + + + + Удаление индивидуальной услуги + + + + + + + + + + + + + + + + + + + + + + Экспорт индивидуальных услуг лицевого счета + + + + + + + + + + + + + + + + Ответ на запрос экспорта индивидуальных услуг лицевого счета + + + + + + + + Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС) + + + + + Услуга связана с лицевыс счетом? + + + + + + + + + + Передать данные приборов учета +(Создание ПУ или обновление данных о ПУ (в том числе замена ПУ, архивация ПУ)) + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Приборы учета + + + + + + + + Данные ПУ для добавления в ГИС ЖКХ + + + + + Изменение существующего в ГИС ЖКХ ПУ (в том числе замена ПУ, архивация ПУ) + + + + + + Идентификатор версии ПУ (для обновления данных) + + + + + + Обновление характеристик ПУ до начала внесения показаний. Необходимо прислать все актуальные сведения по ПУ + + + + + Обновление характеристик ПУ после начала внесения показаний + + + + Контроль дублирования ЛС + + + + + + + + Связать ПУ с другими заведенными в ГИС ЖКХ ПУ. Операция возможна только, если для текущего ПУ установлен признак "Объем ресурса(ов) определяется с помощью нескольких приборов учета". Необходимо присылать актуальную коллекцию связанных ПУ + + + + + + Идентификатор версии ПУ, заведенного в ГИС ЖКХ, с которым требуется установить связь текущего ПУ + + + + + + + + Архивация ПУ без замены на другой ПУ + + + + + + Причина архивации. Ссылка на НСИ "Причина архивации прибора учета" (реестровый номер 21). + + + + + + + + Архивация ПУ с заменой на другой ПУ + + + + + + Дата поверки + + + + + + Замена в рамках плановой поверки + + + + + Замена в рамках неплановой поверки - указывается Причина выхода ПУ из строя (НСИ 224). + + + + + + Показания ПУ при его замене + + + + Показания по ПУ (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих показания + + + + + Показания по ПУ (электрическая энергия). Указывается только для ПУ, предоставляющих показания + + + + + Объемы по ПУ. Указывается только для ПУ, предоставляющих объемы потребления КР + + + + + + Заменить на существующий (идентификатор версии ПУ в ГИС ЖКХ) + + + + + + + + + + + + + + + + + + + + + + + + + + Экспорт ПУ + + + + + + + + + Идентификатор ПУ в ГИС ЖКХ + + + + + Идентификатор версии ПУ + + + + + + Выгружать ПУ, находящиеся в собственности или на ином законном основании только текущей организации (критерий применяется только для ОДПУ) (если признак не установлен, то будут выгружены все ОДПУ, доступные текущей организации для просмотра) + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Дата модификации + + + + + + Вид прибора учета (НСИ 27) + + + + + Коммунальный ресурс (НСИ 2) + + + + + + Дата архивации «По» + + + + + Дата архивации «С» + + + + + Выгружать архивированные + + + + + Дата ввода в эксплуатацию «По» + + + + + Дата ввода в эксплуатацию «С» + + + + + + + Включать в выгрузку для МКД и ЖД глобальный уникальный идентификатор дома по ФИАС + + + + + + + + + + + Ответ на запрос экспорта ПУ + + + + + + + Идентификатор ПУ в ГИС ЖКХ + + + + + Статус сущности +Допустимые значения: +Active-Активный +Archival-Архивный + + + + + + + + + + + Идентификатор версии ПУ + + + + + Номер версии + + + + + Статус версии + + + + + Дата модификации + + + + + Организация, у которой прибор учета находится на праве собственности или на ином законном основании + + + + + + + + + + Номер прибора учета в ГИС ЖКХ + + + + + + + + + + Импорт сведений о ДУ + + + + + + + + + + + + + + + Создание ДУ + + + + + + + + + Объект управления + + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + + + + + + + + + + + Внесение изменений в версию ДУ + + + + + + + + Формировать заявки на проверки сведений для ГЖИ при возникновении конфликтов сведений об управляемых объектов с реестром лицензий/реестром информации о способах управления МКД + + + + + Управляемый объект + + + + + + + + Добавление + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + + + + + + Изменение + + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + + + + + + Аннулирование + + + + + + + + + + + + + + + Разрешить (true) или запретить (false) передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. Если признак не передан, исползуется значение глобальной настройки "Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета в любой день месяца по всем договорам". Может быть передан только если есть хотя бы один объект управления в статусе "Утвержден". + + + + + + + + + + Утверждение ДУ, в отношении которого были одобрены заявки на включение управляемых объектов в РЛ + + + + + + + + + + + + + + Пролонгация ДУ + + + + + + + + + + Пролонгировать до даты. Если не указано, то договор пролонгируется на срок, равный Дата окончания действия - Дата вступления в силу. + + + + + + + + + + Расторжение ДУ + + + + + + + + + Ссылка на НСИ "54 Причина расторжения договор" (реестровый номер 54) + + + + + Основание + + + + + + + + + + + Аннулирование ДУ + + + + + + + + + + + + + + + Размещение сведений о размере платы + + + + + + + + + + + + + + Аннулирование сведений о размере платы + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Импорт сведений устава + + + + + + + + + + + + Создание устава + + + + + + + + Объект управления. Если устав является бессрочным элемент Дата окончания предоставления жилищных услуг необходимо заполнить значением "5000" + + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + Управление многоквартирным домом осуществляется управляющей организацией по договору управления + + + + + + + + + + + + + + + Внесение изменений в версию устава + + + + + + + + Объект управления. Если устав является бессрочным элемент Дата окончания предоставления жилищных услуг необходимо заполнить значением "5000" + + + + + + + + Добавление + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + Управление многоквартирным домом осуществляется управляющей организацией по договору управления + + + + + + + + + + Изменение + + + + + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + Управление многоквартирным домом осуществляется управляющей организацией по договору управления + + + + + + + + + + Аннулирование + + + + + + + + + + + + + + + + + + + + Продление срока оказания услуг + + + + + + + + + Пролонгировать до даты. Если не указано, то дата окончания управления домами устава и всех услуг увеличиваются на 1 год. + + + + + + + + + + Прекращение действия устава + + + + + + + + Причина прекращения действия устава + + + + + + + + + + + + + + + + Аннулирование устава + + + + + + + + + + + + + + Размещение сведений о размере платы + + + + + + + + + + + + + + Аннулирование сведений о размере платы + + + + + + + + + + + + + + + + + + + + + Экспорт ДУ/уставов + + + + + + + + + + + + + + + + + Дополнительные критерии выборки по управляемым объектам + + + + + + Выгружать только с признаком расхождения с Реестром инфомрации об управлении МКД + + + + + Выгружать только с признаком заблокированного дома + + + + + + + + + + + + + + + + + Ответ на запрос экспорта ДУ/уставов + + + + + + + + + Статус ДУ: + Project - проект + ApprovalProcess - на утверждении + Approved - утвержден + Rejected- отклонен + Terminated - расторгнут/закрыт + Reviewed - рассмотрен + Annul - сведения аннулированы + + + + + + + + + + + + +Состояние документа: + Running - действующий + NotRunning - не действующий + Expired - истек срок действия + + + + + + + + + + + + Управляемый объект + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Статус управляемого объекта: + Project - проект + ApprovalProcess - на утверждении + Approved - утвержден + Rejected- отклонен + Terminated - расторгнут + Reviewed - рассмотрен + Locked - заблокирован + + + + + + Признак расхождения с Реестром инфомрации об управлении МКД + + + + + Признак заблокированного дома + + + + + + + + Номер версии + + + + + + + Экспорт статуса пролонгации ДУ/уставов + + + + + + + + Выгрузить сведения о пролонгации до указанной даты + + + + + Выгрузить сведения о пролонгации от указанной даты + + + + + + + + + + + + Ответ на запрос экспорта ДУ/уставов + + + + + + + + + Пролонгированный ДУ/устав + + + + + + + + + + Статус ДУ: + Project - проект + ApprovalProcess - на утверждении + Approved - утвержден + Rejected- отклонен + Terminated - расторгнут/закрыт + Reviewed - рассмотрен + Annul - сведения аннулированы + + + + + Идентификатор предыдущей версии договора + + + + + + + + + + Идентификатор предыдущей версии устава в ГИС ЖКХ + + + + + + + +Состояние документа: + Running - действующий + NotRunning - не действующий + Expired - истек срок действия + + + + + + + + + + + + Управляемый объект + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Статус управляемого объекта: + Project - проект + ApprovalProcess - на утверждении + Approved - утвержден + Rejected- отклонен + Terminated - расторгнут + Reviewed - рассмотрен + Locked - заблокирован + + + + + + Признак расхождения с Реестром инфомрации об управлении МКД + + + + + Признак заблокированного дома + + + + + Идентификатор предыдущей версии объекта управления в ГИС ЖКХ + + + + + + + + Номер версии + + + + + true, если ДУ/устав был пролонгирован, false если не был + + + + + Описание события пролонгации + + + + + + + + + + + + + + Экспорт ДУ/уставов. + +Доступные версии формата экспорта: 10.0.1.1, 13.0.0.1 и 13.1.2.1 + + + + + + + + + + + + + + + Ответ на запрос экспорта ДУ/уставов + + + + + ДУ + + + + + + + + Информация о расторжении ДУ + + + + + + + + Ссылка на НСИ "54 Причина расторжения договор" (реестровый номер 54) + + + + + + + + + + Статус ДУ в ГИС ЖКХ: +Project - проект +ApprovalProcess - на утверждении +Approved - утвержден +Rejected - отклонен +Reviewed - рассмотрен +Terminated - расторгнут/закрыт +Annul - сведения аннулированы + + + + + + + Объект управления + + + + + + + + Идентификатор версии объекта управления в ГИС ЖКХ + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + Сведения об исключении объекта управления из ДУ + + + + + + Основание + + + + + Дата исключения + + + + + + + + Статус в ГИС ЖКХ +Допустимые значения: +Project-Проект +ApprovalProcess-На утверждении +Rejected-Отклонен +Approved-Утвержден +Locked-Заблокирован + + + + + + + + + + Сведения о размере платы + + + + + + + + + Статус версии: +(P)laced - информация размещена +(A)nnulled - инофрмация аннулирована + + + + + + + + + + + + + + + + + + + + + + Устав + + + + + + + + Информация о прекращении действия устава + + + + + + + + Причина прекращения действия устава + + + + + + + + + + + + + + + Статус устава в ГИС ЖКХ: + Project - проект + Reviewed - рассмотрен + ApprovalProcess - на утверждении + Approved - утвержден + Terminated - расторгнут/закрыт + Rejected - отклонен + Annul - аннулирован + + + + + + + + Объект управления + + + + + + + + Идентификатор версии объекта управления в ГИС ЖКХ + + + + + Основание + + + + + Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + Основание + + + + + + + + + + Дополнительные услуги. Ссылка на НСИ "Дополнительные услуги" (реестровый номер 1) + + + + + + + + Основание + + + + + + + + + + Сведения об исключении объекта управления из устава + + + + + + Основание + + + + + Дата исключения + + + + + + + + Статус в ГИС ЖКХ +Допустимые значения: +Project-Проект +ApprovalProcess-На утверждении +Rejected-Отклонен +Approved-Утвержден +Locked-Заблокирован + + + + + Управление многоквартирным домом осуществляется управляющей организацией по договору управления + + + + + + + + + + Сведения о размере платы + + + + + + + + + Статус версии: +(P)laced - информация размещена +(A)nnulment - инофрмация аннулирована + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Идентификатор УО в ГИС ЖКХ + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Дата заключения ДУ + + + + + Настройка для экспорта только крайней версии ДУ/устава. Если элемент не указан, экспорту подлежат все версии документа + + + + + + + + + Импорт ДОГПОИ (Договор на пользование общим имуществом ) + + + + + + + + + + + + + Идентификатор версии ДОГПОИ в ГИС ЖКХ + + + + + + + Создание\изменение ДОГПОИ + + + + + + + + Период внесения платы по договору о предоставлении в пользование части общего имущества собственников помещений в многоквартирном доме + + + + + + + Начало периода + + + + + Окончание периода + + + + + + Иное + + + + + + + + + + + + + + + + + + Аннулирование ДПОИ + + + + + + + + + Заполнение сведений о внесении платы + + + + + + + + Идентификатор версии ДОГПОИ в ГИС ЖКХ + + + + + Идентификатор версии сведений о внесении платы в ГИС ЖКХ + + + + + + Период + + + + + + + + + + + Начислено за период + + + + + Размер задолженности (-)/переплаты (+) за период + + + + + Оплачено за период + + + + + + + + Аннулирование сведений о внесении платы + + + + + + + + + Идентификатор версии сведений о внесении платы в ГИС ЖКХ + + + + + + + + + + Удаление сведений о внесении платы + + + + + + + Идентификатор версии сведений о внесении платы в ГИС ЖКХ + + + + + + + + + + + + + + + + + + Экспорт ДОГПОИ + + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер договора + + + + + Дата начала действия договора + + + + + Дата окончания действия договора + + + + + + + Корневой идентификатор ДОГПОИ (не меняется от версии к версии) + + + + + Идентификатор версии ДОГПОИ + + + + + + + + + + + + Ответ на запрос экспорта ДОГПОИ + + + + + ДОИ + + + + + + + + + Состояние договора + + + + + + Номер версии + + + + + Статус версии + + + + + Период внесения платы по договору о предоставлении в пользование части общего имущества собственников помещений в многоквартирном доме + + + + + + + Начало периода + + + + + Окончание периода + + + + + + Иное + + + + + + + + + + + + + Сведения о внесении платы и задолженности по такой плате + + + + + + Идентификатор версии сведений о внесении платы в ГИС ЖКХ + + + + + Период + + + + + + + + + + + Начислено за период + + + + + + + + + + + Размер задолженности (-)/переплаты (+) за период + + + + + + + + + + + Оплачено за период + + + + + + + + + + + + + + Договор заключен на безвозмездной основе? + + + + + + + + + + + + + Импорт договора ресурсоснабжения + + + + + + + + Договор ресурсоснабжения + + + + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ Необходимо указать идентификатор последней версии договора + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + Создание/изменение + + + + Проверка уникальности пары из коммунальной услуги и коммунального ресурса в рамках договора + + + + + + + + Проверка уникальности транспортного идентификатора пары из коммунальной услуги и ресурса + + + + + + + Ссылка на транспортный идентификатор пары из коммунальной услуги и ресурса + + + + + + + Проверка уникальности транспортного идентификатора ОЖФ + + + + + + + + + + + + + + + + + + + Проверка уникальности пары из коммунальной услуги и ресурса и дифференцированной цены тарифа + + + + + + + + Ссылка на ОЖФ в тарифе + + + + + + + Ссылка на ОЖФ в нормативах потребления + + + + + + + Проверка уникальности пары из коммунальной услуги и ресурса и норматива потребления коммунальной услуги + + + + + + + + + Расторжение + + + + + + + + Ссылка на НСИ "54 Причина расторжения договора" (реестровый номер 54) + + + + + + + + + + Пролонгация + + + + + + Дата окончания пролонгации + + + + + + + + Аннулирование + + + + + + + + + + + + + + Проверка уникальности транспортного идентификатора в рамках запроса + + + + + + + Проверка уникальности идентификатора версии договора в рамках запроса + + + + + + + Проверка уникальности корневого идентификатора договора в рамках запроса + + + + + + + + Импорт проекта договора ресурсоснабжения + + + + + + + + Договор ресурсоснабжения + + + + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ Необходимо указать идентификатор последней версии договора + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + Создание/изменение проекта договора ресурсоснабжения + + + + Проверка уникальности транспортного идентификатора пары из коммунальной услуги и ресурса + + + + + + + Ссылка на транспортный идентификатор пары из коммунальной услуги и ресурса + + + + + + + Проверка уникальности пары из коммунальной услуги и коммунального ресурса в рамках договора + + + + + + + + + Удаление проекта договора ресурсоснабжения. У размещенных договоров ресурсоснабжения удаляется последняя версия договора в статусе "Проект" + + + + + Размещение проекта договора ресурсоснабжения + + + + + + + + + + + + + + Проверка уникальности транспортного идентификатора в рамках запроса + + + + + + + Проверка уникальности идентификатора версии договора в рамках запроса + + + + + + + Проверка уникальности корневого идентификатора договора в рамках запроса + + + + + + + + Запрос на экспорт договоров ресурсоснабжения. + +Доступные версии формата экспорта: 11.11.0.2 и 13.1.1.1 + + + + + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + + + Корневой идентификатор договора ресурсоснабжения в ГИС ЖКХ для установки экспорта следующей 1000 договоров При первичном экспорте не заполняется + + + + + Номер договора + + + + + + + + + + + Дата заключения "С" + + + + + Дата заключения "По" + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + Предмет договора + + + + + + Предмет договора +Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + + + + + + Импорт объектов жилищного фонда в договор ресурсоснабжения + + + + + + + + + Необходимо указать идентификатор последней версии договора + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ + + + + + + + Добавление/изменение информации об ОЖФ + + + + + + + + Коммунальная услуга и коммунальный ресурс, поставляемые в объект жилищного фонда + + + + + + + + Тип системы теплоснабжения (заполняется для коммунальных ресурсов "Тепловая энергия" и "Горячая вода") + + + + + + Открытая/Закрытая + + + + + + + + + + + Централизованная/нецентрализованная + + + + + + + + + + + + + + + + + + + + Признак "Отсутствие присоединения сетей объекта жилищного фонда к централизованной системе водоснабжения". Может быть указан, только если показатели качества коммунальных ресурсов ведутся в разрезе объектов жилищного фонда и в число поставляемых в объект жилищного фонда коммунальных услуг входит "Холодное водоснабжение" и/или "Горячее водоснабжение" + + + + + Показатель качества (содержащийся в справочнике показателей качества). Обязательно для заполнения, если показатели качества ведутся в разрезе ОЖФ Для пары КУ и КР "Горячее водоснабжение" и "Питьевая вода" указываются актуальные показатели, определенные для КР "Горячая вода" в справочнике показателей качества коммунальных ресурсов Для пары КУ и КР "Горячее водоснабжение" и "Тепловая энергия" информация о показателях качества не заполняется только в том случае, если для договора (если показатели ведутся в разрезе договора) или ОЖФ в договоре (если показатели ведутся в разрезе ОЖФ) также указана пара КУ и КР "Горячее водоснабжение" и "Питьевая вода" + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Показатель качества. Ссылка на НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276) + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Иной показатель качества коммунального ресурса (не содержащийся в справочнике показателей качества). Могут быть указаны только, если показатели качества ведутся в разрезе ОЖФ + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Наименование показателя + + + + + + + Установленное значение показателя качества + + + + Число + + + + + Диапазон + + + + Начало диапазона + + + + + Конец диапазона + + + + + + + + + Значение соответствует + + + + + + Дополнительная информация + + + + + + + + Информация о температурном графике. Доступно для заполнения, если в рамках ОЖФ хотя бы раз встречается ресурс "Тепловая энергия". + + + + + + Температура наружного воздуха + + + + + Температура теплоносителя в подающем трубопроводе + + + + + + + + + + + Температура теплоносителя в обратном трубопроводе + + + + + + + + + + + + + + Плановый объем и режим подачи за год. Может быть заполнено только если плановый объем и режим подачи ведется в разрезе ОЖФ + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Плановый объем + + + + + Единица измерения. +справочника НСИ №236 "Связь вида коммунальной услуги, тарифицируемого ресурса и единиц измерения ставки тарифа" + + + + + Режим подачи + + + + + + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. Заполняется, если порядок размещения информации о начислениях за коммунальные услуги ведется в разрезе ОЖФ + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. Обязательно для заполнения, если в tns:CountingResource указано"РСО" . В остальных случаях не заполняется. + + + + + Информация о применяемом тарифе + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор дифференцированной цены тарифа + + + + + + + + Информация о нормативе потребления коммунальной услуги + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор норматива потребления коммунальной услуги + + + + + + + + + + + + Проверка уникальности пары из коммунальной услуги и коммунального ресурса в рамках ОЖФ + + + + + + + + Проверка уникальности транспортного идентификатора пары из коммунальной услуги и ресурса + + + + + + + Ссылка на транспортный идентификатор пары из коммунальной услуги и ресурса + + + + + + + Проверка уникальности пары из коммунальной услуги и ресурса и дифференцированной цены тарифа + + + + + + + + + Удаление ОЖФ из договора ресурсоснабжения + + + + + + + + + + + + + + Проверка уникальности транспортного идентификатора в рамках запроса + + + + + + + Проверка уникальности идентификатора объекта жилищного фонда в рамках запроса + + + + + + + Проверка уникальности идентификатора версии договора в рамках запроса + + + + + + + Проверка уникальности корневого идентификатора договора в рамках запроса + + + + + + + + Запрос на экспорт объектов жилищного фонда из договора ресурсоснабжения. + +Доступные версии формата экспорта: 11.6.0.1 и 13.1.1.1 + + + + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ для установки экспорта следующей 1000 ОЖФ При первичном экспорте не заполняется + + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + + + + + + Запрос на экспорт сокращенного состава информации о договоре ресурсоснабжения. + +Доступные версии формата экспорта: 11.14.0.1 и 13.1.1.1 + + + + + + + + + Корневой идентификатор договора ресурсоснабжения в ГИС ЖКХ для установки экспорта следующей страницы с договорами. При первичном экспорте не заполняется + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ для установки экспорта следующей страницы с ОЖФ внутри договора с идентиифкатором, указанным в NextPageContractRootGUID. При первичном экспорте не заполняется + + + + + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + + + Номер договора + + + + + + + + + + + Дата заключения "С" + + + + + Дата заключения "По" + + + + + Предмет договора + + + + + + Предмет договора +Виды КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + + + + Организация, заключившая договор + + + + + + + + + + + + Результат экспорта договоров ресурсоснабжения + + + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + Состояние договора + + + + + + Не вступил в силу + + + + + Действующий + + + + + Истек срок действия + + + + + + + + Номер версии договора + + + + + + + + Статус версии договора + + + + + + Размещен + + + + + Расторгнут + + + + + Проект + + + + + Информация аннулирована + + + + + + + + Информация о расторжении + + + + + + + + Ссылка на НСИ "54 Причина расторжения договора" (реестровый номер 54) + + + + + + + + + + Аннулирование + + + + + + + + + Договор ресурсоснабжения + + + + + + Договор не является публичным и/или присутствует заключенный на бумажном носителе (электронной форме) и/или не заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + Договор является публичным и/или отсутствует заключенный на бумажном носителе (в электронной форме) и/или заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + + + Договор заключен на неопределенный срок + + + + + + Автоматически пролонгировать договор на один год при наступлении даты окончания действия. + + + + + Дата окончания действия. Обязательно для заполнения, если указано значение в AutomaticRollOverOneYear + + + + + + + Период передачи текущих показаний по индивидуальным приборам учета. Обязателен для заполнения, если в поле VolumeDepends = true ИЛИ если поле MeteringDeviceInformation = «true» + + + + + + Начало периода + + + + + + Дата начала + + + + + + + + + + + Следующего месяца + + + + + + + + Конец периода + + + + + + Дата окончания. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Следующего месяца + + + + + + + + + + + Разрешить передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. +Заполнение возможно только если: в настройках организации установлена настройка «Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета в любой день месяца» ИЛИ в настройках организации установлена настройка «Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета только в сроки, установленные в договоре, или в любой день месяца, если в договоре установлен признак «Разрешить передачу показаний приборов учета в любой день месяца» И заполнен Period + + + + + +Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + + + + + Вторая сторона договора + + + + Договор оферта + + + + + Собственник или пользователь жилого (нежилого) помещения в МКД + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Собственник или пользователь жилого дома (домовладения) + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Управляющая организация + + + + + + + + + + Представитель собственников многоквартирного дома + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + Единоличный собственник помещений в многоквартирном доме + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + + Наличие в договоре планового объема и режима подачи поставки ресурсов + + + + + Тип ведения планового объема и режима подачи: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. Заполняется при наличии в договоре планового объема и режима поставки ресурсов. + + + + + + + + + + + Предмет договора + + + + + + + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. Заполняется, если порядок размещения информации о начислениях за коммунальные услуги ведется в разрезе договора + + + + + + + + + + + Показатели качества коммунальных ресурсов и температурный график ведутся: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. + + + + + + + + + + + Признак "Отсутствие присоединения сетей объектов жилищного фонда к централизованной системе водоснабжения". Может быть указан, только если показатели качества коммунальных ресурсов ведутся в разрезе договора и предмет договора включает коммунальную услугу "Холодное водоснабжение" и/или "Горячее водоснабжение" + + + + + Данные об объекте жилищного фонда. При импорте договора должен быть добавлен как минимум один адрес объекта жилищного фонда + + + + + + + + + Коммунальная услуга и коммунальный ресурс, поставляемые в объект жилищного фонда + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Дата начала поставки ресурса + + + + + Дата окончания поставки ресурса. Является обязательным, если указано значение в AutomaticRollOverOneYear + + + + + Тип системы теплоснабжения (заполняется для коммунальных ресурсов "Тепловая энергия" и "Горячая вода") + + + + + + Открытая/Закрытая + + + + + + + + + + + Централизованная/нецентрализованная + + + + + + + + + + + + + + + + + Признак "Отсутствие присоединения сетей объекта жилищного фонда к централизованной системе водоснабжения". Может быть указан, только если показатели качества коммунальных ресурсов ведутся в разрезе объектов жилищного фонда и в число поставляемых в объект жилищного фонда коммунальных услуг входит "Холодное водоснабжение" и/или "Горячее водоснабжение" + + + + + Плановый объем и режим подачи за год. Может быть заполнено только если плановый объем и режим подачи ведется в разрезе ОЖФ + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Плановый объем + + + + + Единица измерения. +справочника НСИ №236 "Связь вида коммунальной услуги, тарифицируемого ресурса и единиц измерения ставки тарифа" + + + + + Режим подачи + + + + + + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. Заполняется, если порядок размещения информации о начислениях за коммунальные услуги ведется в разрезе ОЖФ + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. Обязательно для заполнения, если в tns:CountingResource указано"РСО" . В остальных случаях не заполняется. + + + + + + + + + + + + + + Показатель качества (содержащийся в справочнике показателей качества). Если показатели указываются в разрезе договора, то ссылка на ОЖФ не заполняется. Если показатели указываются в разрезе ОЖФ, то ссылка на ОЖФ обязательна. + + + + + + Ссылка на ОЖФ, обязательно заполняется, если показатели качества ведутся в разрезе ОЖФ + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Показатель качества. Ссылка на НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276) + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Иной показатель качества коммунального ресурса (не содержащийся в справочнике показателей качества). Если показатели указываются в разрезе договора, то ссылка на ОЖФ не заполняется. Если показатели указываются в разрезе ОЖФ, то ссылка на ОЖФ обязательна. + + + + + + Ссылка на ОЖФ, обязательно заполняется, если показатели качества ведутся в разрезе ОЖФ + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Наименование показателя + + + + + + + Установленное значение показателя качества + + + + Число + + + + + Диапазон + + + + Начало диапазона + + + + + Конец диапазона + + + + + + + + + Значение соответствует + + + + + + Дополнительная информация + + + + + + + + Информация о температурном графике. Если показатели качества указываются в разрезе договора, то ссылка на ОЖФ в данном элементе не заполняется и элемент может заполняться только если предмете договора хотя бы раз встречается ресурс "Тепловая энергия". Если показатели качества указываются в разрезе ОЖФ, то ссылка на ОЖФ обязательна и элемент заполняется только если в рамках ОЖФ встречается ресурс "Тепловая энергия". + + + + + + Ссылка на ОЖФ, обязательно заполняется, если показатели качества ведутся в разрезе ОЖФ + + + + + Температура наружного воздуха + + + + + Температура теплоносителя в подающем трубопроводе + + + + + + + + + + + Температура теплоносителя в обратном трубопроводе + + + + + + + + + + + + + + Информация о сроках оплаты + + + + Срок представления (выставления) платежных документов, не позднее. Является обязательным, если вторая сторона договора отличается от "Управляющая организация" ИЛИ если заполнено поле tns:MeteringDeviceInformation Не заполняется, если OneTimePayment = true + + + + + + Срок представления (выставления) платежных документов (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок внесения платы, не позднее. Является обязательным, если вторая сторона договора отличается от "Управляющая организация" И договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме И в поле OneTimePayment = false. Не заполняется, если OneTimePayment = true + + + + + + Срок внесения платы (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок предоставления информации о поступивших платежах, не позднее. Является обязательным, если второй стороной договора является «Управляющая организация», «Размещение информации о начислениях за коммунальные услуги осуществляет» = «РСО» И договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме. + + + + + + Срок предоставления информации о поступивших платежах (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. Обязательно для заполнения, если в tns:CountingResource указано"РСО" . В остальных случаях не заполняется. + + + + + Объем поставки ресурса(ов) определяется на основании прибора учета. Поле не заполняется, если вторая сторона договора = Управляющая организация ИЛИ в поле OneTimePayment = true + + + + + Оплата предоставленных услуг осуществляется единоразово при отгрузке указанных ресурсов без заведения лицевых счетов для потребителей. Доступно для заполнения, только если вторая сторона договора отлична от Управляющая организация. + + + + + Порядок размещения информации о начислениях за коммунальные услуги ведется +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. +Заполняется, если второй стороной договора является исполнитель коммунальных услуг + + + + + + + + + + + Информация о применяемом тарифе + + + + + + + Ссылка на ОЖФ + + + + + Тариф применяется для всех ОЖФ договора + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор дифференцированной цены тарифа + + + + + + + + Информация о нормативе потребления коммунальной услуги + + + + + + + Ссылка на ОЖФ + + + + + Норматив применяется для всех ОЖФ договора + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор норматива потребления коммунальной услуги + + + + + + + + + + + + + + Экспортируемый договор ресурсоснабжения + + + + + + Договор не является публичным и/или присутствует заключенный на бумажном носителе (электронной форме) и/или не заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + Договор является публичным и/или отсутствует заключенный на бумажном носителе (в электронной форме) и/или заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + + + Договор заключен на неопределенный срок + + + + + + Автоматически пролонгировать договор на один год при наступлении даты окончания действия. + + + + + Дата окончания действия + + + + + + + Объем поставки ресурса(ов) определяется на основании прибора учета. + + + + + Период передачи текущих показаний по индивидуальным приборам учета. + + + + + + Начало периода + + + + + + Дата начала + + + + + Следующего месяца + + + + + + + + Конец периода + + + + + + Дата окончания. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + Следующего месяца + + + + + + + + + + + Разрешить передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца + + + + + +Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + + + + + Вторая сторона договора + + + + Договор оферта + + + + + Собственник или пользователь жилого (нежилого) помещения в МКД + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Собственник или пользователь жилого дома (домовладения) + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Управляющая организация + + + + + + + + + + Представитель собственников многоквартирного дома + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + Единоличный собственник помещений в многоквартирном доме + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + + Наличие в договоре планового объема и режима подачи поставки ресурсов + + + + + Тип ведения планового объема и режима подачи: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. + + + + + + + + + + + Предмет договора + + + + + + Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + Дата начала поставки ресурса + + + + + Дата окончания поставки ресурса + + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. + + + + + Показатели качества коммунальных ресурсов и температурный график ведутся: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. + + + + + + + + + + + Признак "Отсутствие присоединения сетей объектов жилищного фонда к централизованной системе водоснабжения" + + + + + Показатель качества (содержащийся в справочнике показателей качества). Информация выгружается, если показатели ведутся в разрезе договора. + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Показатель качества. Ссылка на НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276) + + + + + Значение показателя качества + + + + + + + + Число + + + + + + Начало диапазона + + + + + Конец диапазона + + + + + + + + + Значение соответствует + + + + + + + + Дополнительная информация + + + + + + + + Иной показатель качества коммунального ресурса (не содержащийся в справочнике показателей качества). Информация выгружается, если показатели ведутся в разрезе договора. + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Наименование показателя + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Плановый объем и режим подачи за год. Информация выгружается, если плановый объем и режим подачи ведется в разрезе договора. + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Плановый объем + + + + + Единица измерения. +справочника НСИ №236 "Связь вида коммунальной услуги, тарифицируемого ресурса и единиц измерения ставки тарифа" + + + + + Режим подачи + + + + + + + + Оплата предоставленных услуг осуществляется единоразово при отгрузке указанных ресурсов без заведения лицевых счетов для потребителей. + + + + + Информация о сроках оплаты + + + + Срок представления (выставления) платежных документов, не позднее. + + + + + + Срок представления (выставления) платежных документов (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок внесения платы, не позднее. + + + + + + Срок внесения платы (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок предоставления информации о поступивших платежах, не позднее. + + + + + + Срок предоставления информации о поступивших платежах (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + + + + Экспорт объектов жилищного фонда из договора ресурсоснабжения + + + + + + + Информация о КУ и КР по ОЖФ + + + + + + + + Тип системы теплоснабжения (заполняется для коммунальных ресурсов "Тепловая энергия" и "Горячая вода") + + + + + + Открытая/Закрытая + + + + + + + + + + + Централизованная/нецентрализованная + + + + + + + + + + + + + + + + + + + + Признак "Отсутствие присоединения сетей объекта жилищного фонда к централизованной системе водоснабжения" + + + + + Показатель качества (содержащийся в справочнике показателей качества). + + + + + + Ссылка на пару из коммунальной услуги и ресурса из Информации о КУ и КР по ОЖФ + + + + + Показатель качества. Ссылка на НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276) + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Иной показатель качества коммунального ресурса (не содержащийся в справочнике показателей качества). + + + + + + Ссылка на пару из коммунальной услуги и ресурса из Информации о КУ и КР по ОЖФ + + + + + Наименование показателя + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Плановый объем и режим подачи за год. + + + + + + Ссылка на пару из коммунальной услуги и ресурса из Информации о КУ и КР по ОЖФ + + + + + Плановый объем + + + + + Единица измерения. +справочника НСИ №236 "Связь вида коммунальной услуги, тарифицируемого ресурса и единиц измерения ставки тарифа" + + + + + Режим подачи + + + + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + Номер версии договора + + + + + + + + Статус версии договора + + + + + + Размещен + + + + + Расторгнут + + + + + Проект + + + + + Информация аннулирована + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. Заполняется, если порядок размещения информации о начислениях за коммунальные услуги ведется в разрезе ОЖФ + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. Обязательно для заполнения, если в tns:CountingResource указано"РСО" . В остальных случаях не заполняется. + + + + + + + + + Договор ресурсоснабжения (проект) + + + + + + Договор не является публичным и/или присутствует заключенный на бумажном носителе (электронной форме) и/или не заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + Договор является публичным и/или отсутствует заключенный на бумажном носителе (в электронной форме) и/или заключен в отношении нежилых помещений в многоквартирных домах + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Договор ресурсоснабжения и приложения к договору + + + + + + + + + + Договор заключен на неопределенный срок + + + + + + Автоматически пролонгировать договор на один год при наступлении даты окончания действия. + + + + + Дата окончания действия. Обязательно для заполнения, если указано значение в AutomaticRollOverOneYear + + + + + + + Период передачи текущих показаний по индивидуальным приборам учета. Может быть указан только, если поле VolumeDepends = true -ИЛИ- поле MeteringDeviceInformation = «true» + + + + + + Начало периода + + + + + + Дата начала + + + + + + + + + + + Следующего месяца + + + + + + + + Конец периода + + + + + + Дата окончания. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Следующего месяца + + + + + + + + + + + Разрешить передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. +Заполнение возможно только если: в настройках организации установлена настройка «Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета в любой день месяца» ИЛИ в настройках организации установлена настройка «Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета только в сроки, установленные в договоре, или в любой день месяца, если в договоре установлен признак «Разрешить передачу показаний приборов учета в любой день месяца» И заполнен Period + + + + + +Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + + + + + Вторая сторона договора + + + + Договор оферта + + + + + Собственник или пользователь жилого (нежилого) помещения в МКД + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Собственник или пользователь жилого дома (домовладения) + + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + Не указывать собственника или пользователя + + + + + + + + Управляющая организация + + + + + + + + + + Единоличный собственник помещений в многоквартирном доме + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + Представитель собственников многоквартирного дома + + + + + + Не указывать собственника или пользователя + + + + + Организация (Юридическое лицо или индивидуальный предприниматель) + + + + + Физическое лицо + + + + + + + + + Наличие в договоре планового объема и режима подачи поставки ресурсов + + + + + Тип ведения планового объема и режима подачи: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. Заполняется при наличии в договоре планового объема и режима поставки ресурсов. + + + + + + + + + + + Предмет договора + + + + + + + + + + + + + + Размещение информации о начислениях за коммунальные услуги осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. +Заполняется, если порядок размещения информации о начислениях за коммунальные услуги ведется в разрезе договора + + + + + + + + + + + Показатели качества коммунальных ресурсов и температурный график ведутся: +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. + + + + + + + + + + + Признак "Отсутствие присоединения сетей объектов жилищного фонда к централизованной системе водоснабжения". Может быть указан, только если показатели качества коммунальных ресурсов ведутся в разрезе договора и предмет договора включает коммунальную услугу "Холодное водоснабжение" и/или "Горячее водоснабжение" + + + + + Показатель качества (содержащийся в справочнике показателей качества). Обязательно для заполнения, если показатели качества указываются в разрезе договора. Для пары КУ и КР "Горячее водоснабжение" и "Питьевая вода" указываются актуальные показатели, определенные для КР "Горячая вода" в справочнике показателей качества коммунальных ресурсов Для пары КУ и КР "Горячее водоснабжение" и "Тепловая энергия" информация о показателях качества не заполняется только в том случае, если для договора (если показатели ведутся в разрезе договора) или ОЖФ в договоре (если показатели ведутся в разрезе ОЖФ) также указана пара КУ и КР "Горячее водоснабжение" и "Питьевая вода" + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Показатель качества. Ссылка на НСИ "Показатели качества коммунальных ресурсов" (реестровый номер 276) + + + + + Значение показателя качества + + + + + + + + + + Дополнительная информация + + + + + + + + Иной показатель качества коммунального ресурса (не содержащийся в справочнике показателей качества). + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Наименование показателя + + + + + + + Установленное значение показателя качества + + + + Число + + + + + Диапазон + + + + Начало диапазона + + + + + Конец диапазона + + + + + + + + + Значение соответствует + + + + + + Дополнительная информация + + + + + + + + Информация о температурном графике. Доступно для заполнения только, если в предмете договора хотя бы раз встречается ресурс "Тепловая энергия". + + + + + + Температура наружного воздуха + + + + + Температура теплоносителя в подающем трубопроводе + + + + + + + + + + + Температура теплоносителя в обратном трубопроводе + + + + + + + + + + + + + + Информация о сроках оплаты + + + + Срок представления (выставления) платежных документов, не позднее. Является обязательным, если вторая сторона договора отличается от "Управляющая организация" ИЛИ если заполнено поле tns:MeteringDeviceInformation Не заполняется, если OneTimePayment = true + + + + + + Срок представления (выставления) платежных документов (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок внесения платы, не позднее. Является обязательным, если вторая сторона договора отличается от "Управляющая организация" И договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме И в поле OneTimePayment = false. Не заполняется, если OneTimePayment = true + + + + + + Срок внесения платы (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок предоставления информации о поступивших платежах, не позднее. Является обязательным, если второй стороной договора является «Управляющая организация», «Размещение информации о начислениях за коммунальные услуги осуществляет» = «РСО» И договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме. + + + + + + Срок предоставления информации о поступивших платежах (число), не позднее. Если нужно указать значение "Последний день месяца", то поле заполняется значением "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + + Размещение информации об индивидуальных приборах учета и их показаниях осуществляет ресурсоснабжающая организация. Обязательно для заполнения, если в tns:CountingResource указано"РСО" . В остальных случаях не заполняется. + + + + + Объем поставки ресурса(ов) определяется на основании прибора учета. Поле не заполняется, если вторая сторона договора = Управляющая организация ИЛИ в поле OneTimePayment = true. + + + + + Оплата предоставленных услуг осуществляется единоразово при отгрузке указанных ресурсов без заведения лицевых счетов для потребителей. Доступно для заполнения, только если вторая сторона договора отлична от Управляющая организация. + + + + + Порядок размещения информации о начислениях за коммунальные услуги ведется +D - в разрезе договора. +O - в разрезе объектов жилищного фонда. +Заполняется, если второй стороной договора является исполнитель коммунальных услуг + + + + + + + + + + + Данные о тарифах и/или нормативах потребления коммунальных услуг, применяемых для всех объектов жилищного фонда договора в Субъекте РФ. Заполняется при наличии хотя бы одного такого тарифа / норматива в Субъекте РФ + + + + + + Субъект РФ, в котором применяются тарифы и/или нормативы потребления КУ (у поставщика данных должна быть подтвержденная функция РСО в этом Субъекте РФ) + + + + + Информация о применяемом тарифе + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор дифференцированной цены тарифа + + + + + + + + Информация о нормативе потребления коммунальной услуги + + + + + + Ссылка на пару из коммунальной услуги и ресурса из предмета договора + + + + + Идентификатор норматива потребления коммунальной услуги + + + + + + + + + + Проверка уникальности пары из тарифицируемого ресурса и дифференцированной цены тарифа в рамках одного Субъекта РФ + + + + + + + + Проверка уникальности пары из коммунального ресурса и норматива потребления в рамках одного Субъекта РФ + + + + + + + + + + + + + Идентификатор договора ресурсоснабжения в ГИС ЖКХ + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + Номер версии договора + + + + + + + + Статус версии договора + + + + + + Размещен + + + + + Расторгнут + + + + + Проект + + + + + Информация аннулирована + + + + + + + + Состояние договора + + + + + + Не вступил в силу + + + + + Действующий + + + + + Истек срок действия + + + + + + + + + Договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + + + + Договор является публичным и/или отсутствует заключенный на бумажном носителе или в электронной форме + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + + + + + + Первая сторона договора (РСО) + + + + + + + + + + Вторая сторона договора + + + + + + Управляющая организация + + + + + + + + + + Договор оферта + + + + + Договор заключен с собственниками + + + + + + + + + Предмет договора + + + + + + Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + Дата начала поставки ресурса + + + + + Дата окончания поставки ресурса + + + + + + + + + Коммерческий учет ресурса осуществляет: +R(SO)- РСО. +P(roprietor)-Исполнитель коммунальных услуг. + + + + + + + + + + + Информация о сроках оплаты + + + + Срок представления (выставления) платежных документов, не позднее. + + + + + + Срок представления (выставления) платежных документов (число), не позднее. Если указан "Последний день месяца", то в поле выгружается значение "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок внесения платы, не позднее. + + + + + + Срок внесения платы (число), не позднее. Если указан "Последний день месяца", то в поле выгружается значение "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + Срок предоставления информации о поступивших платежах, не позднее. + + + + + + Срок предоставления информации о поступивших платежах (число), не позднее. Если указан "Последний день месяца", то в поле выгружается значение "-1". + + + + + + + + + + + + Тип срока: +C (urrrent) - текущего расчетного месяца. +N (ext) - следующего месяца за расчетным. + + + + + + + + + + + + + + + Период сдачи текущих показаний по ПУ. + + + + + + Начало периода + + + + + + Дата начала + + + + + + + + + + Следующего месяца + + + + + + + + Конец периода + + + + + + Дата окончания. Если "Последний день месяца", то в поле выгружается значение "-1". + + + + + + + + + + Следующего месяца + + + + + + + + + + + Признак "Отсутствие присоединения сетей объектов жилищного фонда к централизованной системе водоснабжения". Может быть указан, только если показатели качества коммунальных ресурсов ведутся в разрезе договора и предмет договора включает коммунальную услугу "Холодное водоснабжение" и/или "Горячее водоснабжение" + + + + + Информация о расторжении + + + + + + + + Ссылка на НСИ "54 Причина расторжения договора" (реестровый номер 54) + + + + + + + + + + Информация об аннулировании + + + + + Объект жилищного фонда в договоре ресурсоснабжения + + + + + + + Предмет договора + + + + + Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + Дата начала поставки ресурса + + + + + Дата окончания поставки ресурса. Не заполняется, если указано, что договор заключен на неопределенный срок (IndefiniteTerm = true) + + + + + Плановый объем и режим подачи за год + + + + + + Плановый объем + + + + + Единица измерения. +справочника НСИ №236 "Связь вида коммунальной услуги, тарифицируемого ресурса и единиц измерения ставки тарифа" + + + + + Режим подачи + + + + + + + + + + + + + + + Экспорт объектов жилищного фонда из договора ресурсоснабжения + + + + + Тип дома: MKD - Многоквартирный дом ZHD - Жилой дом ZHDBlockZastroyki - Жилой дом блокированной застройки + + + + + + + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер квартиры (помещения) / номер блока + + + + + Номер комнаты + + + + + Идентификатор помещения + + + + + Идентификатор блока жилого дома + + + + + Идентификатор комнаты + + + + + Информация о КУ и КР по ОЖФ + + + + + + + + + + + + + + Признак "Отсутствие присоединения сетей объекта жилищного фонда к централизованной системе водоснабжения" + + + + + + + + Импорт новости для информирования граждан. Доступны версии 11.6.0.2, 13.2.2.0 + + + + + + + + + + + + + Идентификатор новости в ГИС ЖКХ + + + + + + + Создание, редактирование новости + + + + + + + Тема + + + + + + + + + + + Тема. Указывается из справочника №364 "Темы новостных сообщений" + + + + + + Высокая важность новости + + + + + Текст новости + + + + + + + + + + + Адресаты + + + + Все дома (в адресатах) + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Собственник помещений в МКД + + + + + + Необходимость погашения задолженности + + + + + + Лицевой счет + + + + + + Сумма задолженности + + + + + + + + + + + + Принятие решения о выборе другой кредитной организации + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + + Принятие рещшения об открытии нового специального счета + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + + + + + Идентификатор организации-владельца специального счета + + + + + Идентификатор организации-органа государственного надзора + + + + + + Период актуальности + + + + Не ограничено + + + + + + В период "С" + + + + + В период "До" + + + + + + + Документы новости + + + + + Направить новость адресатам + + + + + Признак "Для публикации в мобильном приложении" + + + + + Информация для новости, публикуемой в мобильном приложении + + + + + + Признак, что текст новости не более 500 символов + + + + + Признак закрепления новостного сообщения в ленте + + + + + Ссылка для перехода из подробного представления новости на произвольную web-страницу + + + + + + + + + + + + + + + + + Направить новость адресатам + + + + + Удаление новости + + + + + Отзыв новости + + + + + + Причина отзыва + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Импорт протокола ОСС (протокол общего собрания собственников) + + + + + + + + + + Идентификатор версии протокола ОСС в ГИС ЖКХ + + + + + + + Протокол ОСС + + + + + + + + Разместить протокол + + + + + + + + + + + + + + + + + + Разместить протокол ОСС + + + + + Отменить последние изменения + + + + + Удалить протокол ОСС + + + + + Аннулировать голосование и всю связанную информацию + + + + + + + + + + + + + + + + Импорт итогов голосования, проведенного с использованием системы, отличной от ГИС ЖКХ + + + + + + + + + + Идентификатор сообщения о проведении общего собрания в ГИС ЖКХ + + + + + + Разместить итоги голосования, проведенного с использованием системы, отличной от ГИС ЖКХ + + + + + + + + + + + + + + + Экспорт протоколов ОСС + +Доступны версии 11.11.0.6, 12.2.3.1, 13.1.0.4 и 13.1.8.1 + + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Статус версии протокола ОСС +Допустимые значения: +-Created-создан +-Posted-Размещен +-Edited-На изменении +-Annuled-Аннулирован +-PostedFromAnotherSystem-Размещен по голосованию в другой системе + + + + + + + + + + + + + + + Идентификатор версии протокола голосования + + + + + Корневой идентификатор протокола голосования + + + + + + + + + + + Ответ на запрос экспорта протоколов ОСС + + + + + + + Статус протокола ОСС +Допустимые значения: +-Created-создан +-Posted-Размещен +-Edited-На изменении +-Annuled-Аннулирован +-PostedFromAnotherSystem-Размещен по голосованию в другой системе + + + + + + + + + + + + + + Идентификатор версии протокола голосования + + + + + Корневой идентификатор протокола голосования + + + + + Статус версии протокола ОСС +Допустимые значения: +-Created-создан +-Posted-Размещен +-Edited-На изменении +-Annuled-Аннулирован +-PostedFromAnotherSystem-Размещен по голосованию в другой системе + + + + + + + + + + + + + + Номер версии протокола + + + + + Дата и время последнего изменения версии протокола + + + + + Дата и время размещения версии протокола + + + + + + + + + Импорт сообщения о проведениии ОСС + + + + + + + + + + Идентификатор сообщения о проведении ОСС в ГИС ЖКХ + + + + + + + Разместить или изменить сообщение о проведении ОСС + + + + + Отменить голосование по причине размещения 50% отказов + +Операция доступна только для голосований в форме "Заочное голосование с использованием системы" + + + + + Аннулировать голосование и всю связанную информацию + + + + + + + + + + + + + + + + Экспорт сообщений о проведении ОСС + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Корневой идентификатор сообщения о проведении голосования + + + + + + + + + + + Ответ на запрос экспорта сообщений о проведении ОСС + + + + + + + Идентификатор сообщения о проведении голосования + + + + + Статус сообщения о проведении ОСС +Допустимые значения: +- Posted - Размещено +- Goes - Голосование идет +- Finished - Голосование завершено +- MeetingCancelled - Собрание не состоялось +- Cancelled - Аннулирован + + + + + Дата и время размещения версии сообщения + + + + + Дата и время последнего изменения версии сообщения + + + + + + + + + + Импорт решения собственника по вопросам голосования + + + + + + + + Решение собственника по вопросам голосования + + + + + + + + Идентификатор версии протокола ОСС в ГИС ЖКХ + + + + + Идентификатор сообщения о проведении ОСС в ГИС ЖКХ + + + + + + Корневой идентификатор решения собственника по вопросам голосования + + + + + + Создание/Изменение решения + + + + + Аннулировать решение + + + + + + + + + + + + + + + + + + + + + + + Экспорт решений собственников по вопросам голосования +Доступны версии 13.0.0.2 и 13.1.8.1 + + + + + + + + Идентификатор версии протокола голосования + + + + + Корневой идентификатор протокола голосования + + + + + Корневой идентификатор решения собственника по вопросам голосования + + + + + Идентификатор сообщения о проведении ОСС + + + + + + + + + + + Ответ на запрос экспорта решений собственника по вопросу голосования + + + + + Корневой идентификатор решения собственника по вопросам голосования + + + + + + Экспортируемые сведения о собственности + + + + + + Вопрос повестки + + + + + Электронный образ решения собственника + + + + + Решение аннулировано + + + + + + + + Импорт письменных отказов собственников + + + + + + + + Письменные отказы собственников + + + + + + + + + + Разместить письменный отказ собственника + + + + + + Корневой идентификатор сообщения о проведении общего собрания собственников + + + + + Письменный отказ собственника + + + + + + + + Внести изменения в ранее размещенный письменный отказ собственника + + + + + + Корневой идентификатор письменного отказа собственника в ГИС ЖКХ + + + + + Письменный отказ собственника + + + + + + + + Аннулировать письменный отказ собственника + + + + + + Корневой идентификатор письменного отказа собственника в ГИС ЖКХ + + + + + + + + + + + + + + + + + + + + + + Экспорт письменных отказов собственников + + + + + + + + Корневые идентификаторы сообщений о проведении общего собрания, письменные отказы из которых должны быть экспортированы + + + + + Корневые идентификаторы отказов собственников + + + + + + + + + + + + Запрос на экспорт краткой информации о договоре найма + + + + + + + + поиск по + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + + Идентификатор договора социального наймам в ГИС ЖКХ + + + + + Идентификатор версии договора социального наймам в ГИС ЖКХ + + + + + + Номер договора + + + + + + + + + + + Дата заключения "С" + + + + + Дата заключения "По" + + + + + Тип: +(D)WELLING_APARTMENT - Договор социального найма жилого помещения +STATE_(M)UNICIPAL_FUND - Договор найма жилого помещения государственного или муниципального жилищного фонда +(S)OCIAL_FUND - Договор найма жилого помещения жилищного фонда социального использования + + + + + + + + + + + + + + + + + + + + + + + + + Ответ на запрос экспорта краткой информации о договоре найма + + + + + Идентификатор договора социального наймам в ГИС ЖКХ + + + + + Идентификатор версии договора социального наймам в ГИС ЖКХ + + + + + Состояние договора. Заполняется для договора в статусе "Утвержден" + + + + + + Не вступил в силу + + + + + Действующий + + + + + Истек срок действия + + + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Информация о расторжении + + + + + + + + Ссылка на НСИ "54 Причина расторжения договора" (реестровый номер 54) + + + + + + + + + + Аннулирование + + + + + Тип: +(D)WELLING_APARTMENT - Договор социального найма жилого помещения +STATE_(M)UNICIPAL_FUND - Договор найма жилого помещения государственного или муниципального жилищного фонда +(S)OCIAL_FUND - Договор найма жилого помещения жилищного фонда социального использования + + + + + + + + + + + + + + Данные об объекте жилищного фонда + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер квартиры (помещения) + + + + + Номер комнаты (указывается в случае квартиры коммунального заселения) + + + + + + + + Идентификатор зарегистрированной организации заключившей договор (первая сторона договора) + + + + + + + Тип статуса размещения ДУ в ГИС ЖКХ + + + + + + + Описание ошибки + + + + + + + + + Тип статуса размещения устава в ГИС ЖКХ + + + + + + + Описание ошибки + + + + + + + + + + Возврат статуса отправленного сообщения + + + + + + + + + + + + + + + + + + Расширенный ответ по импорту объекта жилищного фонда для УО + + + + + Расширенный ответ по импорту объекта жилищного фонда для ОМС + + + + + Расширенный ответ по импорту объекта жилищного фонда для ЕСП + + + + + Заполняется для операции importContract статусом размещения ДУ в ГИС ЖКХ + + + + + Заполняется для операции importCharter статусом размещения устава в ГИС ЖКХ + + + + + Заполняется для операции importMeteringDevice + + + + + + Идентификатор ПУ + + + + + + + + Заполняется для операции importAccount + + + + + + + + + + + Заполняется для операции importSuppleResourceContractObjectAddress + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + Заполняется для операции importSuppleResourceContract + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + Корневой идентификатор договора ресурсоснабжения (не меняется от версии к версии) + + + + + + + + Заполняется для операции importSupplyResourceContractProject + + + + + + Идентификатор версии договора ресурсоснабжения в ГИС ЖКХ + + + + + + + + + + + + + + + + + + Запрос на экспорт краткой базовой информации о доме + + + + + + Результат поиска дома по критерию. + + + + + + + + Запрос на экспорт краткой базовой информации о доме + + + + + + Краткая информация о МКД + + + + + + + + Запрос на экспорт краткой базовой информации о доме + + + + + + Результат поиска дома по критерию. + + + + + + + + + + + + + + + + + + Договор ресурсоснабжения + + + + + + Последняя страница экспорта + + + + + Идентификатор договора ресурсоснабжения для экспорта следующей 1000 договоров + + + + + + + + + Объект жилищного фонда в договоре ресурсоснабжения + + + + + + Объект жилищного фонда в договоре ресурсоснабжения + + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ для установки экспорта следующей 1000 ОЖФ + + + + + Последняя страница экспорта + + + + + + + + + Результат экспорта сокращенного состава информации о договоре ресурсоснабжения + + + + + + + + + Идентификатор договора ресурсоснабжения для экспорта следующей страницы договоров + + + + + Идентификатор объекта жилищного фонда в ГИС ЖКХ для экспорта следующей страницы ОЖФ + + + + + + Последняя страница экспорта + + + + + + + + + + Статус пролонгации ДУ/уставов + + + + + + Решение собственника по вопросам голосования + + + + + Письменные отказы собственников + + + + + + + + + + + + Сведения из ГКН для УО и ОМС + + + + + Кадастровый номер объекта недвижимости. При указании осуществляется привязка к ГКН и ЕГРП (поиск в ГКН и ЕГРП выполняется по кадастровому номеру). Перечень Субъектов РФ, по которым размещена информация в ГКН/ЕГРП, можно уточнить у Оператора ГИС ЖКХ. Наличие в экспорте указывает на установленную связь с ГКН/ЕГРП по этому элементу. + + + + + Информация об объекте недвижимости из Росреестра не размещена в ГИС ЖКХ. При указании в ГИС ЖКХ не сохраняется информация ни о кадастровом номере, ни о его отсутствии. При изменении объекта, привязанного к ГКН или ЕГРП, выполняется отвязка. Перечень Субъектов РФ, по которым размещена информация в ГКН, можно уточнить у Оператора ГИС ЖКХ. + + + + + + У объекта отсутствует кадастровый номер. При указании в ГИС ЖКХ сохраняется информация об отсутствии кадастрового номера, привязка к ГКН и ЕГРП не выполняется. При изменении объекта, привязанного к ГКН, выполняется отвязка от ГКН и ЕГРП. При изменении объекта, привязанного только к ЕГРП, отвязка не выполняется. + + + + + + Условный номер. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП выполняется по условному номеру). + + + + + Регистрационные данные права или ограничения/обременения прав. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП по регистрационным данным прав или ограничений/обременений прав). + + + + + + + + + Сведения из ГКН для РСО + + + + + Кадастровый номер объекта недвижимости. При указании осуществляется привязка к ГКН и ЕГРП (поиск в ГКН и ЕГРП выполняется по кадастровому номеру). Перечень Субъектов РФ, по которым размещена информация в ГКН/ЕГРП, можно уточнить у Оператора ГИС ЖКХ. Наличие в экспорте указывает на установленную связь с ГКН/ЕГРП по этому элементу. + + + + + Информация об объекте недвижимости из Росреестра не размещена в ГИС ЖКХ. При указании в ГИС ЖКХ не сохраняется информация ни о кадастровом номере, ни о его отсутствии. При изменении объекта, привязанного к ГКН или ЕГРП, выполняется отвязка. Перечень Субъектов РФ, по которым размещена информация в ГКН, можно уточнить у Оператора ГИС ЖКХ. + + + + + Признак отсутствия у РСО, импортирующего дом, сведений о кадастровом номере и других ключей, позволяющих установить связь с ГКН/ЕГРП. При указании в ГИС ЖКХ не сохраняется информация ни о кадастровом номере, ни о его отсутствии. При изменении объекта, привязанного к ГКН или ЕГРП, объект не отвязывается. + + + + + + У объекта отсутствует кадастровый номер. При указании в ГИС ЖКХ сохраняется информация об отсутствии кадастрового номера, привязка к ГКН и ЕГРП не выполняется. При изменении объекта, привязанного к ГКН, выполняется отвязка от ГКН и ЕГРП. При изменении объекта, привязанного только к ЕГРП, отвязка не выполняется. + + + + + + Условный номер. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП выполняется по условному номеру). + + + + + Регистрационные данные права или ограничения/обременения прав. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП по регистрационным данным прав или ограничений/обременений прав). + + + + + + + + + Сведения из ГКН и ЕГРП для экспорта + + + + + Объект в ГИС ЖКХ привязан к ГКН. + + + + + Объект в ГИС ЖКХ не привязан к ГКН (у объекта отсутствует кадастровый номер или информация из Росреестра об объекте не размещена в ГИС ЖКХ). Объект может быть привязан к ЕГРП. + + + + + Не используется, оставлен для совместимости. + + + + + + + + + + + + + + + + + + + + + + + + + + Тип ключа: +(R)ight - право +(E)ncumbrance - ограничение/обременение права + + + + + + + + + + + Номер государственной регистрации + + + + + + + + + + Дата государственной регистрации + + + + + + + + + + + + Статус связи объекта с ГКН: +(C)reated - связь с ГНК установлена +(D)roped - связь разорвана +(N)o relationship - связь с ГКН не устанавливалась + + + + + + + + + + + + + + Пользовательский параметр МКД, принятый ГИС ЖКХ после установления связи с ГКН + + + + + Пользовательский параметр ЖД, принятый ГИС ЖКХ после установления связи с ГКН + + + + + Пользовательский параметр нежилого помещения, принятый ГИС ЖКХ после установления связи с ГКН + + + + + Пользовательский параметр жилого помещения, принятый ГИС ЖКХ после установления связи с ГКН + + + + + Пользовательский параметр комнаты, принятый ГИС ЖКХ после установления связи с ГКН + + + + + + + + + + Статус связи объекта с ЕГРП: +(C)reated - найдена запись в ЕГРП, доля(и)/обремененения(и) создана(ы) +(D)roped - связь с долей/обремененением разорвана +(N)o relationship - связь с долей/обремененением не устанавливалась + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Сводный статус объекта жилищного фонда в ГИС ЖКХ (для импорта) + + + + + Заполняется для операций importHouseUO, importHouseOMS, ImportHouseESP + + + + + + + + + + + + + Сводный статус объекта жилищного фонда в ГИС ЖКХ (для экспорта) + + + + + + + + Основные характеристики дома (для импорта от УО) + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь здания + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в собственности субъекта Российской Федерации и в полном объеме используется в качестве общежития + + + + + + + + + Основные характеристики дома + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + + + + + Основные характеристики дома (обновление данных для УО) + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО. Только для ОКТМО не из ФИАС + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в собственности субъекта РФ и в полном объеме используется в качестве общежития + + + + + + + + + Основные характеристики дома (обновление данных) + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + ОКТМО. Только для ОКТМО не из ФИАС + + + + + Часовая зона + + + + + + + + + Основные характеристики дома (обновление данных для ОМС) + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО.Только для ОКТМО не из ФИАС + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Данные общежития для импорта + + + + + + + + + Основные характеристики дома (обновление данных для ЕСП) + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО.Только для ОКТМО не из ФИАС + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в cобственности субъекта РФ и в полном объеме используется в качестве общежития + + + + + + + + + Основные характеристики дома (для экспорта). На связь объекта с ГКН/ЕГРП указывает + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Дата сноса + + + + + Основание сноса + + + + + Данные общежития для экспорта + + + + + + + + + Многоквартирный дом (для импорта от УО) + + + + + Основные характеристики + + + + + + + + + Кадастровый номер объекта недвижимости. При указании осуществляется привязка к ГКН и ЕГРП (поиск в ГКН и ЕГРП выполняется по кадастровому номеру). Перечень Субъектов РФ, по которым размещена информация в ГКН/ЕГРП, можно уточнить у Оператора ГИС ЖКХ. Наличие в экспорте указывает на установленную связь с ГКН/ЕГРП по этому элементу. + + + + + Информация об объекте недвижимости из Росреестра не размещена в ГИС ЖКХ. При указании в ГИС ЖКХ не сохраняется информация ни о кадастровом номере, ни о его отсутствии. При изменении объекта, привязанного к ГКН или ЕГРП, выполняется отвязка. Перечень Субъектов РФ, по которым размещена информация в ГКН, можно уточнить у Оператора ГИС ЖКХ. + + + + + + У объекта отсутствует кадастровый номер. При указании в ГИС ЖКХ сохраняется информация об отсутствии кадастрового номера, привязка к ГКН и ЕГРП не выполняется. При изменении объекта, привязанного к ГКН, выполняется отвязка от ГКН и ЕГРП. При изменении объекта, привязанного только к ЕГРП, отвязка не выполняется. + + + + + + Условный номер. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП выполняется по условному номеру). + + + + + Регистрационные данные права или ограничения/обременения прав. При указании в ГИС ЖКХ осуществляется привязка к ЕГРП (поиск в ЕГРП по регистрационным данным прав или ограничений/обременений прав). + + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь здания + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в собственности субъекта Российской Федерации и в полном объеме используется в качестве общежития + + + + + + + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (для импорта от РСО) + + + + + Основные характеристики + + + + + + + Многоквартирный дом (для импорта от ОМС) + + + + + Основные характеристики + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Данные общежития для импорта + + + + + + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (для импорта от ЕСП) + + + + + Основные характеристики + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в cобственности субъекта РФ и в полном объеме используется в качестве общежития + + + + + + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (обновление данных для УО) + + + + + Основные характеристики + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (обновление данных для РСО) + + + + + Основные характеристики + + + + + + + Многоквартирный дом (обновление данных для ОМС) + + + + + Основные характеристики + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (обновление данных для ЕСП) + + + + + Основные характеристики + + + + + Количество подземных этажей + + + + + Количество этажей, наименьшее (значение игнорируется при обработке) + + + + + + + + + + + + Многоквартирный дом (для экспорта) + + + + + Основные характеристики + + + + + Количество подземных этажей + + + + + Вид счета\Способ формирования фонда (НСИ 62) + + + + + + + Лифт (для импорта от УО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + + + Лифт (для импорта от ОМС) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + + + Лифт (для импорта от ЕСП) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + + + Лифт (обновление данных от УО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + Лифт (обновлени еданных от ОМС) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + Лифт (обновлени еданных от ЕСП) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + Лифт (для экспорта) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Заводской номер + + + + + Тип лифта. Ссылка на НСИ "Тип лифта" (реестровый номер 192) + + + + + Данные ОЖФ + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + Жилой дом (для импорта от УО) + + + + + Основные характеристики + + + + + Жилой дом блокированной застройки +(Если не указан - аналог false). + + + + + Несколько жилых домов с одинаковым адресом +(Если не указан - аналог false) + + + + + + + Жилой дом (для импорта от РСО) + + + + + Основные характеристики + + + + + Жилой дом блокированной застройки (Если не указан - аналог false). + + + + + Несколько жилых домов с одинаковым адресом +(Если не указан - аналог false) + + + + + + + Жилой дом (для импорта от ОМС) + + + + + Основные характеристики + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Общая площадь + + + + + Состояние (НСИ 24) + + + + + Стадия жизненного цикла (НСИ 338) + + + + + Год ввода в эксплуатацию + + + + + Количество этажей + + + + + ОКТМО (обязательное для всех территорий, за исключением города и космодрома "Байконур"). Значение из ФИАС при наличии. + + + + + Часовая зона + + + + + Наличие у дома статуса объекта культурного наследия + + + + + Данные ОЖФ + + + + + Данные общежития для импорта + + + + + + + + + + Жилой дом блокированной застройки (Если не указан - аналог false). + + + + + Несколько жилых домов с одинаковым адресом +(Если не указан - аналог false) + + + + + + + Жилой дом (обновление данных для УО) + + + + + Основные характеристики + + + + + + + Жилой дом (обновление данных для РСО) + + + + + Основные характеристики + + + + + + + Жилой дом (обновление данных ОМС) + + + + + Основные характеристики + + + + + + + Жилой дом (для экспорта) + + + + + Основные характеристики + + + + + Жилой дом блокированной застройки + + + + + Несколько жилых домов с одинаковым адресом +(Если не указан - аналог false) + + + + + + + Подъезд (для импорта от УО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (для импорта от РСО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + + + Подъезд (для импорта от ОМС) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (для импорта от ЕСП) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (обновление данных для УО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (обновление данных для РСО) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + Подъезд (обновление данных для ОМС) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (обновление данных для ЕСП) + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Подъезд (для экспорта) + + + + + Номер подъезда +(Может быть не заполнен для группирующих домов) + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Этажность + + + + + + + + + + + Год постройки + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + Блок дома блокированной застройки (для импорта от УО) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + + Жилая площадь помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (для импорта от РСО) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (для импорта от ОМС) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + + Жилая площадь помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (обновление данных для УО) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + + Жилая площадь помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (обновление данных для РСО) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (обновление данных для ОМС) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + + Жилая площадь помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Блок дома блокированной застройки (для экспорта) + + + + + + + Номер блока + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь помещения по паспорту помещения + + + + + + Жилая площадь помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + Категория помещения +(если не задано, считается как жилое) + + + + + + + + + Базовый тип помещения (для импорта от УО) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (для импорта от РСО) + + + + + + + Номер помещения + + + + + + + + + Базовый тип помещения (для импорта от ОМС) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (для импорта от ЕСП) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (обновление данных для УО) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (обновление данных для РСО) + + + + + + + Номер помещения + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + + + Базовый тип помещения (обновление данных для ОМС) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (обновление данных для ЕСП) + + + + + + + Номер помещения + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Базовый тип помещения (для экспорта) + + + + + + + Номер помещения + + + + + Этаж + + + + + Данные ОЖФ + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Жилое помещение (для импорта от УО) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + + + + Жилое помещение (для импорта от РСО) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + + + + Жилое помещение (для импорта от ОМС) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + + + + Жилое помещение (для импорта от ЕСП) + + + + + + + + + Признак отсутствия подезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + + + + Жилое помещение (обновление данных для УО) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + + + + Жилое помещение (обновление данных для РСО) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + + + + Жилое помещение (обновление данных для ОМС) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + + + + Жилое помещение (обновление данных для ЕСП) + + + + + + + + + Признак отсутствия подезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + + + + Жилое помещение (для экспорта) + + + + + + + + + Признак отсутствия подъезда + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Характеристика помещения (НСИ 30) + + + + + Общая площадь жилого помещения по паспорту помещения + + + + + + Жилая площадь жилого помещения по паспорту помещения + + + + + Отсутствует значение жилой площади + + + + + + + + + + Нежилое помещение (для импорта от УО) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (для импорта от РСО) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + + + + + Нежилое помещение (для импорта от ОМС, экспорта) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (для импорта от ЕСП) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (обновление данных для УО) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (обновление данных для РСО) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + + + + + Нежилое помещение (обновление данных для ОМС) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (обновление данных для ЕСП) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Нежилое помещение (для экспорта) + + + + + + + ГУИД дочернего дома по ФИАС, к которому относится подъезд для группирующих домов + + + + + Общая площадь нежилого помещения по паспорту помещения + + + + + Помещение, составляющее общее имущество в многоквартирном доме + + + + + + + + + Комната (для импорта от УО) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (для импорта от РСО) + + + + + + + Номер комнаты + + + + + Площадь + + + + + + + + + Комната (для импорта от ОМС) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (для импорта от ЕСП) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (обновление данных для УО) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (обновление данных для РСО) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + + + + + Комната (обновление данных для ОМС) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (обновление данных для ЕСП) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Данные ОЖФ + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Комната (для экспорта) + + + + + + + Номер комнаты + + + + + Площадь + + + + + Этаж + + + + + Данные ОЖФ + + + + + + Причина аннулирования объекта жилищного фонда (НСИ 330) + + + + + Причина аннулирования.Дополнительная информация + + + + + Информация подтверждена поставщиком + + + + + + + + + Категория помещения для блока + + + + + Жилое + + + + + Нежилое + + + + + + + Количество этажей (тип) + + + + + + + + + Количество подземных этажей (тип) + + + + + + + + + Год ввода в эксплуатацию (тип) + + + + + + + + Номер помещения, комнаты (тип) + + + + + + + + + Номер подъезда + + + + + + + + + + + Если флаг указан для запроса с обновлением данных, то отсутствующие в дельте значения будут подгружены из предыдущей версии сущности. В противном случае отсутствующие значения будут сброшены в NULL. + + + + + Дата аннулирования объекта в ГИС ЖКХ + + + + + + Строка данных для объекта ЖФ + + + + + Код строки в справочнике Форма описания объектов ЖФ + + + + + Значение показателя + + + + + + + Значение строки данных для объекта ЖФ + + + + + Строка + + + + + Вещественное + + + + + Дата + + + + + Целое + + + + + Логическое + + + + + Перечислимое (ссылка на код записи справочника) + + + + + Файл (ссылка на файл) + + + + + + + + + + + Лицевой счет для оплаты за жилое помещение и коммунальные услуги + + + + + Лицевой счет для оплаты за коммунальные услуги. + + + + + Лицевой счет для оплаты капитального ремонта + + + + + Лицевой счет РКЦ + + + + + Лицевой счет ОГВ/ОМС + + + + + Лицевой счет ТКО + + + + + + Дата создания ЛС в ГИС ЖКХ (игнорируется при импорте, оставлено для совместимости) + + + + + Количество проживающих + + + + + + + + + + Общая площадь для ЛС + + + + + Жилая площадь + + + + + Отапливаемая площадь + + + + + Счет закрыт + + + + + Помещение + + + + + + + Идентификатор помещения + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Идентификатор комнаты + + + + + + Доля внесения платы, размер доли в % + + + + + + + + + + + + + + + Сведения о платильщике + + + + + + Является нанимателем? + + + + + Лицевые счета на помещение(я) разделены? + + + + + В случае неуказания СНИЛС/удостоверения личности/ссылки на реестр организаций, личный кабинет плательщика не будет автоматически подключен к лицевому счету. + + + + Физическое лицо/индивидуальный предприниматель. + + + + + Организация. ЮЛ/ИП/ОП. Ссылка на реестр организаций + + + + + + + + + + + + + + Лицевой счет для оплаты за жилое помещение и коммунальные услуги + + + + + Лицевой счет для оплаты за коммунальные услуги. + + + + + Лицевой счет для оплаты капитального ремонта + + + + + Лицевой счет РКЦ + + + + + Лицевой счет ОГВ/ОМС + + + + + Лицевой счет ТКО + + + + + + Дата создания ЛС в ГИС ЖКХ + + + + + Количество проживающих + + + + + Общая площадь для ЛС + + + + + Жилая площадь + + + + + Отапливаемая площадь + + + + + Счет закрыт + + + + + Помещение + + + + + + + Идентификатор помещения + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Идентификатор комнаты + + + + + + Доля внесения платы, размер доли в % + + + + + + + + + + + + + + Сведения о платильщике + + + + + + Является нанимателем? + + + + + Лицевые счета на помещение(я) разделены? + + + + + В случае неуказания СНИЛС/удостоверения личности/ссылки на реестр организаций, личный кабинет плательщика не будет автоматически подключен к лицевому счету. + + + + Физическое лицо/индивидуальный предприниматель. + + + + + Организация. ЮЛ/ИП/ОП. Ссылка на реестр организаций + + + + + + + + + + + Физическое лицо + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + + + + + + + + + Физическое лицо + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + + + Удостоверение личности + + + + + + Документ, удостоверяющий личность (НСИ 95) + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата выдачи документа + + + + + + + + + + + + + Характеристика ЛС + + + + + Количество проживающих + + + + + + + + + + Плательщик + + + + Собственник ФЛ. Ссылка на физлицо в реестре физлиц + + + + + Собственник ЮЛ/ИП/ОП. Ссылка га реестр организаций + + + + + ФЛ по договору социального наема. Ссылка на физлицо в реестре физлиц + + + + + Собственник ЮЛ/ИП/ОП. Ссылка га реестр организаций + + + + + + Нежилая площадь + + + + + Нежилая площадь + + + + + Нежилая площадь + + + + + Счет закрыт + + + + + + + Параметры закрытого ЛС + + + + + Причина закрытия (НСИ 22) + + + + + Дата закрытия + + + + + Примечание + + + + + + + + + + + + + Тип импорта оснований ЛС + + + + + Договор ресурсоснабжения + + + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + True, если договор не является публичным и/или присутствует заключенный на бумажном носителе или в электронной форме. + + + + + + + + + Договор найма жилого помещения + + + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Тип: +(D)WELLING_APARTMENT - Договор социального найма жилого помещения +STATE_(M)UNICIPAL_FUND - Договор найма жилого помещения государственного или муниципального жилищного фонда +(S)OCIAL_FUND - Договор найма жилого помещения жилищного фонда социального использования + + + + + + + + + + + + + + + + + + Договор на оказание услуг по обращению с твердыми коммунальными отходами + + + + + + + + Номер договора + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + + + + + + + Индивидуальная услуга ЛС + + + + + Дата начала представления услуги + + + + + Дата окончания представления услуги + + + + + Ссылка на справочник дополнительных услуг (НСИ №1) + + + + + Основание + + + + + + + Идентификатор индивидуальной услуги ЛС + + + + + + Корневой идентификатор договора (не меняется от версии к версии) + + + + + Идентификатор версии договора + + + + + Корневой идентификатор устава (не меняется от версии к версии) + + + + + Идентификатор версии устава в ГИС ЖКХ + + + + + + + Номер документа + + + + + + + + + + + + + + Сроки передачи показаний индивидуальных и общих (квартирных) приборов учета с указанием даты начала и даты окончания периода передачи показаний + + + + + + Начало периода ввода показаний ПУ + + + + + Окончание периода ввода показаний ПУ + + + + + + + + Срок представления (выставления) платежных документов для внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + Срок внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + + + + + Сроки передачи показаний индивидуальных и общих (квартирных) приборов учета с указанием даты начала и даты окончания периода передачи показаний + + + + + + Начало периода ввода показаний ПУ + + + + + Окончание периода ввода показаний ПУ + + + + + + + + Срок представления (выставления) платежных документов для внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + Срок внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + + + Тип выбора дня + + + + + + День месяца + + + + + + + + + + + Последний день месяца + + + + + + Следующего месяца? + + + + + + + Тип выбора дня для экспорта + + + + + + День месяца + + + + + + + + Последний день месяца + + + + + + Следующего месяца? + + + + + + + + + Сроки передачи показаний индивидуальных и общих (квартирных) приборов учета с указанием даты начала и даты окончания периода передачи показаний + + + + + + Начало периода ввода показаний ПУ + + + + + Окончание периода ввода показаний ПУ + + + + + + + + Срок представления (выставления) платежных документов для внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + Срок внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + + + + + Сроки передачи показаний индивидуальных и общих (квартирных) приборов учета с указанием даты начала и даты окончания периода передачи показаний + + + + + + Начало периода ввода показаний ПУ + + + + + Окончание периода ввода показаний ПУ + + + + + + + + Срок представления (выставления) платежных документов для внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + Срок внесения платы за жилое помещение и (или) коммунальные услуги + + + + + + + День месяца (от 1-30) + + + + + + + + Последний день месяца + + + + + + + Текущего месяца + + + + + + + Следующего месяца + + + + + + + + + + + + Тип выбора дня начала/окончания периода ввода показаний по ПУ + + + + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + Дата начала предоставления услуг + + + + + Дата окончания предоставления услуг + + + + + + + + + + Идентификатор в ГИС ЖКХ (ссылка на подсистему голосования) + + + + + Приложенный документ + + + + + + + + + Признак пролонгации + + + + + + + + + Дата расторжения, прекращения действия устава + + + + + + + + + Удалить проект документа + + + + + + + + + Ссылка на НСИ + + + + + Дата начала предоставления услуги + + + + + Дата окончания предоставления услуги + + + + + + + + + Номер + + + + + + + + + + Дата + + + + + + + + + Номер + + + + + + + + + + Дата + + + + + + + + + Признак утверждения ДУ + + + + + + + + + Текущий ДУ + + + + + Ссылка на дополнительное соглашение + + + + + + + + + Текущий устав + + + + + Ссылка на протокол собрания собственников + + + + + + + Устав + + + + + Дата присвоения ОГРН TCН/ТСЖ/ кооперативу (Организации поставщика данных) + + + + + Информация о сроках + + + + + Протокол собрания собственников + + + + + + Протокол собрания собственников (Добавление нового протокола) + + + + + Идентификатор версии протокола голосования (Добавление протокола из реестра сведений о голосовании) + + + + + + + + Протокол, содержащий решение об утверждении устава, отсутствует (при значениии True MeetingProtocol необзяательны) + + + + + Документы устава + + + + + Автоматически продлить срок оказания услуг на один год. Для автоматического продления указывается значение true. + + + + + Разрешить (true) или запретить (false) передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. Если признак не передан, исползуется значение глобальной настройки "Разрешить передачу гражданам показаний индивидуальных или общих (квартирных) приборов учета в любой день месяца по всем договорам". + + + + + + + Устав (для экспорта) + + + + + Дата регистрации TCН/ТСЖ/кооператива (Организации Поставщика данных) + + + + + Информация о сроках + + + + + Протокол собрания собственников + + + + + + Протокол собрания собственников (Добавление нового протокола) + + + + + Идентификатор версии протокола голосования (Добавление протокола из реестра сведений о голосовании) + + + + + + + + Протокол, содержащий решение об утверждении устава, отсутствует (при значениии True MeetingProtocol необзяательны) + + + + + Документы устава + + + + + Автоматически продлить срок оказания услуг на один год. Для автоматического продления указывается значение true. + + + + + Разрешить (true) или запретить (false) передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. + + + + + + + ДУ + + + + + Номер документа + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Планируемая дата окончания + + + + + Срок действия (заполняется при экспорте) + + + + + + Месяц + + + + + + + + + + год/лет + + + + + + + + + + + + + Вторая сторона договора + + + + Собственник объекта жилищного фонда (можно указать только один действущий управляемый объект) + + + + + ТСЖ/Кооператив + + + + + Собственник муниципального жилья + + + + + Застройщик + + + + + Орган, уполномоченный на принятие решения об определении управляющей организации + + + + + + Сведения о протоколе открытого конкурса/собрания собственников + + + + + + Протокол открытого конкурса/собрания собственников (Добавление нового протокола) + + + + + + + + Элемент не используется, оставлен в схеме для обеспечения совместимости интеграционного взаимодействия + + + + + + + + + + Протокол открытого конкурса + + + + + + Протокол собрания собственников + + + + + + Протокол заседания правления + + + + + Документ, подтверждающий принятое решение органом управления застройщика + + + + + + + + Идентификатор версии протокола голосования (Добавление протокола из реестра сведений о голосовании) + + + + + + + + +Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + + + + + Сведения о сроках. Для EditContract допускается указывать пустым, сведения будут скопированы из предыдущей версии. + + + + + Договор на управление и приложения + + + + + Дополнительное соглашение + + + + + + + + Реквизиты дополнительного соглашения + + + + + + + + + + Реестр собственников, подписавших договор. + +Элемент обязателен, если стороной договора являются собственники объекта жилищного фонда и основанием заключения договора указано "Решение общего собрания собственников". В остальных случаях элемент не заполняется + + + + + Разрешение на ввод в эксплуатацию. Обязателен, если в "Основание заключения договора" указано "Разрешение на ввод в эксплуатацию". + + + + + Устав. Обязателен, если в "Основание заключения договора" указано "Устав". + + + + + Решение органа местного самоуправления. + +Может указываться только в том случае, если в "Основание заключения договора" указано "Решение органа местного самоуправления" + + + + + Идентификатор решения из Реестра решений об определении управляющей организации. Обязателен, если в элементе "Основание заключения договора" указано "Решение органа местного самоуправления". + + + + + Автоматически пролонгировать договор на один год при наступлении даты окончания действия договора. Для автоматического пролонгирования указывается значение true. + + + + + + + ДУ (для экспорта) + + + + + Номер документа + + + + + + + + + + + Дата заключения + + + + + Дата вступления в силу + + + + + Планируемая дата окончания + + + + + Срок действия (заполняется при экспорте) + + + + + + Месяц + + + + + + + + + + год/лет + + + + + + + + + + + + + Вторая сторона договора + + + + Собственник объекта жилищного фонда (можно указать только один действущий управляемый объект) + + + + + ТСЖ/Кооператив + + + + + Собственник муниципального жилья + + + + + Застройщик + + + + + Орган, уполномоченный на принятие решения об определении управляющей организации + + + + + + Сведения о протоколе открытого конкурса/собрания собственников + + + + + + Протокол открытого конкурса/собрания собственников (Добавление нового протокола) + + + + + + + + Элемент не используется, оставлен в схеме для обеспечения совместимости интеграционного взаимодействия + + + + + + + + + + Протокол открытого конкурса + + + + + + Протокол собрания собственников + + + + + + Протокол заседания правления + + + + + Документ, подтверждающий принятое решение органом управления застройщика + + + + + + + + Идентификатор версии протокола голосования (Добавление протокола из реестра сведений о голосовании) + + + + + + + + +Ссылка на НСИ "Основание заключения договора" (реестровый номер 58). + + + + + Сведения о сроках. Для EditContract допускается указывать пустым, сведения будут скопированы из предыдущей версии. + + + + + Договор на управление и приложения + + + + + Дополнительное соглашение + + + + + + + + Реквизиты дополнительного соглашения + + + + + + + + + + Реестр собственников, подписавших договор. + + + + + Разрешение на ввод в эксплуатацию. Обязателен, если в "Основание заключения договора" указано "Разрешение на ввод в эксплуатацию". + + + + + Устав. Обязателен, если в "Основание заключения договора" указано "Устав". + + + + + Решение органа местного самоуправления. + + + + + Идентификатор решения из Реестра решений об определении управляющей организации. + + + + + Автоматически пролонгировать договор на один год при наступлении даты окончания действия договора. Для автоматического пролонгирования указывается значение true. + + + + + Разрешить (true) или запретить (false) передачу гражданам текущих показаний по индивидуальным приборам учета в любой день месяца. + + + + + + + Статус ДУ в ГИС ЖКХ: +Project - проект +ApprovalProcess - на утверждении +Rejected - отклонен +Approved - утвержден +Terminated - расторгнут +Reviewed - рассмотрен +Annul - сведения аннулированы + + + + + + Статус устава в ГИС ЖКХ: + Project - проект + Approved - утвержден + Terminated - расторгнут/закрыт + Annul - аннулирован + Reviewed - рассмотрен + ApprovalProcess - на утверждении + Rejected - отклонен + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Идентификатор версии объекта управления в ГИС ЖКХ + + + + + Статус объекта управления + + + + + + + + + + + + + Статус управляемого объекта: +Project-Проект +ApprovalProcess-На утверждении +Rejected-Отклонен +Approved-Утвержден +Locked-Заблокирован +Annul-Сведения аннулированы + + + + + + Аннулирование сведений + + + + + Причина аннулировани + + + + + + + + + + + + Тип информации о размере платы за жилое помещение по ДУ + + + + + Дата начала периода + + + + + Дата окончания периода + + + + + Размер платы (цена) за услуги, работы по управлению МКД (если утверждена протоколом обшего собрания собственников)/Размер платы за содержание жилого помещения, установленный по результатам открытого конкурса (если утверждена протоколом открытого конкурса) + + + + + Если элемент не указан, выполняется попытка привязки к одному из протоколов, приложенному к ДУ + + + + Протокол общего собрания собственников помещений в многоквартирном доме об установлении размера платы за содержание жилого помещения + + + + + Идентификатор версии протокола голосования с решением с типом 12.1 «Текущий ремонт общего имущества» и(или) с типом 15.1 «Другие вопросы» адресом объекта управления. + + + + + + Информация о размере платы (цене, тарифе) за содержание и текущий ремонт общего имущества в многоквартирном доме/Информация о размере платы за содержание жилого помещения, установленном по результатам открытого конкурса по отбору управляющей организации для управления многоквартирным домом + + + + + + Работа/услуга организации (НСИ №59) + + + + + Размер платы (цены, тарифа) за работы (услуги)/Размер платы за работы (услуги), в целой части указываются рубли, в вещественной - до сотых долей копеек. + + + + + + + + Тип размера платы: +(P)rotocol - утвержденный протоколом общего собрания собственников +(С)ompetition - установленный по результатам открытого конкурса +(A)uthority - установленный органом местного самоуправления + + + + + + + + + + + + + + + + Тип информации о размере платы за жилое помещение по уставу + + + + + Дата начала периода + + + + + Дата окончания периода + + + + + Информация о размере обязательных платежей и (или) взносов членов товарищества, кооператива, +связанных с оплатой расходов на содержание и текущий ремонт общего имущества в МКД + + + + + + Размер обязательных платежей и (или) взносов членов товарищества, кооператива + + + + + Протокол общего собрания членов товарищества, кооператива об утверждении обязательных платежей и (или) взносов членов товарищества, кооператива + + + + + + + + Информация о размере платы за содержание и ремонт жилого помещения для собственника +помещения в МКД, не являющегося членом товарищества, кооператива + + + + + + Размер платы за содержание и ремонт жилого помещения для собственника помещения в МКД + + + + + Протокол общего собрания членов товарищества, кооператива об утверждении размера платы за содержание и ремонт жилого помещения для собственника помещения в многоквартирном доме + + + + + + + + Информация о размере платы (цене, тарифе) за содержание и текущий ремонт общего имущества в многоквартирном доме + + + + + + Работа/услуга организации (НСИ №59) + + + + + Размер платы (цена) за услуги, работы по управлению МКД. В целой части указываются рубли, в вещественной сотые долей копеек. + + + + + + + + + + Для всех управляемых объектов + + + + + + + + Идентификатор версии сведений о размере платы по ДУ + + + + + Идентификатор версии сведений о размере платы по уставу + + + + + Формировать заявки в реестр лицензий, если сведения об управляемом объекте в договоре управления конфликтуют с реестром лицензий + + + + + Формировать заявки в реестр информации о способах управления МКД (РИСУ), если сведения об управляемом объекте устава конфликтуют с РИСУ + + + + + Неотрицательная маленькая сумма + + + + + + + + + + + + + + + + + + + Место проведения собрания + + + + + + + + + + + + + Сведения об инициаторах собрания + + + + + + Физическое лицо (собственник помещений) + + + + + Организация инициатор собрания ИП или Юр. лицо (УО) + + + + + + + + Прикрепляемые файлы + + + + + + + + + + Протокол ОСС + + + + + Глобальный уникальный идентификатор дома по ФИАС + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" и не заполнено ТСЖ/Кооператив + + + + + Товарищество Собственников Жилья/ Кооператив + + + + + Номер протокола + + + + + + + + + + Дата составления протокола + + + + + Форма проведения + + + + Заочное голосование (опросным путем) + + + + + + Дата начала приема решений собственников. +Обязательно для заполнения, если заполнен элемент tns:Placing. + + + + + Дата окончания приема решений + + + + + Место приема решения + + + + + + + + + + + + + + + Очное голосование + + + + + + + + + Дата и время проведения собрания + + + + + + + + + + + Заочное голосование с использованием системы. Не используется для импорта протоколов + + + + + + Дата и время начала проведения голосования + + + + + Дата и время окончания проведения голосования + + + + + Порядок приема оформленных в письменной форме решений собственников + + + + + + + + + + Порядок ознакомления с информацией и (или) материалами, которые будут представлены на данном собрании + + + + + + + + + + + + + + Очное-заочное голосование + + + + + + + Дата и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + Дата начала приема решений собственников. +Обязательно для заполнения, если заполнен элемент tns:Placing. + + + + + Дата окончания приема решений + + + + + Место приема решения + + + + + + + + + + + + + + + + Тип собрания + +Доступны следующие значения: +-Owners - Собрание собственников +-Homeowners - Собрание ТСЖ +-Cooperative - Собрание кооператива + +По умолчанию устанавливается значение "Собрание собственников", если не заполнено + + + + + Вид собрания + + + + Внеочередное собрание + + + + + Ежегодное собрание + + + + + + + Правомочность собрания +Допустимые значения +(C)OMPETENT - Правомочно (имеет кворум) +(N)OT_COMPETENT- Не правомочно (кворум отсутствует) + + + + + + + + + + + + Повестка + + + + + + + Номер вопроса + + + + + Вопрос + + + + + + + + + + + Тип вопроса (НСИ №63) + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" + + + + + Тип вопроса для ТСЖ (НСИ №341) + +Обязательно к заполнению, если "Тип собрания" = "Собрание ТСЖ" + + + + + + + + + + Тип вопроса для Кооператива + +Обязательно к заполнению, если "Тип собрания" = "Собрание кооператива" + + + + Есть в уставе + + + + + Нет в уставе + + + + + + Результаты голосования + + + + Результаты голосования «За» + + + + + Результаты голосования «Против» + + + + + Результаты голосования «Воздержался» + + + + + + Выбранный способ формирования фонда (справочник «Вид счета\Способ формирования фонда» НСИ 62). При импорте нельзя указывать "Значение не выбрано". + + + + + Выбранный способ управления МКД (справочник «Способ управления» НСИ 25) + + + + + Система, в которой проводится голосование. Заполняется только для вопроса "Использование иной информационной системы при проведении общего собрания собственников помещений в многоквартирном доме в форме заочного голосования" + + + + + Сведения о выбираемом АОСС + +Заполняется только для вопросов с типом "Определение администратора общего собрания с указанием СНИЛС и(или) ОГРН" + + + + + + Итог голосования +Допустимые значения: +DECISION_IS_(M)ADE - решение принято +DECISION_IS_(N)OT_MADE - решение не принято + + + + + + + + + + + + + + Основание изменения. Заполняется для протоколов ОСС в статусе "Размещен" + + + + + + + + + + + + Сообщение о проведении ОСС + + + + + Глобальный уникальный идентификатор дома по ФИАС + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" и не заполнено ТСЖ/Кооператив + + + + + Товарищество Собственников Жилья/ Кооператив + + + + + Номер сообщения + + + + + Дата составления сообщения + + + + + Вид собрание + + + + Внеочередное собрание + + + + + Ежегодное собрание + + + + + + Форма проведения + + + + Заочное голосование (опросным путем) + + + + + + Дата начала приема решений + + + + + Дата окончания приема решений + + + + + Место приема решений + + + + + + + + + + + + + + + Очное голосование + + + + + + Даьа и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + + + + + Очно-заочное голоосвание + + + + + + Дата начала приема решений + + + + + Дата окончания приема решений + + + + + Место приема решений + + + + + + + + + + + Даьа и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + + + + + Заочное голоосвание с использованием системы + + + + + + Дата и время начала проведения голосования + + + + + Дата и время окончания проведения голосования + + + + + Порядок приема оформленных в письменной форме решений собственников + + + + + + + + + + Порядок ознакомления с информацией и (или) материалами, которые будут представлены на данном собрании + + + + + + + + + + Система, в которой проводится голосование + + + + + Первое ОСС + +Заполняется только если в tns:VotingSystem выбрано "Региональная информационная система" или "ЕПГУ" + + + + + Сведения об АОСС + + + + + Место или фактический адрес администратора общего собрания + + + + + + + + + + + + + + + + Тип собрания + +Доступны следующие значения: +-Owners - Собрание собственников +-Homeowners - Собрание ТСЖ +-Cooperative - Собрание кооператива + +По умолчанию устанавливается значение "Собрание собственников" + + + + + + Повестка + + + + + + Номер вопроса + + + + + Вопрос + + + + + + + + + + + Тип вопроса (НСИ №63) + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" + + + + + Тип вопроса для ТСЖ (НСИ №341) + +Обязательно к заполнению, если "Тип собрания" = "Собрание ТСЖ" + + + + + + + + + + Тип вопроса для Кооператива + +Обязательно к заполнению, если "Тип собрания" = "Собрание кооператива" + + + + Есть в уставе + + + + + Нет в уставе + + + + + + Выбранный способ формирования фонда (справочник «Вид счета\Способ формирования фонда» НСИ 62). При импорте нельзя указывать "Значение не выбрано". + + + + + Выбранный способ управления МКД (справочник «Способ управления» НСИ 25) + + + + + Система, в которой проводится голосование. Заполняется только для вопроса "Использование иной информационной системы при проведении общего собрания собственников помещений в многоквартирном доме в форме заочного голосования" + + + + + Сведения о выбираемом АОСС + +Заполняется только для вопросов с типом "Определение администратора общего собрания с указанием СНИЛС и(или) ОГРН" + + + + + + + + Основание изменения. Заполняется для сообщений в статусе "Сообщение размещено" и с формой проведения отличной от "Заочное голосование с использованием системы" + + + + + + + + + + + + Экспорт сообщения о проведении ОСС + + + + + Глобальный уникальный идентификатор дома по ФИАС + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" и не заполнено ТСЖ/Кооператив + + + + + Товарищество Собственников Жилья/ Кооператив + + + + + Номер сообщения + + + + + Дата составления сообщения + + + + + Вид собрание + + + + Внеочередное собрание + + + + + Ежегодное собрание + + + + + + Форма проведения + + + + Заочное голосование (опросным путем) + + + + + + Дата начала приема решений + + + + + Дата окончания приема решений + + + + + Место приема решений + + + + + + + + + + + + + + + Очное голосование + + + + + + Даьа и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + + + + + Очно-заочное голоосвание + + + + + + Дата начала приема решений + + + + + Дата окончания приема решений + + + + + Место приема решений + + + + + + + + + + + Даьа и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + + + + + Заочное голоосвание с использованием системы + + + + + + Дата и время начала проведения голосования + + + + + Дата и время окончания проведения голосования + + + + + Порядок приема оформленных в письменной форме решений собственников + + + + + + + + + + Порядок ознакомления с информацией и (или) материалами, которые будут представлены на данном собрании + + + + + + + + + + Система, в которой проводится голосование + + + + + Первое ОСС + +Заполняется только если в tns:VotingSystem выбрано "Региональная информационная система" или "ЕПГУ" + + + + + Сведения об АОСС + + + + + Место или фактический адрес администратора общего собрания + + + + + + + + + + + + + + + + Тип собрания + +Доступны следующие значения: +-Owners - Собрание собственников +-Homeowners - Собрание ТСЖ +-Cooperative - Собрание кооператива + +По умолчанию устанавливается значение "Собрание собственников" + + + + + + Повестка + + + + + + Номер вопроса + + + + + Вопрос + + + + + + + + + + + Тип вопроса (НСИ №63) + +Обязательно к заполнению, если "Тип собрания" = "Собрание собственников" + + + + + Тип вопроса для ТСЖ (НСИ №341) + +Обязательно к заполнению, если "Тип собрания" = "Собрание ТСЖ" + + + + + + + + + + Тип вопроса для Кооператива + +Обязательно к заполнению, если "Тип собрания" = "Собрание кооператива" + + + + Есть в уставе + + + + + Нет в уставе + + + + + + Выбранный способ формирования фонда (справочник «Вид счета\Способ формирования фонда» НСИ 62). При импорте нельзя указывать "Значение не выбрано". + + + + + Выбранный способ управления МКД (справочник «Способ управления» НСИ 25) + + + + + Система, в которой проводится голосование. Заполняется только для вопроса "Использование иной информационной системы при проведении общего собрания собственников помещений в многоквартирном доме в форме заочного голосования" + + + + + Сведения о выбираемом АОСС + +Заполняется только для вопросов с типом "Определение администратора общего собрания с указанием СНИЛС и(или) ОГРН" + + + + + + + + Основание изменения. Заполняется для сообщений в статусе "Сообщение размещено" и с формой проведения отличной от "Заочное голосование с использованием системы" + + + + + + + + + + + + Сведения об АОСС + + + + + Физическое лицо (собственник помещений) + + + + + + Физическое лицо (собственник помещений) + + + + + Глобальный уникальный идентификатор дома по ФИАС + +Место постояного проживания по ФИАС + + + + + Место постоянного проживания + + + + + + + + + + + Номер контактного телефона + + + + + + + + + + + Адрес электронной почты + + + + + + + + + + + + + + Организация инициатор собрания ИП или Юр. лицо (УО) + + + + + + + Аннулирование протокола ОСС + + + + + Основание аннулирования протокола + + + + + + + + + + + Организация, принявшая решение об аннулировании + + + + + Организация или физическое лицо, принявшая решение об аннулировании + + + + + + Дата решения об аннулировании. По умолчанию сохраняется дата выполнения аннулирования + + + + + Номер решения об аннулировании + + + + + + + + + + Причина аннулирования по НСИ (НСИ№271). По умолчанию запись с кодом 3 "Ошибка ввода" + + + + + Электронная копия документа об аннулировании. Обязательно добавление хотя бы одного файла, если Причина аннулирования по НСИ "Решение суда" (код записи 1) + + + + + + + Итоги для голосований с использованием системы + + + + + Номер протокола + + + + + + + + + + Дата составления протокола + + + + + Правомочность собрания +Допустимые значения +(C)OMPETENT - Правомочно (имеет кворум) +(N)OT_COMPETENT- Не правомочно (кворум отсутствует) + + + + + + + + + + + + Повестка + + + + + + Номер вопроса + + + + + Результаты голосования + + + + Результаты голосования «За» + + + + + Результаты голосования «Против» + + + + + Результаты голосования «Воздержался» + + + + + + Итог голосования +Допустимые значения: +DECISION_IS_(M)ADE - решение принято +DECISION_IS_(N)OT_MADE - решение не принято + + + + + + + + + + + + + + + + + Протокол ОСС (для экспорта) + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + Товарищество Собственников Жилья/ Кооператив + + + + + Номер протокола + + + + + + + + + + Дата составления протокола + + + + + Форма проведения + + + + Заочное голосование (опросным путем) + + + + + + Дата начала приема решений собственников + + + + + Дата окончания приема решений + + + + + Место приема решения + + + + + + + + + + + + + + + Очное голосование + + + + + + + + + Дата и время проведения собрания + + + + + + + + + + + Заочное голосование с использованием системы + + + + + + Дата и время начала проведения голосования + + + + + Дата и время окончания проведения голосования + + + + + Порядок приема оформленных в письменной форме решений собственников + + + + + + + + + + Порядок ознакомления с информацией и (или) материалами, которые будут представлены на данном собрании + + + + + + + + + + Система, в которой проводится голосование + + + + + Первое ОСС + +Заполняется только если в tns:VotingSystem выбрано "Региональная информационная система" или "ЕПГУ" + + + + + + + + + Очное-заочное голосование + + + + + + + Дата и время проведения собрания + + + + + Место проведения собрания + + + + + + + + + + + Дата начала приема решений собственников + + + + + Дата окончания приема решений + + + + + Место приема решения + + + + + + + + + + + + + + + + Тип собрания + +Доступны следующие значения: +-Owners - Собрание собственников +-Homeowners - Собрание ТСЖ +-Cooperative - Собрание кооператива + + + + + Вид собрания + + + + Внеочередное собрание + + + + + Ежегодное собрание + + + + + + Сведения об инициаторах собрания + + + + + + Физическое лицо (собственник помещений) + + + + + Организация инициатор собрания ИП или Юр. лицо (УО) + + + + + + + + Правомочность собрания +Допустимые значения +(C)OMPETENT - Правомочно (имеет кворум) +(N)OT_COMPETENT- Не правомочно (кворум отсутствует) + + + + + + + + + + + + Повестка + + + + + + + Номер вопроса + + + + + Вопрос + + + + + + + + + + + Тип вопроса (НСИ №63) + + + + + Тип вопроса для ТСЖ (НСИ №341) + + + + + + + + + + Тип вопроса для Кооператива + + + + Есть в уставе + + + + + Нет в уставе + + + + + + Результаты голосования + + + + Результаты голосования «За» + + + + + Результаты голосования «Против» + + + + + Результаты голосования «Воздержался» + + + + + + Выбранный способ формирования фонда (справочник «Вид счета\Способ формирования фонда» НСИ 62) + + + + + Выбранный способ управления МКД (справочник «Способ управления» НСИ 25) + + + + + Система, в которой проводится голосование. Заполняется только для вопроса "Использование иной информационной системы при проведении общего собрания собственников помещений в многоквартирном доме в форме заочного голосования" + + + + + Сведения о выбираемом АОСС + +Заполняется только для вопросов с типом "Определение администратора общего собрания с указанием СНИЛС и(или) ОГРН" + + + + + + Итог голосования +Допустимые значения: +DECISION_IS_(M)ADE - решение принято +DECISION_IS_(N)OT_MADE - решение не принято + + + + + + + + + + + + + + Основание изменения. Заполняется для протоколов ОСС в статусе "Размещен" + + + + + + + + + + + + Информация о системе, в которой проводится собрание + + + + + Система, в которой проводится голосование + + + + + Обязательно если в VotingSystem выбрано "Региональная информационная система" или "Иная система" + + + + Наименование системы + + + + + + + + + + + Идентификатор системы. Может быть заполнен только если в VotingSystem выбрано "Региональная информационная система" + + + + + + Адрес в сети Интернет. Обязательно если в VotingSystem выбрано "Региональная информационная система" или "Иная система" + + + + + + + + + + + + + + + Арендатор/Наниматель + + + + Организация + + + + + Физическое лицо + + + + + + Адрес. Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер договора + + + + + Дата договора + + + + + Дата начала действия договора + + + + + Планируемая дата окончания действия договора + + + + + Предмет договора + + + + + + + + + + Комментарий + + + + + + + + + + Размер платы за предоставление в пользование части общего имущества собственников помещений в МКД в месяц + + + + + Направление расходования средств, внесенных за пользование частью общего имущества + + + + + + + + + + Документы договора (Договор/дополнительные соглашения) + + + + + Протокол собрания собственников + + + + + + Протокол собрания собственников (Добавление нового протокола) + + + + + + Номер протокола + + + + + + + + + + Дата составления протокола + + + + + Документы, подтверждающие полномочия заключать договор + + + + + + + + Идентификатор версии протокола собрания собственников в ГИС ЖКХ (Добавление протокола из реестра сведений о голосовании) + + + + + + + + Договор заключен на безвозмездной основе? + + + + + + + + + Арендатор/Наниматель + + + + Организация + + + + + Физическое лицо + + + + + + Адрес. Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер договора + + + + + Дата договора + + + + + Дата начала действия договора + + + + + Планируемая дата окончания действия договора + + + + + Предмет договора + + + + + + + + + + Комментарий + + + + + + + + + + Размер платы за предоставление в пользование части общего имущества собственников помещений в МКД в месяц + + + + + + + + + + + Направление расходования средств, внесенных за пользование частью общего имущества + + + + + + + + + + Документы договора (Договор/дополнительные соглашения) + + + + + Протокол собрания собственников + + + + + + Протокол собрания собственников (Добавление нового протокола) + + + + + + Номер протокола + + + + + + + + + + Дата составления протокола + + + + + Документы, подтверждающие полномочия заключать договор + + + + + + + + Идентификатор версии протокола собрания собственников в ГИС ЖКХ (Добавление протокола из реестра сведений о голосовании) + + + + + + + + + + Инициатор - физическое лицо + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + + + + + Место рождения + + + + + + + + + + + + + + + Удостоверение личности + + + + + + Документ, удостоверяющий личность (НСИ 95) + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата выдачи документа + + + + + + + + Тип собрания + + + + + + + + + + Статус сообщения о проведении общего собрания + + + + + + + + + + + + Система, в которой проводится собрание + + + + + ГИС ЖКХ + + + + + Федеральная государственная информационная система «Единый портал государственных и муниципальных услуг» (ЕПГУ) + + + + + Региональная информационная система + + + + + Иная система + + + + + + + Номер вопроса в голосовании + + + + + + + + + + Решение собственника по вопросам, переданным в письменной форме + + + + + + + Сведения о представителе. + +Заполняется, если в голосании участвует представитель собственника + + + + + Вопрос повестки + + + + + Электронный образ решения собственника + + + + + + + Решение по вопросу + + + + + Номер вопроса + + + + + Решение собственника + + + + Решение собственника «За» + + + + + Решение собственника «Против» + + + + + Решение собственника «Воздержался» + + + + + + Признак "Собственник проголосовал с использованием системы". Может быть равно true только для голосований с формой проведения "Заочное голосование с использованием системы" + + + + + + + Экспортируемое решение по вопросу + + + + + + Номер вопроса + + + + + Вопрос + + + + + + + + + + + + Решение собственника + + + + Решение собственника «За» + + + + + Решение собственника «Против» + + + + + Решение собственника «Воздержался» + + + + + + Признак "Собственник проголосовал с использованием системы". Может быть равно true только для голосований с формой проведения "Заочное голосование с использованием системы" + + + + + + + Физическое лицо для решений + + + + + + + + Удостоверение личности для решений + + + + + + Документ, удостоверяющий личность (НСИ 95) + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + Сведения о собственнике + + + + + + Физическое лицо (собственник помещений) + + + + + + + Документы удостоверяющие личность + + + + + Удостоверение личности собственника + + + + + + + + + + Организация собственник ИП или Юр. лицо (УО) + + + + + + + + Сведения о собственности + + + + + + Номер государственной регистрации + + + + + + + + + + Дата государственной регистрации + + + + + Номер помещения + + + + + Общая площадь помещения + + + + + Вид собственности + + + + + + Долевая + + + + + Индивидуальная + + + + + Совместная + + + + + + + + Размер доли, принадлежащей собственнику. +Заполняется, если "Вид собственности"="Долевая" + + + + + + Доля собственности. Размер доли (Числитель) + + + + + + + + + + + Доля собственности. Размер доли (Знаменатель) + + + + + + + + + + + + + + + + + Сведения о собственности для экспорта + + + + + + Номер государственной регистрации + + + + + + + + + + Дата государственной регистрации + + + + + Номер помещения + + + + + Общая площадь помещения + + + + + Вид собственности + + + + + + Долевая + + + + + Индивидуальная + + + + + Совместная + + + + + + + + Размер доли, принадлежащей собственнику. +Заполняется, если "Вид собственности"="Долевая" + + + + + + Доля собственности. Размер доли (Числитель) + + + + + + + + + + + Доля собственности. Размер доли (Знаменатель) + + + + + + + + + + + + + + + + + Сведения о представителе + + + + + + + Физическое лицо (представитель) + + + + + + + Документы удостоверяющие личность + + + + + Удостоверение личности представителя + + + + + + + + + + Организация представитель ИП или Юр. лицо + + + + + + Представитель собственника действует на основании доверенности, удостоверенной нотариально + + + + + Документ, подтверждающий законное представительство собственника помещения + + + + + + + + + Письменный отказ собственника + + + + + + + Сведения о представителе. Заполняется, если отказ внесён представителем собственника + + + + + Электронный образ отказа собственника + + + + + + + Статус письменного отказа собственника + + + + + Размещен + + + + + Аннулирован + + + + + + + Письменный отказ собственника (для экспорта) + + + + + Корневой идентификатор сообщения о проведении общего собрания + + + + + Корневой идентификатор письменного отказа собственника + + + + + + + Сведения о представителе. Заполняется, если отказ внесён представителем собственника + + + + + Электронный образ отказа собственника + + + + + Статус письменного отказа собственника. +Допустимые значения: +-Posted-Размещен +-Annuled-Аннулирован + + + + + Дата и время размещения письменного отказа + + + + + + + + Объект жилищного фонда + + + + + Тип дома: MKD - Многоквартирный дом ZHD - Жилой дом ZHDBlockZastroyki - Жилой дом блокированной застройки + + + + + + + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер квартиры (помещения) / Номер блока + + + + + Номер комнаты (указывается в случае квартиры коммунального заселения) + + + + + + + Объект жилищного фонда (экспорт) + + + + + Тип дома: MKD - Многоквартирный дом ZHD - Жилой дом ZHDBlockZastroyki - Жилой дом блокированной застройки + + + + + + + + + + + + Адрес дома +Глобальный уникальный идентификатор дома по ФИАС + + + + + Номер квартиры (помещения) / Номер блока + + + + + Номер комнаты (указывается в случае квартиры коммунального заселения) + + + + + + + Выбор значения показателя качества + + + + + + Установленное значение показателя качества + + + + Число + + + + + Диапазон + + + + Начало диапазона + + + + + Конец диапазона + + + + + + + + + Значение соответствует + + + + + + + Юридическое лицо или индивидуальный предприниматель в ДРСО + + + + + + + + Физическое лицо в ДРСО + + + + + Фамилия + + + + + + + + + + + Имя + + + + + + + + + + + Отчество + + + + + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + + + + + Место рождения + + + + + + + + + + + + + КУ и КР для ОЖФ в договоре ресурсоснабжения + + + + + Вид КУ. Ссылка на НСИ "Вид коммунальной услуги" (реестровый номер 3) + + + + + + + + + + Коммунальный ресурс. Ссылка на НСИ "Тарифицируемый ресурс" (реестровый номер 239) + + + + + + + + + + Дата начала поставки ресурса + + + + + Дата окончания поставки ресурса. Является обязательным, если указано значение в AutomaticRollOverOneYear + + + + + + + Плановый объем поставки ресурса по договору + + + + + + + + + Значение показателя качества + + + + + + + + + + + Наименование иного показателя качества + + + + + + + + + Основные характеристики ПУ + + + + + Заводской (серийный) номер ПУ + + + + + + + + + + Марка ПУ (обязательно для заполнения при импорте) + + + + + + + + + + Модель ПУ (обязательно для заполнения при импорте) + + + + + + + + + + Дата установки + + + + + Дата ввода в эксплуатацию +Поле обязательно, если вид ПУ отличен от "Коллективный (общедомовой)" + + + + + Наличие возможности дистанционного снятия показаний + + + + + Информация о наличии возможности дистанционного снятия показаний ПУ указанием наименования установленной системы (обязательно для заполнения, если tns:RemoteMeteringMode = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + Дата последней поверки (поле обязательно для заполнения, если ПУ - коллективный (общедомовой)) + + + + + Межповерочный интервал (НСИ 16) (поле обязательно для заполнения, если ПУ - коллективный (общедомовой)) + + + + + Дата опломбирования ПУ заводом- изготовителем (обязательно для заполнения при импорте) + + + + + Наличие датчиков температры + + + + + Наличие датчиков давления + + + + + Признак «ПУ предоставляет объем потребленного КР» + + + + + + Характеристики общедомового ПУ (тип прибора учета = "Коллективный (общедомовой)") + + + + + + Глобальный уникальный идентификатор дома по ФИАС (при импорте обязательно для заполнения тогда и только тогда, когда отсутствует корневой элемент FIASHouseGuid) + + + + + Информация о наличии датчиков температуры с указанием их местоположения на узле учета (обязательно для заполнения, если tns:TemperatureSensor = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + Информация о наличии датчиков давления с указанием их местоположения на узле учета (обязательно для заполнения, если tns:PressureSensor = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + Электронный образ проекта узла учета + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + + Характеристики ИПУ жилого помещения (тип прибора учета = "Индивидуальный") + + + + + + Идентификатор помещения (тип = жилое помещение) + + + + + Идентификатор ЛС + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + Контроль дублирования ЛС для ИПУ жилого помещения + + + + + + + + Характеристики ИПУ нежилого помещения (тип прибора учета = "Индивидуальный") + + + + + + Идентификатор помещения (тип = нежилое помещение) + + + + + Идентификатор ЛС + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + Контроль дублирования ЛС для ИПУ нежилого помещения + + + + + + + + Характеристики ИПУ жилого дома (тип прибора учета = "Индивидуальный", тип дома = "Жилой") + + + + + + Глобальный уникальный идентификатор дома по ФИАС (при импорте обязательно для заполнения тогда и только тогда, когда отсутствует корневой элемент FIASHouseGuid) + + + + + Идентификатор ЛС + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + Контроль дублирования ЛС для ИПУ жилого дома + + + + + + + + Характеристики комнатного ИПУ (тип прибора учета = "Комнатный") + + + + + + Идентификатор комнаты + + + + + Идентификатор ЛС + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + Контроль дублирования ЛС для комнатного ИПУ + + + + + + + + Характеристики общеквартирного ПУ (для квартир коммунального заселения) (тип прибора учета = "Общий (квартирный)") + + + + + + Идентификатор жилого помещения + + + + + Идентификатор ЛС + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + + + Контроль дублирования ЛС для общеквартирного ПУ + + + + + + + + + + + Тип для создания ПУ, редактирования ПУ до начала внесения показаний, а также для экспорта сведений о ПУ + + + + + Основные характеристики + + + + + Информация о связи текущего ПУ с другими ПУ. При обновлении данных о ПУ, если ПУ имеет связи с другими ПУ, необходимо присылать актуальную коллекцию связанных ПУ + + + + Объем ресурса(ов) определяется только с помощью текущего ПУ (связей с другими ПУ нет) + + + + + Объем ресурса(ов) определяется с помощью нескольких приборов учета + + + + + + Место установки текущего прибора учета. Возможные значения: in - На входе/На подающем трубопроводе, out - На выходе/На обратном трубопроводе. Если прибор учета измеряет электрическую энергию, то ПУ устанавливается на входе/на выходе; если прибор учета измеряет коммунальный ресурс, отличный от электрической энергии, то ПУ устанавливается на подающем трубопроводе / на обратном трубопроводе + + + + + + + + + + + Идентификатор версии ПУ, заведенного в ГИС ЖКХ, с которым требуется установить связь текущего ПУ + + + + + + + + + + Сведения о коммунальном ресурсе и последние полученные показания ПУ (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих показания + + + + + Последние полученные показания и коэффициент трансформации для ПУ, измеряющего электроэнергию. Указывается только для ПУ, предоставляющих показания + + + + + Сведения о коммунальных ресурсах ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих объем потребленного КР + + + + + + + + Тип для создания ПУ, редактирования ПУ до начала внесения показаний, а также для экспорта сведений о ПУ + + + + + Основные характеристики + + + + + Информация о связи текущего ПУ с другими ПУ. При обновлении данных о ПУ, если ПУ имеет связи с другими ПУ, необходимо присылать актуальную коллекцию связанных ПУ + + + + Объем ресурса(ов) определяется только с помощью текущего ПУ (связей с другими ПУ нет) + + + + + Объем ресурса(ов) определяется с помощью нескольких приборов учета + + + + + + Место установки текущего прибора учета. Возможные значения: in - На входе/На подающем трубопроводе, out - На выходе/На обратном трубопроводе. Если прибор учета измеряет электрическую энергию, то ПУ устанавливается на входе/на выходе; если прибор учета измеряет коммунальный ресурс, отличный от электрической энергии, то ПУ устанавливается на подающем трубопроводе / на обратном трубопроводе + + + + + + + + + + + Идентификатор версии ПУ, заведенного в ГИС ЖКХ, с которым требуется установить связь текущего ПУ + + + + + + + + + + Сведения о коммунальном ресурсе и последние полученные показания ПУ (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих показания + + + + + Последние полученные показания и коэффициент трансформации для ПУ, измеряющего электроэнергию. Указывается только для ПУ, предоставляющих показания + + + + + Сведения о коммунальных ресурсах ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды). Указывается только для ПУ, предоставляющих объем потребленного КР + + + + + + + + Тип для редактирования ПУ после начала внесения показаний + + + + + Заводской (серийный) номер ПУ + + + + + + + + + + Марка ПУ (обязательно для заполнения при импорте) + + + + + + + + + + Модель ПУ (обязательно для заполнения при импорте) + + + + + + + + + + Дата установки + + + + + Дата ввода в эксплуатацию + + + + + Наличие возможности дистанционного снятия показаний + + + + + Информация о наличии возможности дистанционного снятия показаний ПУ указанием наименования установленной системы (обязательно для заполнения, если tns:RemoteMeteringMode = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + Наличие датчиков температры + + + + + Наличие датчиков давления + + + + + Характеристики общедомового ПУ (значение справочника "Тип прибора учета" = коллективный (общедомомвой)) + + + + + + Информация о наличии датчиков температуры с указанием их местоположения на узле учета (обязательно для заполнения, если tns:TemperatureSensor = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + Информация о наличии датчиков давления с указанием их местоположения на узле учета (обязательно для заполнения, если tns:PressureSensor = true, в противном случае поле не обрабатывается при импорте) + + + + + + + + + + + + + В случае изменения лицевых счетов необходимо прислать их актуальный перечень (данные будут полностью заменены) + + + + + Электронный образ акта ввода узла учета в эксплуатацию + + + + + Указывается только для ПУ, предоставляющих показания + + + + Данные об изменении базовых показаний. Коммунальный ресурс (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) должен быть указан тот же, что и при создании ПУ + + + + + Данные об изменении базовых показаний ПУ электрической энергии. Необходимо прислать все актуальные базовые показания в соответсвии с видом ПУ по количеству тарифов (даже если требуется отредактировать только одно показание). + + + + + + Дата последней поверки (поле можно редактировать после начала внесения показаний, но запрещено к редактированию после внесения первой поверки) + + + + + Дата опломбирования ПУ заводом-изготовителем + + + + + Признак «ПУ предоставляет объем потребленного КР» + + + + + Информация о связи текущего ПУ с другими ПУ. При обновлении данных о ПУ, если ПУ имеет связи с другими ПУ, необходимо присылать актуальную коллекцию связанных ПУ + + + + Объем ресурса(ов) определяется только с помощью текущего ПУ (связей с другими ПУ нет) + + + + + Объем ресурса(ов) определяется с помощью нескольких приборов учета + + + + + + Место установки текущего прибора учета. Возможные значения: in - На входе/На подающем трубопроводе, out - На выходе/На обратном трубопроводе. Если прибор учета измеряет электрическую энергию, то ПУ устанавливается на входе/на выходе; если прибор учета измеряет коммунальный ресурс, отличный от электрической энергии, то ПУ устанавливается на подающем трубопроводе / на обратном трубопроводе + + + + + + + + + + + Идентификатор версии ПУ, заведенного в ГИС ЖКХ, с которым требуется установить связь текущего ПУ + + + + + + + + + Изменение адреса установленного ПУ + + + + + + Характеристики ИПУ жилого помещения (тип прибора учета = "Индивидуальный") + + + + + + Идентификатор помещения (тип = жилое помещение) + + + + + + + + Характеристики ИПУ нежилого помещения (тип прибора учета = "Индивидуальный") + + + + + + Идентификатор помещения (тип = нежилое помещение) + + + + + + + + Характеристики ИПУ жилого дома (тип прибора учета = "Индивидуальный", тип дома = "Жилой") + + + + + + Глобальный уникальный идентификатор дома по ФИАС, который необходимо установить в качестве адреса ПУ (не должен указываться при наличии tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid) + + + + + Признак "Изменить адрес ПУ на адрес дома, указанный в tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid?" + + + + + + + + Характеристики общедомового ПУ (тип прибора учета = "Коллективный (общедомовой)") + + + + + + Глобальный уникальный идентификатор дома по ФИАС, который необходимо установить в качестве адреса ПУ (не должен указываться при наличии tns:importMeteringDeviceDataRequest/tns:FIASHouseGuid) + + + + + Признак "Изменить адрес ПУ на адрес дома указанного в tns:importMeteringDeviceDataRequest/ tns:FIASHouseGuid?" + + + + + + + + Характеристики комнатного ИПУ (тип прибора учета = "Комнатный" + + + + + + Идентификатор комнаты + + + + + + + + Характеристики общеквартирного ПУ (для квартир коммунального заселения) (тип прибора учета = "Общий (квартирный)") + + + + + + Идентификатор жилого помещения + + + + + + + + + + + + + Сведения о коммунальном ресурсе ПУ и последнее полученное показание (холодная вода, горячая вода, тепловая энергия, газ, сточные бытовые воды). Используется при создании / изменении ПУ для определения КР + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Обязателен для заполнения, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + 112: Литр, 113: Кубический метр, 233: Гигакалория, 245: Киловатт-час, 246: Мегаватт-час, 271: Джоуль, A056: Гигаджоуль, A058: Мегаджоуль + + + + + + + + + + + + + + + + + + + Сведения о коммунальном ресурсе ПУ и последнее полученное показание (холодная вода, горячая вода, тепловая энергия, газ, сточные бытовые воды). Используется при создании / изменении ПУ для определения КР + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Обязателен для заполнения, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + 112: Литр, 113: Кубический метр, 233: Гигакалория, 245: Киловатт-час, 246: Мегаватт-час, 271: Джоуль, A056: Гигаджоуль, A058: Мегаджоуль + + + + + + + + + + + + + + + Значение показания ПУ, выраженное в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Значение показания ПУ, выраженное в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Последние полученные показания (электрическая энергия) и сведения о ПУ (коэфф. трансформации и ЕИ). В зависимости от количества показаний, заданных при создании ПУ, определяется его вид по количеству тарифов + + + + + + + Коэффициент трансформации + + + + + + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Обязателен для заполнения, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + 245: Киловатт-час + + + + + + + + + + + + Последние полученные показания (электрическая энергия) и изменяемые сведения о ПУ (коэфф. трансформации). В зависимости от количества показаний, заданных при создании ПУ, определяется его вид по количеству тарифов. + + + + + + + Коэффициент трансформации + + + + + + + + + + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последние полученные показания в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Коэффициент трансформации + + + + + + + + + + + + Код единицы измерения показаний ПУ (из расширенного классификатора ОКЕИ). Обязателен для заполнения, если ЕИ показаний ПУ отличается от ЕИ коммунального ресурса по умолчанию + + + + + 245: Киловатт-час + + + + + + + + Значения показаний ПУ, выраженные в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последние полученные показания в единицах измерения ПУ и (если отличается) в единицах измерения коммунального ресурса по умолчанию, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Значения показаний ПУ, выраженные в единицах измерения коммунального ресурса по умолчанию. Заполняется, если ЕИ показаний ПУ отличается от ЕИ КР по умолчанию + + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + Единица измерения коммунального ресурса по умолчанию + + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Сведения о коммунальном ресурсе ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) + + + + + Коммунальный ресурс (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Код единицы измерения показаний ПУ по КР + + + + + + + + + + + + + + + + + Количество тарифов ПУ (1, 2 или 3). Заполняется только для КР - электроэнергия + + + + + + + + + + + Коэффициент трансформации. Может заполняться только для КР электроэнергия + + + + + + + + + + + + + + Информация об аннулировании (экспорт) + + + + + Причина аннулировани + + + + + + + + + + + + Данные общежития + + + + + + Дом находится в собственности субъекта Российской Федерации и в полном объеме используется в качестве общежития + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + + Тип общежития (заполняется значениями из справочника НСИ 362) + + + + + + + Данные общежития для экспорта + + + + + Дом находится в муниципальной собственности и в полном объеме используется в качестве общежития + + + + + Дом находится в собственности субъекта Российской Федерации и в полном объеме используется в качестве общежития + + + + + Тип общежития (значения из справочника 362) + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-account-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-account-base.xsd new file mode 100644 index 0000000..b5eb12b --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-account-base.xsd @@ -0,0 +1,83 @@ + + + + + + + + Идентификатор лицевого счета + + + + + Номер лицевого счета/Иной идентификатор плательщика + + + + + + + + + + + + Основание для обязательств по оплате + + + + + Номер договора + + + + + Дата заключения договора + + + + + Срок окончания действия договора + + + + + + + Единый лицевой счет + + + + + + + + + + Расчетный счет + + + + + + + + + + Счет + + + + + + + + Идентификатор жилищно-коммунальной услуги + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-base.xsd new file mode 100644 index 0000000..d9d2cfe --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-base.xsd @@ -0,0 +1,866 @@ + + + + + + Строка не более 2000 символов. + + + + + + + + Строка не более 1500 символов. + + + + + + + + Строка не более 300 символов. + + + + + + + + Скалярный тип. Строка не более 255 символов. + + + + + + + + + Скалярный тип. Строка не более 100 символов. + + + + + + + + Скалярный тип. Строка не более 250 символов. + + + + + + + + Скалярный тип. Строка не более 500 символов. + + + + + + + + Строка не более 60 символов. + + + + + + + + Текстовое поле 2000 + + + + + + + + Непустая строка + + + + + + + + + + Базовый тип бизнес-сообщения с подписью + + + + + + + + + Заголовок запроса + + + + + + + + + Идентификатор поставщика данных + + + + + Идентификатор зарегистрированной организации + + + + + Информация о физическом лице + + + + + + Идентификатор физического лица, зарегистрированного в ГИС ЖКХ + + + + + + СНИЛС + + + + + + + + + + Документ, удостоверяющий личность + + + + + + Вид документа, удостоверяющего личность (НСИ №95) + + + + + + Код записи справочника + + + + + + + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + + + + + + + + + Используется подпись Оператора ИС + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164). Только для запросов размещения информации. + + + + + + + + + + Заголовок запроса + + + + + + + + + + + + + + Заголовок ответа + + + + + + + + + + Базовый тип ответа на запрос создания, редактирования, удаления + + + + + + Транспортный идентификатор, определенный постащиком информации + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + + + + Идентификатор объекта в ГИС ЖКХ + + + + + Дата модификации + + + + + Уникальный номер + + + + + + + + + + Базовый тип заголовка + + + + + Дата отправки пакета + + + + + Идентификатор сообщения + + + + + + + Вложение + + + + + + Идентификатор сохраненного вложения + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex. + +Элемент обязателен в запросах импорта + + + + + + + + + + + + Вложение + + + + + Наименование вложения + + + + + + + + + + + Описание вложения + + + + + + + + + + + + Хэш-тег вложения по алгоритму ГОСТ в binhex + + + + + + + + + + + + Базовый тип, описывающий вложение с открепленными (detached) подписями. В сервисах ГИС ЖКХ, использущих тип SignedAttachmentType, может быть наложено ограничение на максимальное количесво элементов в блоке Signature (см. контроль INT002039). + + + + + Вложение + + + + + Открепленная (detached) подпись + + + + + + + Элемент Fault (для параметра Fault в операции) + + + + Базовый тип для fault-ошибки + + + + + + + + + + + Описание ошибок контролей или бизнес-процесса + + + + + Базовый тип ошибки контроля или бизнес-процесса + + + + + Код ошибки + + + + + Описание ошибки + + + + + StackTrace в случае возникновения исключения + + + + + + + Версия элемента, начиная с которой поддерживается совместимость + + + + + + Возврат квитанции приема сообщения + + + + + + Квитанция + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + Идентификатор сообщения, присвоенный поставщиком + + + + + + + + + + + Запрос статуса отправленного сообщения + + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + Запрос списка обработанных сообщений + + + + + + Массив идентификаторов сообщений, присвоенных ГИС ЖКХ + + + + + + + + Ответ на запрос списка обработанных сообщений + + + + + + + + Список идентификаторов сообщений, присвоенный ГИС ЖКХ + + + + + + + + + + Базовый тип ответа на запрос статуса + + + + + + + Статус обработки + + + + + Идентификатор сообщения, присвоенный ГИС ЖКХ + + + + + + + + + Результат выполнения C_UD + + + + + Идентификатор создаваемой/изменяемой сущности + + + + + Транспортный идентификатор + + + + + + Операция выполнена успешно + + + + Уникальный реестровый номер + + + + + Дата модификации + + + + + + Описание ошибки + + + + + + + + + + + + + Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано) + + + + + + + + + + + Транспортный идентификатор + + + + + GUID-тип. + + + + + + + + Дата модификации объекта + + + + + Тип, описывающий год + + + + + + + + Тип, описывающий месяц + + + + + + + + + Месяц + + + + + Год + + + + + + + + + + + Определенный месяц определенного года + + + + + + + + + Временной период (обе даты обязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Открытый временной период (даты необязательны) + + + + + Начало периода + + + + + Конец периода + + + + + + + Тип объема + + + + + + + + + + Ссылка на субъект РФ (ФИАС) + + + + + Код региона (ФИАС) + + + + + + + + + + Полное наименование + + + + + + + + + + + + Ссылка на ОКТМО + + + + + Код по ОКТМО + + + + + + + + + + + Полное наименование + + + + + + + + + + + + + + + + + Код ОКЕИ + + + + + + Идентификатор зарегистрированной организации + + + + + + Базовый тип документа ОЧ + + + + + Наименование документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата принятия документа органом власти + + + + + Вложение + + + + + + + Сведения об иной ИС, с использованием которой была сформирована информация (589/944/,п.164) + + + + + + Наименование ИС + + + + + Наименование Оператора ИС + + + + + + + + Код по ОКТМО + + + + + + + + + Код по ОКТМО + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-bills-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-bills-base.xsd new file mode 100644 index 0000000..e090955 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-bills-base.xsd @@ -0,0 +1,94 @@ + + + + + + + Сумма + + + + + + + + + + Неотрицательная сумма + + + + + + + + + + Сумма + + + + + + + + + Неотрицательная маленькая сумма + + + + + + + + + + + Маленькая сумма + + + + + + + + + + Неотрицательная сумма + + + + + + + + + + + Сумма в копейках + + + + + + Номер платежного документа, по которому внесена плата, присвоенный такому документу исполнителем в целях осуществления расчетов по внесению платы + + + + + + + + + + + + Идентификатор платежного документа + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-individual-registry-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-individual-registry-base.xsd new file mode 100644 index 0000000..76244dc --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-individual-registry-base.xsd @@ -0,0 +1,158 @@ + + + + + + + + Удостоверение личности + + + + + + Документ, удостоверяющий личность (НСИ 95) + + + + + Серия документа + + + + + + + + + + + Номер документа + + + + + + + + + + + Дата выдачи документа + + + + + + + + Физическое лицо + + + + + + + + + + + + + + + + + + СНИЛС + + + + + + + + + + + Фамилия + + + + + + + + + + + Имя + + + + + + + + + + + Отчество + + + + + + + + + + + ФИО + + + + + + + + + + ФИО + + + + + + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + Дата рождения + + + + + Место рождения + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-metering-device-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-metering-device-base.xsd new file mode 100644 index 0000000..2bc1ea6 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-metering-device-base.xsd @@ -0,0 +1,160 @@ + + + + + + + + Идентификатор ПУ + + + + + + Показание ПУ. Значение (15 до запятой, 7 после) + + + + + + + + Коммунальный ресурс и показание ПУ для однотарифного ПУ. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Коммунальный ресурс (тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Значение + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные однотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Показания ПУ электрической энергии. Используется при импорте показаний поверки и фиксации показаний ПУ при его замене, а также, как базовый класс для других типов + + + + + Значение по тарифу T1 + + + + + Значение по тарифу T2 + + + + + Значение по тарифу T3 + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последние полученные показания в единицах измерения ПУ, источник данных о показаниях ПУ. Используется при экспорте данных ПУ + + + + + + + Кем внесено + + + + + Идентификатор организации, которая ввела показания в Систему. Не заполняется, если показания были введены гражданином + + + + + + + + + Данные многотарифного ПУ: коммунальный ресурс, последнее полученное показание в единицах измерения ПУ, источник данных о показаниях ПУ, время внесения в Систему. Используется при экспорте показаний ПУ + + + + + + + Дата и время внесения в Систему + + + + + + + + + Объемы потребленных ресурсов по ПУ (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) + + + + + Коммунальный ресурс (электроэнергия, тепловая энергия, газ, горячая вода, холодная вода, сточные бытовые воды) (НСИ 2) + + + + + Объем по тарифу T1 + + + + + Объем по тарифу T2 + + + + + Объем по тарифу T3 + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-nsi-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-nsi-base.xsd new file mode 100644 index 0000000..7063a0c --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-nsi-base.xsd @@ -0,0 +1,428 @@ + + + + + + + + + + + + + Ссылка на справочник + + + + + Код записи справочника + + + + + Идентификатор записи в соответствующем справочнике ГИС ЖКХ + + + + + Значение + + + + + + + + + + + + Скалярный тип. Наименование справочника. Строка не более 200 символов. + + + + + + + + Скалярный тип. Реестровый номер справочника. Код не более 10 символов. + + + + + + + + Составной тип. Наименование, дата и время последнего изменения справочника. + + + + + Реестровый номер справочника. + + + + + Наименование справочника. + + + + + Дата и время последнего изменения справочника. + + + + + + + Перечень справочников с датой последнего изменения каждого из них. + + + + + Дата и время формирования перечня справочников. + + + + + Наименование, дата и время последнего изменения справочника. + + + + + + + + Данные справочника. + + + + + Реестровый номер справочника. + + + + + Дата и время формирования данных справочника. + + + + + Элемент справочника верхнего уровня. + + + + + + + Составной тип. Элемент справочника. + + + + + Код элемента справочника, уникальный в пределах справочника. + + + + + Глобально-уникальный идентификатор элемента справочника. + + + + + + Дата и время последнего изменения элемента справочника (в том числе создания). + + + + + + Дата начала действия значения + + + + + Дата окончания действия значения + + + + + + + Признак актуальности элемента справочника. + + + + + Наименование и значение поля для элемента справочника. + + + + + Дочерний элемент. + + + + + + + Составной тип. Наименование и значение поля для элемента справочника. Абстрактный тип. + + + + + Наименование поля элемента справочника. + + + + + + + Составной тип. Наименование и значение поля типа "Строка" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Строка". + + + + + + + + + Составной тип. Наименование и значение поля типа "Да/Нет" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Да/Нет". + + + + + + + + + Составной тип. Наименование и значение поля типа "Вещественное" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Вещественное". + + + + + + + + + Составной тип. Наименование и значение поля типа "Дата" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Дата". + + + + + + + + + Составной тип. Наименование и значение поля типа "Целое число" для элемента справочника. + + + + + + + Значение поля элемента справочника типа "Целое число". + + + + + + + + + Составной тип. Наименование и значение поля типа "Перечислимый" для элемента справочника. + + + + + + + Запись элемента справочника типа "Перечислимый". + + + + + + Код поля элемента справочника типа "Перечислимый". + + + + + Значение поля элемента справочника типа "Перечислимый". + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на справочник" для элемента справочника. + + + + + + + Ссылка на справочник. + + + + + + Реестровый номер справочника. + + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент внутреннего справочника" для элемента справочника. + + + + + + + Ссылка на элемент внутреннего справочника. + + + + + + Реестровый номер справочника. + + + + + Ссылка на элемент справочника. + + + + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ОКЕИ" для элемента справочника. + + + + + + + Код единицы измерения по справочнику ОКЕИ. + + + + + + + + + Составной тип. Наименование и значение поля типа "Ссылка на элемент справочника ФИАС" для элемента справочника. + + + + + + + Ссылка на элемент справочника ФИАС. + + + + + + Идентификационный код позиции в справочнике ФИАС. + + + + + Глобально-уникальный идентификатор адресного объекта в справочнике ФИАС. + + + + + + + + + + + + Составной тип. Наименование и значение поля "Вложение" + + + + + + + Документ + + + + + + + + + Скалярный тип. Наименование поля элемента справочника. Строка не более 200 символов. + + + + + + + + Группа справочника: +NSI - (по умолчанию) общесистемный +NSIRAO - ОЖФ + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-base.xsd new file mode 100644 index 0000000..ae7ce74 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-base.xsd @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + КПП + + + + + + + + + + + + + ОГРН + + + + + + + + + + ОГРНИП + + + + + + + + + + ОКОПФ + + + + + + + + + + + ОКОГУ + + + + + + + + + + Телефон + + + + + + + + + + + + + + + + + + + + + + + БИК + + + + + + + + БИК + + + + + + ИНН + + + + + НЗА (Номер записи об аккредитации) + + + + + + + + НЗА (Номер записи об аккредитации) + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-registry-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-registry-base.xsd new file mode 100644 index 0000000..16908de --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-organizations-registry-base.xsd @@ -0,0 +1,266 @@ + + + + + + + + + + Полное наименование + + + + + + + + + + + Фирменное наименование + + + + + Юридическое лицо + + + + + + + + + Дата государственной регистрации + + + + + + + + Адрес регистрации + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + + + ОП (Обособленное подразделение) + + + + + Полное наименование + + + + + + + + + + + Сокращенное наименование + + + + + + + + + + + + + + + Адрес регистрации + + + + + + + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + Источник информации + + + + + + + от + + + + + + + + + + + ФПИЮЛ (Филиал или представительство иностранного юридического лица) + + + + + + + + + + Адрес места нахождения(жительства)_текст + + + + + Адрес места нахождения(жительства)_ФИАС + + + + + Дата внесения записи в реестр аккредитованных + + + + + Дата прекращения действия аккредитации + + + + + Страна регистрации иностранного ЮЛ (Справочник ОКСМ, альфа-2) + + + + + + + + + + + + + Индивидуальный предприниматель + + + + + Фамилия + + + + + Имя + + + + + Отчество + + + + + Пол (M- мужской, F-женский) + + + + + + + + + + + + + ОГРН + + + + + Дата государственной регистрации + + + + + + + + Организация в реестре организаций + + + + + + + + + + Версия организации в реестре организаций + + + + + + + + + + Организация и версия организации в реестре организаций + + + + + + + + + Идентификатор корневой сущности организации в реестре организаций + + + + + Идентификатор версии записи в реестре организаций + + + + + Сокращенное наименование + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-payments-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-payments-base.xsd new file mode 100644 index 0000000..f565982 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-payments-base.xsd @@ -0,0 +1,1239 @@ + + + + + + + + + + + + + + Извещение о принятии к исполнению распоряжения + + + + + Сведения о потребителе + + + + + + Уникальный идентификатор плательщика + + + + + + + + + + + Наименование плательщика + + + + + + + + + + + + + + Сведения об исполнителе + + + + + + + + Исполнитель-ИП + + + + + Исполнитель-ЮЛ + + + + + + + Наименование + + + + + + + + + + + + + + Наименование ИП одной строкой + + + + + + + + + + + + Сведения о платежных реквизитах + + + + + + + + Общие сведения о распоряжении + + + + + + Уникальный идентификатор распоряжения для нужд квитирования, включающий более мягкие огранчиения UI/Excel до 11.8.0 (тип) + + + + + Дата + + + + + Номер распоряжения + + + + + + + + + + + Сумма оплаты (в копейках) + + + + + Назначение платежа + + + + + + + + + + + Признак онлайн-оплаты + + + + + Произвольный комментарий + + + + + + + + + + + + + + Номер платежного документа, по которому внесена плата, присвоенный такому документу исполнителем в целях осуществления расчетов по внесению платы + + + + + + + + + + + + + + + + + Адрес помещения и реквизиты потребителя + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + Номер жилого помещения + + + + + + + + + + + Номер комнаты жилого помещения + + + + + + + + + + + + Номер нежилого помещения + + + + + + + + + + + + Номер жилого блока + + + + + + + + + + + Номер комнаты жилого блока + + + + + + + + + + + + Номер нежилого блока + + + + + + + + + + + + + Физлицо, не являющееся индивидуальным предпринимателем + + + + + Индивидуальный предприниматель или юридическое лицо + + + + + + + + + Жилищно-коммунальная услуга + + + + + + + + + + Номер лицевого счета/Иной идентификатор плательщика + + + + + + + + + + + + + + + + + + + Извещение об аннулировании извещения о принятии распоряжения к исполнению + + + + + Уникальный идентификатор распоряжения для нужд квитирования, включающий более мягкие огранчиения UI/Excel до 11.8.0 (тип) + + + + + Дата аннулирования + + + + + Комментарий + + + + + + + + + + + + + + Запрос на квитирование + + + + + + + Поиск среди извещений указанной кредитной организации + + + + + + + + + + + + Cквитировано с платежным документом + + + + + + + Вид квитируемой услуги из платежного поручения + + + + Вид ЖУ (справочник "Классификатор видов работ (услуг)") + + + + + Вид ГКУ (справочник "Главная коммунальная услуга") + + + + + Вид ДУ (справочник "Вид дополнительной услуги") + + + + + Вид неустойки и судебных расходов. НСИ 329 "Неустойки и судебные расходы": +- Пени +- Штрафы +- Государственные пошлины +- Судебные издержки. + + + + + Вид коммунальной услуги. НСИ 3 + + + + + + Сумма квитирования (в копейках) + + + + + + + + + + + + Сведения о платежных реквизитах + + + + + + + БИК банка получателя + + + + + Номер расчетного счета + + + + + + + + + + + Идентификатор платежных реквизитов в платежном документе + + + + + + + + Периода расчета начисления услуги по капитальному ремонту (только для ПД с типом "текущий" с указанием КР на год) + + + + + + Год расчетного периода + + + + + Месяц расчетного периода + + + + + + + + + + + Квитирование невозможно + + + + + + + Причина, по которой отсутствует возможность сопоставления + + + + + + + + + + + + + + + Период просрочки, с которым выполняется квитирование (только для квитирования с долговым ПД) + + + + + + + + + + + + + Запрос на квитирование для экспорта + + + + + + + Cквитировано с платежным документом + + + + + + + Вид квитируемой услуги из платежного поручения + + + + Вид ЖУ (справочник "Классификатор видов работ (услуг)") + + + + + Вид ГКУ (справочник "Главная коммунальная услуга") + + + + + Вид ДУ (справочник "Вид дополнительной услуги") + + + + + Вид неустойки и судебных расходов. НСИ 329 "Неустойки и судебные расходы": +- Пени +- Штрафы +- Государственные пошлины +- Судебные издержки. + + + + + Вид коммунальной услуги. НСИ 3 + + + + + + Сумма квитирования (в копейках) + + + + + + + + + + + + Период просрочки, с которым выполняется квитирование (только для квитирования с долговым ПД) + + + + + + + + + + + Периода расчета начисления услуги по капитальному ремонту (только для ПД с типом "текущий" с указанием КР на год) + + + + + + Год расчетного периода + + + + + Месяц расчетного периода + + + + + + + + + + + Квитирование невозможно + + + + + + + Причина, по которой отсутствует возможность сопоставления + + + + + + + + + + + + + + + + Уникальный идентификатор распоряжения, сформированный через интеграцию + + + + + + + + + + Уникальный идентификатор распоряжения для нужд квитирования, включающий более мягкие огранчиения UI/Excel до 11.8.0 + + + + + + + + + + + Уникальный идентификатор распоряжения для нужд квитирования, включающий более мягкие огранчиения UI/Excel до 11.8.0 (тип) + + + + + + + + + Уникальный идентификатор счета, в уплату которого поступил платеж. +В случае отсутствия указывается 0. + + + + + + + + + + + + Извещение о принятии к исполнению распоряжения + + + + + Сведения о потребителе + + + + + + Уникальный идентификатор плательщика + + + + + + + + + + + Наименование плательщика + + + + + + + + + + + + + + Сведения об исполнителе жилищно-коммунальной услуги + + + + + + + + + Исполнитель-ИП + + + + + Исполнитель-ЮЛ + + + + + + + Наименование + + + + + + + + + + + + + + Наименование ИП одной строкой + + + + + + + + + + + + + Сведения о платежных реквизитах + + + + + + + + + + + + + Общие сведения о распоряжении + + + + + + Уникальный номер платежа (идентификатор операции) + + + + + Дата + + + + + Номер распоряжения + + + + + + + + + + + Сумма оплаты (в копейках) + + + + + + + + + + + + Назначение платежа + + + + + + + + + + + Признак онлайн-оплаты + + + + + Произвольный комментарий + + + + + + + + + + + + + + + + + + + + + Адрес помещения и реквизиты потребителя + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + + Номер жилого помещения + + + + + + + + + + + Номер комнаты жилого помещения или жилого дома + + + + + + + + + + + + Номер нежилого помещения + + + + + + + + + + + + Номер жилого блока + + + + + + + + + + + Номер комнаты жилого блока + + + + + + + + + + + + Номер нежилого блока + + + + + + + + + + + + + Физлицо, не являющееся индивидуальным предпринимателем + + + + + Индивидуальный предприниматель или юридическое лицо + + + + + + + + + Жилищно-коммунальная услуга + + + + + + + + + + + + + + + + + + + Извещение о принятии к исполнению распоряжения + + + + + Общие сведения о распоряжении + + + + + + Уникальный номер платежа (идентификатор операции) + + + + + Дата + + + + + Сумма оплаты (в копейках) + + + + + + + + + + + + Признак онлайн-оплаты + + + + + Месяц и год + + + + + + + + + + + + + + GUID жилищно-коммунальной услуги + + + + + + + + GUID платежного документа + + + + + + + Идентификатор платежных реквизитов в платежном документе + + + + + + + + + + Платежные реквизиты + + + + + Сведения о платежных реквизитах организации + + + + + ИНН получателя платежа + + + + + КПП получателя платежа + + + + + Наименование банка получателя платежа + + + + + + + + + + + Наименование получателя + + + + + + + + + + + БИК банка получателя + + + + + Номер расчетного счета + + + + + + + + + + Корр. счет банка получателя + + + + + Код из Классификатора доходов в бюджет + + + + + + + + + + + Код из Общероссийского классификатора территорий муниципальных образований + + + + + Номер лицевого счета, открытый в органах Федерального казначейства (финансовых органах) + + + + + + + + + + + + + + Сведения о платежных реквизитах организации + + + + + ИНН получателя платежа + + + + + КПП получателя платежа + + + + + Наименование банка получателя платежа + + + + + + + + + + + Наименование получателя + + + + + + + + + + + БИК банка получателя + + + + + Номер расчетного счета + + + + + + + + + + Корр. счет банка получателя + + + + + Платежные реквизиты для платежей капитального ремонта + + + + + Код из Классификатора доходов в бюджет + + + + + + + + + + + Код из Общероссийского классификатора территорий муниципальных образований + + + + + + Номер лицевого счета, открытый в органах Федерального казначейства (финансовых органах) + + + + + + + + + + + + + Ключ поиска платежных реквизитов организации в ГИС ЖКХ + + + + + БИК банка получателя + + + + + Номер расчетного счета + + + + + + + + + + + + Идентификатор платежных реквизитов ЮЛ/ИП + + + + + Идентификатор извещения о принятии к исполнению распоряжения + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-premises-base.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-premises-base.xsd new file mode 100644 index 0000000..f9b19f9 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/hcs-premises-base.xsd @@ -0,0 +1,74 @@ + + + + + + + Глобальный уникальный идентификатор дома по ФИАС + + + + + + Тип уникального номера дома + + + + + + + + Тип уникального номера помещения + + + + + + + + Тип уникального номера комнаты + + + + + + + + Площадь жилого помещения (7 до запятой, 2 после) + + + + + + + + + + Площадь территории/здания + + + + + + + + + + Площадь помещения + + + + + + + + + + Площадь помещения (для экспорта данных) + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/xmldsig-core-schema.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/xmldsig-core-schema.xsd new file mode 100644 index 0000000..dd5254b --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/lib/xmldsig-core-schema.xsd @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-service-async.wsdl b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-service-async.wsdl new file mode 100644 index 0000000..9d5ddd4 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-service-async.wsdl @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + экспорт сведений о поставщиках данных + + + + + + + + + + + Экспорт сведений об объектах из заявок на делегирование прав + + + + + + Экспорт сведений о территориях из заявок на делегирование прав + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-types.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-types.xsd new file mode 100644 index 0000000..2cb7c2e --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry-common/hcs-organizations-registry-common-types.xsd @@ -0,0 +1,599 @@ + + + + + + + + + + + Экспорт сведений из реестра организаций + + + + + + + + Критерий поиска организаций. + + + + + + + Поиск по реквизитам. + + + + + + + + + + + + + Идентификатор зарегистрированной организации + + + + + + Поиск среди организаций, имеющих личных кабинет + + + + + + + + Время последнего изменения (от) + + + + + + + + + + + Результат экспорта сведений из реестра организаций + + + + + + Версия организации в реестре организаций + + + + + + + Дата последнего изменения + + + + + Признак актуальности записи + + + + + + Юридическое лицо + + + + + Обособленное подразделение + + + + + + + + Статус версии + + + + + + + + Информация о головной организации + + + + + + + + + + + + + + + Индивидуальный предприниматель + + + + + ФПИЮЛ (Филиал или представительство иностранного юридического лица) + + + + + + Статус: +(P)UBLISHED - опубликована в одном из документов в рамках раскрытия + + + + + + + + + + + + + + Полномочие организации (НСИ №20) + + + + + Зарегистрирована в ГИС ЖКХ + + + + + + + + Экспорт сведений о поставщиках информации ИС. В качестве поискового параметра используется Идентификатор ИС из RequestHeader + + + + + + + + Выгрузить только активных поставщиков данных + + + + + + + + + + + Результат экспорта сведений о поставщиках информации ИС + + + + + Идентификатор поставщика данных + + + + + Статус связи: 1 - активен, 0- отключен + + + + + + + + + Экспорт сведений о делегированных правах + + + + + + + + ИД заявки + + + + + + Страница выборки. Возвращается по 100 элементов. + + + + + + + + + + Статус заявки: +Created – Создана +Accepted – Принята +Declined - Отклонена +Revoked - Отозвана +Annuled - Аннулирована +Closed - Закрыта +Preset– Предзаполнена +Waiting_approval - На утверждении + + + + + + + + + + + + Результат экспорта сведений о делегированных правах + + + + + Информация о головной организации (для обособленных подразделений) + + + + + + + Заявка на доступ + + + + + + + Экспорт сведений об объектах из заявок на делегирование прав + + + + + + + + ИД делегированного права. +Можно получить в результате выполнения exportDelegatedAccess + + + + + Страница выборки. Возвращается по 1000 элементов. + + + + + + + + + + + + + + + + Экспорт сведений о территориях из заявок на делегирование прав + + + + + + + + ИД делегированного права. +Можно получить в результате выполнения exportDelegatedAccess + + + + + Страница выборки. Возвращается по 1000 элементов. + + + + + + + + + + + + + + + + + Возврат статуса отправленного сообщения + + + + + + + + + + + + + + + + + Признак того, что выгружены не все данные. Необходимо выполнить еще один запрос, увеличив Page на 1. + + + + + + + + + + + + Заявка на предоставление доступа + + + + + ИД заявки + + + + + Тип заявки + + + + + Дата подачи + + + + + Дата начала + + + + + Дата окончания + + + + + Статус заявки: +Created – Создана +Accepted – Принята +Declined - Отклонена +Revoked - Отозвана +Annuled - Аннулирована +Closed - Закрыта +Preset– Предзаполнена +Waiting_approval - На утверждении + + + + + Дата статуса + + + + + Причина статуса + + + + + + + + + + Делегированное право доступа + + + + + + ИД делегированного права + + + + + Территориальная принадлежность + + + + + + Для всех территорий + + + + + если = "true", то по виду информации имеется список территорий, по которым предоставлен доступ. Для получения списка можно воспользоваться запросом exportTerritoryDelegatedAccess + + + + + + + + Объекты доступа + + + + + + Для всех объектов + + + + + если = "true", то по виду информации имеется список объектов, по которым предоставлен доступ. Для получения списка можно воспользоваться запросом exportObjectsDelegatedAccess + + + + + + + + Признак актуальности + + + + + Код из справочника 291 - "Виды информации" + + + + + + + + + + Тип заявки на предоставление доступа + + + + + Для оператора информационной системы + + + + + + Для расчетного центра + + + + + + + Статус заявки на предоставление доступа + + + + + Создана + + + + + Принята + + + + + + Отозвана + + + + + + + + + + + + + + + + + Сведения об объектах из заявок на делегирование прав + + + + + ИД делегированного права. +Можно получить в результате выполнения exportDelegatedAccess + + + + + + Объект доступа + + + + + + Перечень объектов + + + + + Тип объекта + + + + + + + + + + + + + Для всех объектов + + + + + + + + Сведения о территориях из заявок на делегирование прав + + + + + ИД делегированного права. +Можно получить в результате выполнения exportDelegatedAccess + + + + + + Перечень территорий действия + + + + + Перечень субъектов РФ, на которых дейсвтуют права. (Ссылка на справочник Субъекты РФ). НСИ 237 + + + + + Для всех территорий + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-service-async.wsdl b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-service-async.wsdl new file mode 100644 index 0000000..9746dcf --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-service-async.wsdl @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + импорт сведений о филиале или представительстве иностранного юридического лица + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-types.xsd b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-types.xsd new file mode 100644 index 0000000..4a61890 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/hcs-wsdl-v.14.5.0.1/organizations-registry/hcs-organizations-registry-types.xsd @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Импорт сведений о филиале или представительстве иностранного юридического лица + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Возврат статуса отправленного сообщения + + + + + + + + + + + + + + + + Импорт ОП + + + + + Создание обособленного подразделения + + + + + + + + Идентификатор головной организации версии записи в реестре организаций + + + + + + + + + + Внесение изменений в обособленное подразделение + + + + + + + Полное наименование + + + + + + + + + + + + + Адрес регистрации + + + + + Адрес регистрации (Глобальный уникальный идентификатор дома по ФИАС) + + + + + Дата прекращения деятельности + + + + + Источник информации + + + + + + + от + + + + + + + + + + + + + + Импорт ФПИЮЛ + + + + + Создание филиала или представительства иностранного юридического лица + + + + + Изменение филиала или представительства иностранного юридического лица + + + + + + + Полное наименование + + + + + + + + + + + Сокращенное наименование + + + + + + + + + + + + + Адрес места нахождения(жительства)_текст + + + + + Адрес места нахождения(жительства)_ФИАС + + + + + Дата внесения записи в реестр аккредитованных + + + + + Дата прекращения действия аккредитации + + + + + Страна регистрации иностранного ЮЛ (Справочник ОКСМ, альфа-2) + + + + + + + + + + + + + + diff --git a/Hcs.Client/HcsWsdlSources/how-to-generate-cs-from-wsdl.txt b/Hcs.Client/HcsWsdlSources/how-to-generate-cs-from-wsdl.txt new file mode 100644 index 0000000..6c5c4c4 --- /dev/null +++ b/Hcs.Client/HcsWsdlSources/how-to-generate-cs-from-wsdl.txt @@ -0,0 +1,23 @@ +# Искать документ типа: +# Регламент и форматы информационного взаимодействия внешних информационных систем с ГИС ЖКХ (текущие форматы v.13.2.3.3) +https://dom.gosuslugi.ru/#!/regulations?userCtgrCode=1 + +Чтобы сгенирировать .cs определения классов SOAP в проекте: +Project\Connected Services\Add service reference... + +В поле "Адрес" укажите *полный путь* к файлу, например: + D:\NetFX\Hcs.ClientApi\HcsWsdlSources\hcs-wsdl-v.14.5.0.1\debt-requests\hcs-debt-requests-service-async.wsdl + D:\NetFX\Hcs.ClientApi\HcsWsdlSources\hcs-wsdl-v.14.5.0.1\house-management\hcs-house-management-service-async.wsdl + D:\NetFX\Hcs.ClientApi\HcsWsdlSources\hcs-wsdl-v.14.5.0.1\device-metering\hcs-device-metering-service-async.wsdl + D:\NetFX\Hcs.ClientApi\HcsWsdlSources\hcs-wsdl-v.14.5.0.1\organizations-registry-common\hcs-organizations-registry-common-service-async.wsdl + +Нажмите "Перейти" или "Go" +Если визникают ошибки разбора файла смотрите Error Details и в файле пути к подчиненым файлам xsd. + +В поле "Пространство имен" укажите, например: + Service.Async.DebtRequests.v14_5_0_1 + +Нажмите "OK" + +Классы будут созданы в пространстве имен полученном из комбинации: +ПространствоИменПроектаПоУмолчанию.УказанноеПространствоИмен diff --git a/Hcs.Client/Microsoft/Xades/AllDataObjectsTimeStampCollection.cs b/Hcs.Client/Microsoft/Xades/AllDataObjectsTimeStampCollection.cs new file mode 100644 index 0000000..a0ef4cb --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/AllDataObjectsTimeStampCollection.cs @@ -0,0 +1,62 @@ +// AllDataObjectsTimeStampCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class AllDataObjectsTimeStampCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new TimeStamp this[int index] + { + get + { + return (TimeStamp)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public TimeStamp Add(TimeStamp objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public TimeStamp Add() + { + return this.Add(new TimeStamp("AllDataObjectsTimeStamp")); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLIdentifier.cs b/Hcs.Client/Microsoft/Xades/CRLIdentifier.cs new file mode 100644 index 0000000..7107030 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLIdentifier.cs @@ -0,0 +1,222 @@ +// CRLIdentifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class includes the issuer (Issuer element), the time when the CRL + /// was issued (IssueTime element) and optionally the number of the CRL + /// (Number element). + /// The Identifier element can be dropped if the CRL could be inferred from + /// other information. Its URI attribute could serve to indicate where the + /// identified CRL is archived. + /// + public class CRLIdentifier + { + #region Private variables + private string uriAttribute; + private string issuer; + private DateTime issueTime; + private long number; + #endregion + + #region Public properties + /// + /// The optional URI attribute could serve to indicate where the OCSP + /// response identified is archived + /// + public string UriAttribute + { + get + { + return this.uriAttribute; + } + set + { + this.uriAttribute = value; + } + } + + /// + /// Issuer of the CRL + /// + public string Issuer + { + get + { + return this.issuer; + } + set + { + this.issuer = value; + } + } + + /// + /// Date of issue of the CRL + /// + public DateTime IssueTime + { + get + { + return this.issueTime; + } + set + { + this.issueTime = value; + } + } + + /// + /// Optional number of the CRL + /// + public long Number + { + get + { + return this.number; + } + set + { + this.number = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CRLIdentifier() + { + this.issueTime = DateTime.MinValue; + this.number = long.MinValue; //Impossible value + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.uriAttribute)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.issuer)) + { + retVal = true; + } + + if (this.issueTime != DateTime.MinValue) + { + retVal = true; + } + + if (this.number != long.MinValue) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("URI")) + { + this.uriAttribute = xmlElement.GetAttribute("URI"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:Issuer", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.issuer = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:IssueTime", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.issueTime = XmlConvert.ToDateTime(xmlNodeList.Item(0).InnerText, XmlDateTimeSerializationMode.Local); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:Number", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.number = long.Parse(xmlNodeList.Item(0).InnerText); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CRLIdentifier", XadesSignedXml.XadesNamespaceUri); + + retVal.SetAttribute("URI", this.uriAttribute); + + if (!String.IsNullOrEmpty(this.issuer)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Issuer", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.issuer; + retVal.AppendChild(bufferXmlElement); + } + + if (this.issueTime != DateTime.MinValue) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "IssueTime", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = Convert.ToString(this.issueTime.ToString("s")); + retVal.AppendChild(bufferXmlElement); + } + + if (this.number != long.MinValue) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Number", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.number.ToString(); + retVal.AppendChild(bufferXmlElement); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLRef.cs b/Hcs.Client/Microsoft/Xades/CRLRef.cs new file mode 100644 index 0000000..9ec2a86 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLRef.cs @@ -0,0 +1,165 @@ +// CRLRef.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains information about a Certificate Revocation List (CRL) + /// + public class CRLRef + { + #region Private variables + private DigestAlgAndValueType digestAlgAndValue; + private CRLIdentifier crlIdentifier; + #endregion + + #region Public properties + /// + /// The digest of the entire DER encoded + /// + public DigestAlgAndValueType CertDigest + { + get + { + return this.digestAlgAndValue; + } + set + { + this.digestAlgAndValue = value; + } + } + + /// + /// CRLIdentifier is a set of data including the issuer, the time when + /// the CRL was issued and optionally the number of the CRL. + /// The Identifier element can be dropped if the CRL could be inferred + /// from other information. + /// + public CRLIdentifier CRLIdentifier + { + get + { + return this.crlIdentifier; + } + set + { + this.crlIdentifier = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CRLRef() + { + this.digestAlgAndValue = new DigestAlgAndValueType("DigestAlgAndValue"); + this.crlIdentifier = new CRLIdentifier(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.digestAlgAndValue != null && this.digestAlgAndValue.HasChanged()) + { + retVal = true; + } + + if (this.crlIdentifier != null && this.crlIdentifier.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:DigestAlgAndValue", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("DigestAlgAndValue missing"); + } + this.digestAlgAndValue = new DigestAlgAndValueType("DigestAlgAndValue"); + this.digestAlgAndValue.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:CRLIdentifier", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + this.crlIdentifier = null; + } + else + { + this.crlIdentifier = new CRLIdentifier(); + this.crlIdentifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CRLRef", XadesSignedXml.XadesNamespaceUri); + + if (this.digestAlgAndValue != null && this.digestAlgAndValue.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.digestAlgAndValue.GetXml(), true)); + } + else + { + throw new CryptographicException("DigestAlgAndValue element missing in CRLRef"); + } + + if (this.crlIdentifier != null && this.crlIdentifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.crlIdentifier.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLRefCollection.cs b/Hcs.Client/Microsoft/Xades/CRLRefCollection.cs new file mode 100644 index 0000000..ad98c51 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLRefCollection.cs @@ -0,0 +1,62 @@ +// CRLRefCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CRLRefCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new CRLRef this[int index] + { + get + { + return (CRLRef)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public CRLRef Add(CRLRef objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public CRLRef Add() + { + return this.Add(new CRLRef()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLRefs.cs b/Hcs.Client/Microsoft/Xades/CRLRefs.cs new file mode 100644 index 0000000..68e5bd6 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLRefs.cs @@ -0,0 +1,146 @@ +// CRLRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// Class that contains a collection of CRL references + /// + public class CRLRefs + { + #region Private variables + private CRLRefCollection crlRefCollection; + #endregion + + #region Public properties + /// + /// Collection of + /// + public CRLRefCollection CRLRefCollection + { + get + { + return this.crlRefCollection; + } + set + { + this.crlRefCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CRLRefs() + { + this.crlRefCollection = new CRLRefCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.crlRefCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + CRLRef newCRLRef; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.crlRefCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:CRLRef", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCRLRef = new CRLRef(); + newCRLRef.LoadXml(iterationXmlElement); + this.crlRefCollection.Add(newCRLRef); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CRLRefs", XadesSignedXml.XadesNamespaceUri); + + if (this.crlRefCollection.Count > 0) + { + foreach (CRLRef crlRef in this.crlRefCollection) + { + if (crlRef.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(crlRef.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLValue.cs b/Hcs.Client/Microsoft/Xades/CRLValue.cs new file mode 100644 index 0000000..49c13b9 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLValue.cs @@ -0,0 +1,33 @@ +// CRLValue.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +namespace Microsoft.Xades +{ + /// + /// This class consist of a sequence of at least one Certificate Revocation + /// List. Each EncapsulatedCRLValue will contain the base64 encoding of a + /// DER-encoded X509 CRL. + /// + public class CRLValue : EncapsulatedPKIData + { + #region Constructors + /// + /// Default constructor + /// + public CRLValue() + { + this.TagName = "EncapsulatedCRLValue"; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLValueCollection.cs b/Hcs.Client/Microsoft/Xades/CRLValueCollection.cs new file mode 100644 index 0000000..8617d9a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLValueCollection.cs @@ -0,0 +1,62 @@ +// CRLValueCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CRLValueCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new CRLValue this[int index] + { + get + { + return (CRLValue)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public CRLValue Add(CRLValue objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public CRLValue Add() + { + return this.Add(new CRLValue()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CRLValues.cs b/Hcs.Client/Microsoft/Xades/CRLValues.cs new file mode 100644 index 0000000..bf69d43 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CRLValues.cs @@ -0,0 +1,146 @@ +// CRLValues.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of CRL values + /// + public class CRLValues + { + #region Private variables + private CRLValueCollection crlValueCollection; + #endregion + + #region Public properties + /// + /// Collection of CRLValues + /// + public CRLValueCollection CRLValueCollection + { + get + { + return this.crlValueCollection; + } + set + { + this.crlValueCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CRLValues() + { + this.crlValueCollection = new CRLValueCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.crlValueCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + CRLValue newCRLValue; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.crlValueCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:EncapsulatedCRLValue", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCRLValue = new CRLValue(); + newCRLValue.LoadXml(iterationXmlElement); + this.crlValueCollection.Add(newCRLValue); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CRLValues", XadesSignedXml.XadesNamespaceUri); + + if (this.crlValueCollection.Count > 0) + { + foreach (CRLValue crlValue in this.crlValueCollection) + { + if (crlValue.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(crlValue.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/Cert.cs b/Hcs.Client/Microsoft/Xades/Cert.cs new file mode 100644 index 0000000..a7dd057 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/Cert.cs @@ -0,0 +1,162 @@ +// Cert.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains certificate identification information + /// + public class Cert + { + #region Private variables + private DigestAlgAndValueType certDigest; + private IssuerSerial issuerSerial; + #endregion + + #region Public properties + /// + /// The element CertDigest contains the digest of one of the + /// certificates referenced in the sequence + /// + public DigestAlgAndValueType CertDigest + { + get + { + return this.certDigest; + } + set + { + this.certDigest = value; + } + } + + /// + /// The element IssuerSerial contains the identifier of one of the + /// certificates referenced in the sequence. Should the + /// X509IssuerSerial element appear in the signature to denote the same + /// certificate, its value MUST be consistent with the corresponding + /// IssuerSerial element. + /// + public IssuerSerial IssuerSerial + { + get + { + return this.issuerSerial; + } + set + { + this.issuerSerial = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public Cert() + { + this.certDigest = new DigestAlgAndValueType("CertDigest"); + this.issuerSerial = new IssuerSerial(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.certDigest != null && this.certDigest.HasChanged()) + { + retVal = true; + } + + if (this.issuerSerial != null && this.issuerSerial.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:CertDigest", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("CertDigest missing"); + } + this.certDigest = new DigestAlgAndValueType("CertDigest"); + this.certDigest.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:IssuerSerial", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("IssuerSerial missing"); + } + this.issuerSerial = new IssuerSerial(); + this.issuerSerial.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "Cert", XadesSignedXml.XadesNamespaceUri); + + if (this.certDigest != null && this.certDigest.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.certDigest.GetXml(), true)); + } + + if (this.issuerSerial != null && this.issuerSerial.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.issuerSerial.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertCollection.cs b/Hcs.Client/Microsoft/Xades/CertCollection.cs new file mode 100644 index 0000000..7738e3c --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertCollection.cs @@ -0,0 +1,62 @@ +// CertCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CertCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new Cert this[int index] + { + get + { + return (Cert)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public Cert Add(Cert objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public Cert Add() + { + return this.Add(new Cert()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertRefs.cs b/Hcs.Client/Microsoft/Xades/CertRefs.cs new file mode 100644 index 0000000..b8d75cd --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertRefs.cs @@ -0,0 +1,146 @@ +// CertRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The CertRefs element contains a collection of Cert elements + /// + public class CertRefs + { + #region Private variables + private CertCollection certCollection; + #endregion + + #region Public properties + /// + /// Collection of Certs + /// + public CertCollection CertCollection + { + get + { + return this.certCollection; + } + set + { + this.certCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CertRefs() + { + this.certCollection = new CertCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.certCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + Cert newCert; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.certCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:Cert", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCert = new Cert(); + newCert.LoadXml(iterationXmlElement); + this.certCollection.Add(newCert); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("CertRefs", XadesSignedXml.XadesNamespaceUri); + + if (this.certCollection.Count > 0) + { + foreach (Cert cert in this.certCollection) + { + if (cert.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(cert.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertificateValues.cs b/Hcs.Client/Microsoft/Xades/CertificateValues.cs new file mode 100644 index 0000000..cafc924 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertificateValues.cs @@ -0,0 +1,246 @@ +// CertificateValues.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The CertificateValues element contains the full set of certificates + /// that have been used to validate the electronic signature, including the + /// signer's certificate. However, it is not necessary to include one of + /// those certificates into this property, if the certificate is already + /// present in the ds:KeyInfo element of the signature. + /// In fact, both the signer certificate (referenced in the mandatory + /// SigningCertificate property element) and all certificates referenced in + /// the CompleteCertificateRefs property element must be present either in + /// the ds:KeyInfo element of the signature or in the CertificateValues + /// property element. + /// + public class CertificateValues + { + #region Private variables + private string id; + private EncapsulatedX509CertificateCollection encapsulatedX509CertificateCollection; + private OtherCertificateCollection otherCertificateCollection; + #endregion + + #region Public properties + + /// + /// Optional Id of the certificate values element + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// A collection of encapsulated X509 certificates + /// + public EncapsulatedX509CertificateCollection EncapsulatedX509CertificateCollection + { + get + { + return this.encapsulatedX509CertificateCollection; + } + set + { + this.encapsulatedX509CertificateCollection = value; + } + } + + /// + /// Collection of other certificates + /// + public OtherCertificateCollection OtherCertificateCollection + { + get + { + return this.otherCertificateCollection; + } + set + { + this.otherCertificateCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CertificateValues() + { + this.encapsulatedX509CertificateCollection = new EncapsulatedX509CertificateCollection(); + this.otherCertificateCollection = new OtherCertificateCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.id != null && this.id != "") + { + retVal = true; + } + if (this.encapsulatedX509CertificateCollection.Count > 0) + { + retVal = true; + } + if (this.otherCertificateCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + EncapsulatedX509Certificate newEncapsulatedX509Certificate; + OtherCertificate newOtherCertificate; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xades", XadesSignedXml.XadesNamespaceUri); + + this.encapsulatedX509CertificateCollection.Clear(); + this.otherCertificateCollection.Clear(); + + xmlNodeList = xmlElement.SelectNodes("xades:EncapsulatedX509Certificate", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newEncapsulatedX509Certificate = new EncapsulatedX509Certificate(); + newEncapsulatedX509Certificate.LoadXml(iterationXmlElement); + this.encapsulatedX509CertificateCollection.Add(newEncapsulatedX509Certificate); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + xmlNodeList = xmlElement.SelectNodes("xades:OtherCertificate", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newOtherCertificate = new OtherCertificate(); + newOtherCertificate.LoadXml(iterationXmlElement); + this.otherCertificateCollection.Add(newOtherCertificate); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CertificateValues", XadesSignedXml.XadesNamespaceUri); + if (this.id != null && this.id != "") + { + retVal.SetAttribute("Id", this.id); + } + + if (this.encapsulatedX509CertificateCollection.Count > 0) + { + foreach (EncapsulatedX509Certificate encapsulatedX509Certificate in this.encapsulatedX509CertificateCollection) + { + if (encapsulatedX509Certificate.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(encapsulatedX509Certificate.GetXml(), true)); + } + } + } + if (this.otherCertificateCollection.Count > 0) + { + foreach (OtherCertificate otherCertificate in this.otherCertificateCollection) + { + if (otherCertificate.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(otherCertificate.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertifiedRole.cs b/Hcs.Client/Microsoft/Xades/CertifiedRole.cs new file mode 100644 index 0000000..58e0023 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertifiedRole.cs @@ -0,0 +1,32 @@ +// CertifiedRole.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +namespace Microsoft.Xades +{ + /// + /// The CertifiedRoles element contains one or more wrapped attribute + /// certificates for the signer + /// + public class CertifiedRole : EncapsulatedPKIData + { + #region Constructors + /// + /// Default constructor + /// + public CertifiedRole() + { + this.TagName = "CertifiedRole"; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertifiedRoleCollection.cs b/Hcs.Client/Microsoft/Xades/CertifiedRoleCollection.cs new file mode 100644 index 0000000..cc632c1 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertifiedRoleCollection.cs @@ -0,0 +1,62 @@ +// CertifiedRoleCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CertifiedRoleCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new CertifiedRole this[int index] + { + get + { + return (CertifiedRole)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public CertifiedRole Add(CertifiedRole objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public CertifiedRole Add() + { + return this.Add(new CertifiedRole()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CertifiedRoles.cs b/Hcs.Client/Microsoft/Xades/CertifiedRoles.cs new file mode 100644 index 0000000..c8bbe82 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CertifiedRoles.cs @@ -0,0 +1,147 @@ +// CertifiedRoles.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The CertifiedRoles element contains one or more wrapped attribute + /// certificates for the signer + /// + public class CertifiedRoles + { + #region Private variables + private CertifiedRoleCollection certifiedRoleCollection; + #endregion + + #region Public properties + /// + /// Collection of certified roles + /// + public CertifiedRoleCollection CertifiedRoleCollection + { + get + { + return this.certifiedRoleCollection; + } + set + { + this.certifiedRoleCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CertifiedRoles() + { + this.certifiedRoleCollection = new CertifiedRoleCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.certifiedRoleCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + EncapsulatedPKIData newCertifiedRole; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.certifiedRoleCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:CertifiedRole", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCertifiedRole = new EncapsulatedPKIData("CertifiedRole"); + newCertifiedRole.LoadXml(iterationXmlElement); + this.certifiedRoleCollection.Add(newCertifiedRole); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CertifiedRoles", XadesSignedXml.XadesNamespaceUri); + + if (this.certifiedRoleCollection.Count > 0) + { + foreach (EncapsulatedPKIData certifiedRole in this.certifiedRoleCollection) + { + if (certifiedRole.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(certifiedRole.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/ClaimedRole.cs b/Hcs.Client/Microsoft/Xades/ClaimedRole.cs new file mode 100644 index 0000000..e7075bd --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ClaimedRole.cs @@ -0,0 +1,101 @@ +// ClaimedRole.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a roles claimed by the signer but not it is not a + /// certified role + /// + public class ClaimedRole + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents a claimed role + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public ClaimedRole() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "ClaimedRole", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/ClaimedRoleCollection.cs b/Hcs.Client/Microsoft/Xades/ClaimedRoleCollection.cs new file mode 100644 index 0000000..b4db18c --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ClaimedRoleCollection.cs @@ -0,0 +1,62 @@ +// ClaimedRoleCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class ClaimedRoleCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new ClaimedRole this[int index] + { + get + { + return (ClaimedRole)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public ClaimedRole Add(ClaimedRole objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public ClaimedRole Add() + { + return this.Add(new ClaimedRole()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/ClaimedRoles.cs b/Hcs.Client/Microsoft/Xades/ClaimedRoles.cs new file mode 100644 index 0000000..c58c2e9 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ClaimedRoles.cs @@ -0,0 +1,150 @@ +// ClaimedRoles.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The ClaimedRoles element contains a sequence of roles claimed by + /// the signer but not certified. Additional contents types may be + /// defined on a domain application basis and be part of this element. + /// The namespaces given to the corresponding XML schemas will allow + /// their unambiguous identification in the case these roles use XML. + /// + public class ClaimedRoles + { + #region Private variables + private ClaimedRoleCollection claimedRoleCollection; + #endregion + + #region Public properties + /// + /// Collection of claimed roles + /// + public ClaimedRoleCollection ClaimedRoleCollection + { + get + { + return this.claimedRoleCollection; + } + set + { + this.claimedRoleCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public ClaimedRoles() + { + this.claimedRoleCollection = new ClaimedRoleCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.claimedRoleCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + ClaimedRole newClaimedRole; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.claimedRoleCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:ClaimedRole", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newClaimedRole = new ClaimedRole(); + newClaimedRole.LoadXml(iterationXmlElement); + this.claimedRoleCollection.Add(newClaimedRole); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "ClaimedRoles", XadesSignedXml.XadesNamespaceUri); + + if (this.claimedRoleCollection.Count > 0) + { + foreach (ClaimedRole claimedRole in this.claimedRoleCollection) + { + if (claimedRole.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(claimedRole.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CommitmentTypeIndication.cs b/Hcs.Client/Microsoft/Xades/CommitmentTypeIndication.cs new file mode 100644 index 0000000..68555a9 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CommitmentTypeIndication.cs @@ -0,0 +1,283 @@ +// CommitmentTypeIndication.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The commitment type can be indicated in the electronic signature + /// by either explicitly using a commitment type indication in the + /// electronic signature or implicitly or explicitly from the semantics + /// of the signed data object. + /// If the indicated commitment type is explicit by means of a commitment + /// type indication in the electronic signature, acceptance of a verified + /// signature implies acceptance of the semantics of that commitment type. + /// The semantics of explicit commitment types indications shall be + /// specified either as part of the signature policy or may be registered + /// for generic use across multiple policies. + /// + public class CommitmentTypeIndication + { + #region Private variables + private ObjectIdentifier commitmentTypeId; + private ObjectReferenceCollection objectReferenceCollection; + private bool allSignedDataObjects; + private CommitmentTypeQualifiers commitmentTypeQualifiers; + #endregion + + #region Public properties + /// + /// The CommitmentTypeId element univocally identifies the type of commitment made by the signer. + /// A number of commitments have been already identified and assigned corresponding OIDs. + /// + public ObjectIdentifier CommitmentTypeId + { + get + { + return this.commitmentTypeId; + } + set + { + this.commitmentTypeId = value; + } + } + + /// + /// Collection of object references + /// + public ObjectReferenceCollection ObjectReferenceCollection + { + get + { + return this.objectReferenceCollection; + } + set + { + this.objectReferenceCollection = value; + if (this.objectReferenceCollection != null) + { + if (this.objectReferenceCollection.Count > 0) + { + this.allSignedDataObjects = false; + } + } + } + } + + /// + /// If all the signed data objects share the same commitment, the + /// AllSignedDataObjects empty element MUST be present + /// + public bool AllSignedDataObjects + { + get + { + return this.allSignedDataObjects; + } + set + { + this.allSignedDataObjects = value; + if (this.allSignedDataObjects) + { + this.objectReferenceCollection.Clear(); + } + } + } + + /// + /// The CommitmentTypeQualifiers element provides means to include additional + /// qualifying information on the commitment made by the signer + /// + public CommitmentTypeQualifiers CommitmentTypeQualifiers + { + get + { + return this.commitmentTypeQualifiers; + } + set + { + this.commitmentTypeQualifiers = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CommitmentTypeIndication() + { + this.commitmentTypeId = new ObjectIdentifier("CommitmentTypeId"); + this.objectReferenceCollection = new ObjectReferenceCollection(); + this.allSignedDataObjects = true; + this.commitmentTypeQualifiers = new CommitmentTypeQualifiers(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.commitmentTypeId != null && this.commitmentTypeId.HasChanged()) + { + retVal = true; + } + + if (this.objectReferenceCollection.Count > 0) + { + retVal = true; + } + + if (this.commitmentTypeQualifiers != null && this.commitmentTypeQualifiers.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + ObjectReference newObjectReference; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:CommitmentTypeId", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + this.commitmentTypeId = null; + throw new CryptographicException("CommitmentTypeId missing"); + } + else + { + this.commitmentTypeId = new ObjectIdentifier("CommitmentTypeId"); + this.commitmentTypeId.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:ObjectReference", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.objectReferenceCollection.Clear(); + this.allSignedDataObjects = false; + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newObjectReference = new ObjectReference(); + newObjectReference.LoadXml(iterationXmlElement); + this.objectReferenceCollection.Add(newObjectReference); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + } + else + { + this.objectReferenceCollection.Clear(); + this.allSignedDataObjects = true; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CommitmentTypeQualifiers", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.commitmentTypeQualifiers = new CommitmentTypeQualifiers(); + this.commitmentTypeQualifiers.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CommitmentTypeIndication", XadesSignedXml.XadesNamespaceUri); + + if (this.commitmentTypeId != null && this.commitmentTypeId.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.commitmentTypeId.GetXml(), true)); + } + else + { + throw new CryptographicException("CommitmentTypeId element missing"); + } + + if (this.allSignedDataObjects) + { //Add emty element as required + bufferXmlElement = creationXmlDocument.CreateElement("xades", "AllSignedDataObjects", XadesSignedXml.XadesNamespaceUri); + retVal.AppendChild(bufferXmlElement); + } + else + { + if (this.objectReferenceCollection.Count > 0) + { + foreach (ObjectReference objectReference in this.objectReferenceCollection) + { + if (objectReference.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(objectReference.GetXml(), true)); + } + } + } + } + + if (this.commitmentTypeQualifiers != null && this.commitmentTypeQualifiers.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.commitmentTypeQualifiers.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CommitmentTypeIndicationCollection.cs b/Hcs.Client/Microsoft/Xades/CommitmentTypeIndicationCollection.cs new file mode 100644 index 0000000..f2f24ce --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CommitmentTypeIndicationCollection.cs @@ -0,0 +1,62 @@ +// ACommitmentTypeIndicationCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CommitmentTypeIndicationCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new CommitmentTypeIndication this[int index] + { + get + { + return (CommitmentTypeIndication)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public CommitmentTypeIndication Add(CommitmentTypeIndication objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public CommitmentTypeIndication Add() + { + return this.Add(new CommitmentTypeIndication()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifier.cs b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifier.cs new file mode 100644 index 0000000..bbbb07b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifier.cs @@ -0,0 +1,101 @@ +// CommitmentTypeQualifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The CommitmentTypeQualifiers element provides means to include + /// additional qualifying information on the commitment made by the signer + /// + public class CommitmentTypeQualifier + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents a commitment type qualifier + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CommitmentTypeQualifier() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CommitmentTypeQualifier", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifierCollection.cs b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifierCollection.cs new file mode 100644 index 0000000..053656b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifierCollection.cs @@ -0,0 +1,62 @@ +// CommitmentTypeQualifierCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CommitmentTypeQualifierCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new CommitmentTypeQualifier this[int index] + { + get + { + return (CommitmentTypeQualifier)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public CommitmentTypeQualifier Add(CommitmentTypeQualifier objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public CommitmentTypeQualifier Add() + { + return this.Add(new CommitmentTypeQualifier()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifiers.cs b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifiers.cs new file mode 100644 index 0000000..6690039 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CommitmentTypeQualifiers.cs @@ -0,0 +1,147 @@ +// CommitmentTypeQualifers.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The CommitmentTypeQualifier element provides means to include + /// additional qualifying information on the commitment made by the signer + /// + public class CommitmentTypeQualifiers + { + #region Private variables + private CommitmentTypeQualifierCollection commitmentTypeQualifierCollection; + #endregion + + #region Public properties + /// + /// Collection of commitment type qualifiers + /// + public CommitmentTypeQualifierCollection CommitmentTypeQualifierCollection + { + get + { + return this.commitmentTypeQualifierCollection; + } + set + { + this.commitmentTypeQualifierCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CommitmentTypeQualifiers() + { + this.commitmentTypeQualifierCollection = new CommitmentTypeQualifierCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.commitmentTypeQualifierCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + CommitmentTypeQualifier newCommitmentTypeQualifier; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.commitmentTypeQualifierCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:CommitmentTypeQualifier", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCommitmentTypeQualifier = new CommitmentTypeQualifier(); + newCommitmentTypeQualifier.LoadXml(iterationXmlElement); + this.commitmentTypeQualifierCollection.Add(newCommitmentTypeQualifier); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CommitmentTypeQualifiers", XadesSignedXml.XadesNamespaceUri); + + if (this.commitmentTypeQualifierCollection.Count > 0) + { + foreach (CommitmentTypeQualifier commitmentTypeQualifier in this.commitmentTypeQualifierCollection) + { + if (commitmentTypeQualifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(commitmentTypeQualifier.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CompleteCertificateRefs.cs b/Hcs.Client/Microsoft/Xades/CompleteCertificateRefs.cs new file mode 100644 index 0000000..1142932 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CompleteCertificateRefs.cs @@ -0,0 +1,157 @@ +// CompleteCertificateRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This clause defines the XML element containing the sequence of + /// references to the full set of CA certificates that have been used + /// to validate the electronic signature up to (but not including) the + /// signer's certificate. This is an unsigned property that qualifies + /// the signature. + /// An XML electronic signature aligned with the XAdES standard may + /// contain at most one CompleteCertificateRefs element. + /// + public class CompleteCertificateRefs + { + #region Private variables + private string id; + private CertRefs certRefs; + #endregion + + #region Public properties + /// + /// The optional Id attribute can be used to make a reference to the CompleteCertificateRefs element + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// The CertRefs element contains a sequence of Cert elements, incorporating the + /// digest of each certificate and optionally the issuer and serial number identifier + /// + public CertRefs CertRefs + { + get + { + return this.certRefs; + } + set + { + this.certRefs = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CompleteCertificateRefs() + { + this.certRefs = new CertRefs(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + if (this.certRefs != null && this.certRefs.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:CertRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.certRefs = new CertRefs(); + this.certRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CompleteCertificateRefs", XadesSignedXml.XadesNamespaceUri); + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + + if (this.certRefs != null && this.certRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.certRefs.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CompleteRevocationRefs.cs b/Hcs.Client/Microsoft/Xades/CompleteRevocationRefs.cs new file mode 100644 index 0000000..3ddae76 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CompleteRevocationRefs.cs @@ -0,0 +1,216 @@ +// CompleteRevocationRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This clause defines the XML element containing a full set of + /// references to the revocation data that have been used in the + /// validation of the signer and CA certificates. + /// This is an unsigned property that qualifies the signature. + /// The XML electronic signature aligned with the present document + /// MAY contain at most one CompleteRevocationRefs element. + /// + public class CompleteRevocationRefs + { + #region Private variables + private string id; + private CRLRefs crlRefs; + private OCSPRefs ocspRefs; + private OtherRefs otherRefs; + #endregion + + #region Public properties + /// + /// The optional Id attribute can be used to make a reference to the CompleteRevocationRefs element + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// Sequences of references to CRLs + /// + public CRLRefs CRLRefs + { + get + { + return this.crlRefs; + } + set + { + this.crlRefs = value; + } + } + + /// + /// Sequences of references to OCSP responses + /// + public OCSPRefs OCSPRefs + { + get + { + return this.ocspRefs; + } + set + { + this.ocspRefs = value; + } + } + + /// + /// Other references to alternative forms of revocation data + /// + public OtherRefs OtherRefs + { + get + { + return this.otherRefs; + } + set + { + this.otherRefs = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public CompleteRevocationRefs() + { + this.crlRefs = new CRLRefs(); + this.ocspRefs = new OCSPRefs(); + this.otherRefs = new OtherRefs(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + if (this.crlRefs != null && this.crlRefs.HasChanged()) + { + retVal = true; + } + if (this.ocspRefs != null && this.ocspRefs.HasChanged()) + { + retVal = true; + } + if (this.otherRefs != null && this.otherRefs.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:CRLRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.crlRefs = new CRLRefs(); + this.crlRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + xmlNodeList = xmlElement.SelectNodes("xsd:OCSPRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.ocspRefs = new OCSPRefs(); + this.ocspRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + xmlNodeList = xmlElement.SelectNodes("xsd:OtherRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.otherRefs = new OtherRefs(); + this.otherRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "CompleteRevocationRefs", XadesSignedXml.XadesNamespaceUri); + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + if (this.crlRefs != null && this.crlRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.crlRefs.GetXml(), true)); + } + if (this.ocspRefs != null && this.ocspRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.ocspRefs.GetXml(), true)); + } + if (this.otherRefs != null && this.otherRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.otherRefs.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/CounterSignatureCollection.cs b/Hcs.Client/Microsoft/Xades/CounterSignatureCollection.cs new file mode 100644 index 0000000..c50f87c --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/CounterSignatureCollection.cs @@ -0,0 +1,62 @@ +// CounterSignatureCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class CounterSignatureCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new XadesSignedXml this[int index] + { + get + { + return (XadesSignedXml)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public XadesSignedXml Add(XadesSignedXml objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public XadesSignedXml Add() + { + return this.Add(new XadesSignedXml()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/DataObjectFormat.cs b/Hcs.Client/Microsoft/Xades/DataObjectFormat.cs new file mode 100644 index 0000000..37bb78b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DataObjectFormat.cs @@ -0,0 +1,270 @@ +// DataIbjectFormat.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The DataObjectFormat element provides information that describes the + /// format of the signed data object. This element must be present when it + /// is mandatory to present the signed data object to human users on + /// verification. + /// This is a signed property that qualifies one specific signed data + /// object. In consequence, a XAdES signature may contain more than one + /// DataObjectFormat elements, each one qualifying one signed data object. + /// + public class DataObjectFormat + { + #region Private variables + private string objectReferenceAttribute; + private string description; + private ObjectIdentifier objectIdentifier; + private string mimeType; + private string encoding; + #endregion + + #region Public properties + /// + /// The mandatory ObjectReference attribute refers to the Reference element + /// of the signature corresponding with the data object qualified by this + /// property + /// + public string ObjectReferenceAttribute + { + get + { + return this.objectReferenceAttribute; + } + set + { + this.objectReferenceAttribute = value; + } + } + + /// + /// Textual information related to the signed data object + /// + public string Description + { + get + { + return this.description; + } + set + { + this.description = value; + } + } + + /// + /// An identifier indicating the type of the signed data object + /// + public ObjectIdentifier ObjectIdentifier + { + get + { + return this.objectIdentifier; + } + set + { + this.objectIdentifier = value; + } + } + + /// + /// An indication of the MIME type of the signed data object + /// + public string MimeType + { + get + { + return this.mimeType; + } + set + { + this.mimeType = value; + } + } + + /// + /// An indication of the encoding format of the signed data object + /// + public string Encoding + { + get + { + return this.encoding; + } + set + { + this.encoding = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public DataObjectFormat() + { + this.objectIdentifier = new ObjectIdentifier("ObjectIdentifier"); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.objectReferenceAttribute)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.description)) + { + retVal = true; + } + + if (this.objectIdentifier != null && this.objectIdentifier.HasChanged()) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.mimeType)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.encoding)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + if (xmlElement.HasAttribute("ObjectReference")) + { + this.objectReferenceAttribute = xmlElement.GetAttribute("ObjectReference"); + } + else + { + this.objectReferenceAttribute = ""; + throw new CryptographicException("ObjectReference attribute missing"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:Description", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.description = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:ObjectIdentifier", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.objectIdentifier = new ObjectIdentifier("ObjectIdentifier"); + this.objectIdentifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:MimeType", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.mimeType = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:Encoding", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.encoding = xmlNodeList.Item(0).InnerText; + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "DataObjectFormat", XadesSignedXml.XadesNamespaceUri); + + if ((this.objectReferenceAttribute != null) && ((this.objectReferenceAttribute != ""))) + { + retVal.SetAttribute("ObjectReference", this.objectReferenceAttribute); + } + else + { + throw new CryptographicException("Attribute ObjectReference missing"); + } + + if (!String.IsNullOrEmpty(this.description)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Description", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.description; + retVal.AppendChild(bufferXmlElement); + } + + if (this.objectIdentifier != null && this.objectIdentifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.objectIdentifier.GetXml(), true)); + } + + if (!String.IsNullOrEmpty(this.mimeType)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "MimeType", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.mimeType; + retVal.AppendChild(bufferXmlElement); + } + + if (!String.IsNullOrEmpty(this.encoding)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Encoding", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.encoding; + retVal.AppendChild(bufferXmlElement); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/DataObjectFormatCollection.cs b/Hcs.Client/Microsoft/Xades/DataObjectFormatCollection.cs new file mode 100644 index 0000000..a9b378d --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DataObjectFormatCollection.cs @@ -0,0 +1,62 @@ +// DataObjectFormatCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class DataObjectFormatCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new DataObjectFormat this[int index] + { + get + { + return (DataObjectFormat)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public DataObjectFormat Add(DataObjectFormat objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public DataObjectFormat Add() + { + return this.Add(new DataObjectFormat()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/DigestAlgAndValueType.cs b/Hcs.Client/Microsoft/Xades/DigestAlgAndValueType.cs new file mode 100644 index 0000000..dc6f56a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DigestAlgAndValueType.cs @@ -0,0 +1,192 @@ +// DigestAlgAndValueType.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class indicates the algortithm used to calculate the digest and + /// the digest value itself + /// + public class DigestAlgAndValueType + { + #region Private variables + private string tagName; + private DigestMethod digestMethod; + private byte[] digestValue; + #endregion + + #region Public properties + /// + /// The name of the element when serializing + /// + public string TagName + { + get + { + return this.tagName; + } + set + { + this.tagName = value; + } + } + + /// + /// Indicates the digest algorithm + /// + public DigestMethod DigestMethod + { + get + { + return this.digestMethod; + } + set + { + this.digestMethod = value; + } + } + + /// + /// Contains the value of the digest + /// + public byte[] DigestValue + { + get + { + return this.digestValue; + } + set + { + this.digestValue = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public DigestAlgAndValueType() + { + this.digestMethod = new DigestMethod(); + this.digestValue = null; + } + + /// + /// Constructor with TagName + /// + /// Name of the tag when serializing with GetXml + public DigestAlgAndValueType(string tagName) : this() + { + this.tagName = tagName; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.digestMethod != null && this.digestMethod.HasChanged()) + { + retVal = true; + } + + if (this.digestValue != null && this.digestValue.Length > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + + xmlNodeList = xmlElement.SelectNodes("ds:DigestMethod", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("DigestMethod missing"); + } + this.digestMethod = new DigestMethod(); + this.digestMethod.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("ds:DigestValue", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("DigestValue missing"); + } + this.digestValue = Convert.FromBase64String(xmlNodeList.Item(0).InnerText); + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", this.tagName, XadesSignedXml.XadesNamespaceUri); + + if (this.digestMethod != null && this.digestMethod.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.digestMethod.GetXml(), true)); + } + else + { + throw new CryptographicException("DigestMethod element missing in DigestAlgAndValueType"); + } + + if (this.digestValue != null && this.digestValue.Length > 0) + { + bufferXmlElement = creationXmlDocument.CreateElement("ds", "DigestValue", SignedXml.XmlDsigNamespaceUrl); + bufferXmlElement.InnerText = Convert.ToBase64String(this.digestValue); + retVal.AppendChild(bufferXmlElement); + } + else + { + throw new CryptographicException("DigestValue element missing in DigestAlgAndValueType"); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/DigestMethod.cs b/Hcs.Client/Microsoft/Xades/DigestMethod.cs new file mode 100644 index 0000000..f790004 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DigestMethod.cs @@ -0,0 +1,104 @@ +// DigestMethod.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// DigestMethod indicates the digest algorithm + /// + public class DigestMethod + { + #region Private variables + private string algorithm; + #endregion + + #region Public properties + /// + /// Contains the digest algorithm + /// + public string Algorithm + { + get + { + return this.algorithm; + } + set + { + this.algorithm = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public DigestMethod() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.algorithm)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + this.algorithm = xmlElement.GetAttribute("Algorithm"); + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("ds", "DigestMethod", SignedXml.XmlDsigNamespaceUrl); + + retVal.SetAttribute("Algorithm", this.algorithm); + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/DocumentationReference.cs b/Hcs.Client/Microsoft/Xades/DocumentationReference.cs new file mode 100644 index 0000000..029a019 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DocumentationReference.cs @@ -0,0 +1,103 @@ +// DocumentationReference.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// DocumentationReference points to further explanatory documentation + /// of the object identifier + /// + public class DocumentationReference + { + #region Private variables + private string documentationReferenceUri; + #endregion + + #region Public properties + /// + /// Pointer to further explanatory documentation of the object identifier + /// + public string DocumentationReferenceUri + { + get + { + return this.documentationReferenceUri; + } + set + { + this.documentationReferenceUri = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public DocumentationReference() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.documentationReferenceUri)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + this.documentationReferenceUri = xmlElement.InnerText; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "DocumentationReference", XadesSignedXml.XadesNamespaceUri); + retVal.InnerText = this.documentationReferenceUri; + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/DocumentationReferenceCollection.cs b/Hcs.Client/Microsoft/Xades/DocumentationReferenceCollection.cs new file mode 100644 index 0000000..30133a8 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DocumentationReferenceCollection.cs @@ -0,0 +1,62 @@ +// DocumentationReferenceCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class DocumentationReferenceCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new DocumentationReference this[int index] + { + get + { + return (DocumentationReference)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public DocumentationReference Add(DocumentationReference objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public DocumentationReference Add() + { + return this.Add(new DocumentationReference()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/DocumentationReferences.cs b/Hcs.Client/Microsoft/Xades/DocumentationReferences.cs new file mode 100644 index 0000000..3c81c29 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/DocumentationReferences.cs @@ -0,0 +1,146 @@ +// DocumentationReferences.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of DocumentationReferences + /// + public class DocumentationReferences + { + #region Private variables + private DocumentationReferenceCollection documentationReferenceCollection; + #endregion + + #region Public properties + /// + /// Collection of documentation references + /// + public DocumentationReferenceCollection DocumentationReferenceCollection + { + get + { + return this.documentationReferenceCollection; + } + set + { + this.documentationReferenceCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public DocumentationReferences() + { + this.documentationReferenceCollection = new DocumentationReferenceCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.documentationReferenceCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + DocumentationReference newDocumentationReference; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.documentationReferenceCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:DocumentationReference", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newDocumentationReference = new DocumentationReference(); + newDocumentationReference.LoadXml(iterationXmlElement); + this.documentationReferenceCollection.Add(newDocumentationReference); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "DocumentationReferences", XadesSignedXml.XadesNamespaceUri); + + if (this.documentationReferenceCollection.Count > 0) + { + foreach (DocumentationReference documentationReference in this.documentationReferenceCollection) + { + if (documentationReference.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(documentationReference.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/EncapsulatedPKIData.cs b/Hcs.Client/Microsoft/Xades/EncapsulatedPKIData.cs new file mode 100644 index 0000000..aca917b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/EncapsulatedPKIData.cs @@ -0,0 +1,171 @@ +// EncapsulatedPKIData.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// EncapsulatedPKIData is used to incorporate a piece of PKI data + /// into an XML structure whereas the PKI data is encoded using an ASN.1 + /// encoding mechanism. Examples of such PKI data that are widely used at + /// the time include X509 certificates and revocation lists, OCSP responses, + /// attribute certificates and time-stamps. + /// + public class EncapsulatedPKIData + { + #region Private variables + private string tagName; + private string id; + private byte[] pkiData; + #endregion + + #region Public properties + /// + /// The name of the element when serializing + /// + public string TagName + { + get + { + return this.tagName; + } + set + { + this.tagName = value; + } + } + + /// + /// The optional ID attribute can be used to make a reference to an element + /// of this data type. + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// Base64 encoded content of this data type + /// + public byte[] PkiData + { + get + { + return this.pkiData; + } + set + { + this.pkiData = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public EncapsulatedPKIData() + { + } + + /// + /// Constructor with TagName + /// + /// Name of the tag when serializing with GetXml + public EncapsulatedPKIData(string tagName) + { + this.tagName = tagName; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + + if (this.pkiData != null && this.pkiData.Length > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + this.pkiData = Convert.FromBase64String(xmlElement.InnerText); + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", this.tagName, XadesSignedXml.XadesNamespaceUri); + + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + + if (this.pkiData != null && this.pkiData.Length > 0) + { + retVal.InnerText = Convert.ToBase64String(this.pkiData); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/EncapsulatedX509Certificate.cs b/Hcs.Client/Microsoft/Xades/EncapsulatedX509Certificate.cs new file mode 100644 index 0000000..8bc6b11 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/EncapsulatedX509Certificate.cs @@ -0,0 +1,32 @@ +// EncapsulatedX509Certificate.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +namespace Microsoft.Xades +{ + /// + /// The EncapsulatedX509Certificate element is able to contain the + /// base64 encoding of a DER-encoded X.509 certificate + /// + public class EncapsulatedX509Certificate : EncapsulatedPKIData + { + #region Constructors + /// + /// Default constructor + /// + public EncapsulatedX509Certificate() + { + this.TagName = "EncapsulatedX509Certificate"; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/EncapsulatedX509CertificateCollection.cs b/Hcs.Client/Microsoft/Xades/EncapsulatedX509CertificateCollection.cs new file mode 100644 index 0000000..bcca90d --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/EncapsulatedX509CertificateCollection.cs @@ -0,0 +1,62 @@ +// EncapsulatedX509CertificateCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class EncapsulatedX509CertificateCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new EncapsulatedX509Certificate this[int index] + { + get + { + return (EncapsulatedX509Certificate)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public EncapsulatedX509Certificate Add(EncapsulatedX509Certificate objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public EncapsulatedX509Certificate Add() + { + return this.Add(new EncapsulatedX509Certificate()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/HashDataInfo.cs b/Hcs.Client/Microsoft/Xades/HashDataInfo.cs new file mode 100644 index 0000000..f13db2a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/HashDataInfo.cs @@ -0,0 +1,156 @@ +// HashDataInfo.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The HashDataInfo class contains a uri attribute referencing a data object + /// and a ds:Transforms element indicating the transformations to make to this + /// data object. + /// The sequence of HashDataInfo elements will be used to produce the input of + /// the hash computation process whose result will be included in the + /// timestamp request to be sent to the TSA. + /// + public class HashDataInfo + { + #region Private variables + private string uriAttribute; + private Transforms transforms; + #endregion + + #region Public properties + /// + /// Uri referencing a data object + /// + public string UriAttribute + { + get + { + return this.uriAttribute; + } + set + { + this.uriAttribute = value; + } + } + + /// + /// Transformations to make to this data object + /// + public Transforms Transforms + { + get + { + return this.transforms; + } + set + { + this.transforms = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public HashDataInfo() + { + this.transforms = new Transforms(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.uriAttribute)) + { + retVal = true; + } + + if (this.transforms != null && this.transforms.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("uri")) + { + this.uriAttribute = xmlElement.GetAttribute("uri"); + } + else + { + this.uriAttribute = ""; + throw new CryptographicException("uri attribute missing"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:Transforms", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.transforms = new Transforms(); + this.transforms.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "HashDataInfo", XadesSignedXml.XadesNamespaceUri); + + retVal.SetAttribute("uri", this.uriAttribute); + + if (this.transforms != null && this.transforms.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.transforms.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/HashDataInfoCollection.cs b/Hcs.Client/Microsoft/Xades/HashDataInfoCollection.cs new file mode 100644 index 0000000..9e79bbb --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/HashDataInfoCollection.cs @@ -0,0 +1,62 @@ +// HashDataInfoCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class HashDataInfoCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new HashDataInfo this[int index] + { + get + { + return (HashDataInfo)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public HashDataInfo Add(HashDataInfo objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public HashDataInfo Add() + { + return this.Add(new HashDataInfo()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/Identifier.cs b/Hcs.Client/Microsoft/Xades/Identifier.cs new file mode 100644 index 0000000..17895bc --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/Identifier.cs @@ -0,0 +1,162 @@ +// Identifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// Possible values for Qualifier + /// + public enum KnownQualifier + { + /// + /// Value has not been set + /// + Uninitalized, + /// + /// OID encoded as Uniform Resource Identifier (URI) + /// + OIDAsURI, + /// + /// OID encoded as Uniform Resource Name (URN) + /// + OIDAsURN + } + + /// + /// The Identifier element contains a permanent identifier. Once assigned the + /// identifier can never be re-assigned again. It supports both the mechanism + /// that is used to identify objects in ASN.1 and the mechanism that is + /// usually used to identify objects in an XML environment. + /// + public class Identifier + { + #region Private variables + private KnownQualifier qualifier; + private string identifierUri; + #endregion + + #region Public properties + /// + /// The optional Qualifier attribute can be used to provide a hint about the + /// applied encoding (values OIDAsURN or OIDAsURI) + /// + public KnownQualifier Qualifier + { + get + { + return this.qualifier; + } + set + { + this.qualifier = value; + } + } + + /// + /// Identification of the XML environment object + /// + public string IdentifierUri + { + get + { + return this.identifierUri; + } + set + { + this.identifierUri = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public Identifier() + { + this.qualifier = KnownQualifier.Uninitalized; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.qualifier != KnownQualifier.Uninitalized) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.identifierUri)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + if (xmlElement.HasAttribute("Qualifier")) + { + this.qualifier = (KnownQualifier)KnownQualifier.Parse(typeof(KnownQualifier), xmlElement.GetAttribute("Qualifier"), true); + } + else + { + this.qualifier = KnownQualifier.Uninitalized; + } + + this.identifierUri = xmlElement.InnerText; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "Identifier", XadesSignedXml.XadesNamespaceUri); + + if (this.qualifier != KnownQualifier.Uninitalized) + { + retVal.SetAttribute("Qualifier", this.qualifier.ToString()); + } + + retVal.InnerText = this.identifierUri; + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/IndividualDataObjectsTimeStampCollection.cs b/Hcs.Client/Microsoft/Xades/IndividualDataObjectsTimeStampCollection.cs new file mode 100644 index 0000000..9971d51 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/IndividualDataObjectsTimeStampCollection.cs @@ -0,0 +1,63 @@ +// individualDataObjectsTimeStampCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class IndividualDataObjectsTimeStampCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new TimeStamp this[int index] + { + get + { + return (TimeStamp)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public TimeStamp Add(TimeStamp objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// Name of the tag when serializing into XML using GetXml() + /// The newly created object that has been added to collection + public TimeStamp Add(string tagName) + { + return this.Add(new TimeStamp(tagName)); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/IssuerSerial.cs b/Hcs.Client/Microsoft/Xades/IssuerSerial.cs new file mode 100644 index 0000000..f82013a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/IssuerSerial.cs @@ -0,0 +1,152 @@ +// IssuerSerial.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The element IssuerSerial contains the identifier of one of the + /// certificates referenced in the sequence + /// + public class IssuerSerial + { + #region Private variables + private string x509IssuerName; + private string x509SerialNumber; + #endregion + + #region Public properties + /// + /// Name of the X509 certificate issuer + /// + public string X509IssuerName + { + get + { + return this.x509IssuerName; + } + set + { + this.x509IssuerName = value; + } + } + + /// + /// Serial number of the X509 certificate + /// + public string X509SerialNumber + { + get + { + return this.x509SerialNumber; + } + set + { + this.x509SerialNumber = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public IssuerSerial() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.x509IssuerName)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.x509SerialNumber)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + + xmlNodeList = xmlElement.SelectNodes("ds:X509IssuerName", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("X509IssuerName missing"); + } + this.x509IssuerName = xmlNodeList.Item(0).InnerText; + + xmlNodeList = xmlElement.SelectNodes("ds:X509SerialNumber", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("X509SerialNumber missing"); + } + this.x509SerialNumber = xmlNodeList.Item(0).InnerText; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "IssuerSerial", XadesSignedXml.XadesNamespaceUri); + + bufferXmlElement = creationXmlDocument.CreateElement("ds", "X509IssuerName", SignedXml.XmlDsigNamespaceUrl); + bufferXmlElement.InnerText = this.x509IssuerName; + retVal.AppendChild(bufferXmlElement); + + bufferXmlElement = creationXmlDocument.CreateElement("ds", "X509SerialNumber", SignedXml.XmlDsigNamespaceUrl); + bufferXmlElement.InnerText = this.x509SerialNumber; + retVal.AppendChild(bufferXmlElement); + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/NoticeNumberCollection.cs b/Hcs.Client/Microsoft/Xades/NoticeNumberCollection.cs new file mode 100644 index 0000000..990cfe8 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/NoticeNumberCollection.cs @@ -0,0 +1,62 @@ +// NoticeNumberCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class NoticeNumberCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new int this[int index] + { + get + { + return (int)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public int Add(int objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public int Add() + { + return this.Add(new int()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/NoticeNumbers.cs b/Hcs.Client/Microsoft/Xades/NoticeNumbers.cs new file mode 100644 index 0000000..f7d181b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/NoticeNumbers.cs @@ -0,0 +1,147 @@ +// NoticeNumbers.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains identifying numbers for a group of textual statements + /// so that the XAdES based application can get the explicit notices from a + /// notices file + /// + public class NoticeNumbers + { + #region Private variables + private NoticeNumberCollection noticeNumberCollection; + #endregion + + #region Public properties + /// + /// Collection of notice numbers + /// + public NoticeNumberCollection NoticeNumberCollection + { + get + { + return this.noticeNumberCollection; + } + set + { + this.noticeNumberCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public NoticeNumbers() + { + this.noticeNumberCollection = new NoticeNumberCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.noticeNumberCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + int newNoticeNumber; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.noticeNumberCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:int", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newNoticeNumber = int.Parse(iterationXmlElement.InnerText); + this.noticeNumberCollection.Add(newNoticeNumber); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement bufferXmlElement; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "NoticeNumbers", XadesSignedXml.XadesNamespaceUri); + + if (this.noticeNumberCollection.Count > 0) + { + foreach (int noticeNumber in this.noticeNumberCollection) + { + bufferXmlElement = creationXmlDocument.CreateElement("int", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = noticeNumber.ToString(); + retVal.AppendChild(bufferXmlElement); + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/NoticeRef.cs b/Hcs.Client/Microsoft/Xades/NoticeRef.cs new file mode 100644 index 0000000..db56c2a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/NoticeRef.cs @@ -0,0 +1,161 @@ +// NoticeRef.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The NoticeRef element names an organization and identifies by + /// numbers a group of textual statements prepared by that organization, + /// so that the application could get the explicit notices from a notices file + /// + public class NoticeRef + { + #region Private variables + private string organization; + private NoticeNumbers noticeNumbers; + #endregion + + #region Public properties + /// + /// Organization issuing the signature policy + /// + public string Organization + { + get + { + return this.organization; + } + set + { + this.organization = value; + } + } + + /// + /// Numerical identification of textual statements prepared by the organization, + /// so that the application can get the explicit notices from a notices file + /// + public NoticeNumbers NoticeNumbers + { + get + { + return this.noticeNumbers; + } + set + { + this.noticeNumbers = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public NoticeRef() + { + this.noticeNumbers = new NoticeNumbers(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.organization)) + { + retVal = true; + } + + if (this.noticeNumbers != null && this.noticeNumbers.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:Organization", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("Organization missing"); + } + this.organization = xmlNodeList.Item(0).InnerText; + + xmlNodeList = xmlElement.SelectNodes("xsd:NoticeNumbers", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("NoticeNumbers missing"); + } + this.noticeNumbers = new NoticeNumbers(); + this.noticeNumbers.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement bufferXmlElement; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "NoticeRef", XadesSignedXml.XadesNamespaceUri); + + if (this.organization == null) + { + throw new CryptographicException("Organization can't be null"); + } + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Organization", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.organization; + retVal.AppendChild(bufferXmlElement); + + if (this.noticeNumbers == null) + { + throw new CryptographicException("NoticeNumbers can't be null"); + } + retVal.AppendChild(creationXmlDocument.ImportNode(this.noticeNumbers.GetXml(), true)); + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPIdentifier.cs b/Hcs.Client/Microsoft/Xades/OCSPIdentifier.cs new file mode 100644 index 0000000..8d96262 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPIdentifier.cs @@ -0,0 +1,186 @@ +// OCSPIdentifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class includes the name of the server that has produced the + /// referenced response (ResponderID element) and the time indication in + /// the "ProducedAt" field of the referenced response (ProducedAt element). + /// The optional URI attribute could serve to indicate where the OCSP + /// response identified is archived. + /// + public class OCSPIdentifier + { + #region Private variables + private string uriAttribute; + private string responderID; + private DateTime producedAt; + #endregion + + #region Public properties + /// + /// The optional URI attribute could serve to indicate where the OCSP + /// response is archived + /// + public string UriAttribute + { + get + { + return this.uriAttribute; + } + set + { + this.uriAttribute = value; + } + } + + /// + /// The ID of the server that has produced the referenced response + /// + public string ResponderID + { + get + { + return this.responderID; + } + set + { + this.responderID = value; + } + } + + /// + /// Time indication in the referenced response + /// + public DateTime ProducedAt + { + get + { + return this.producedAt; + } + set + { + this.producedAt = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OCSPIdentifier() + { + this.producedAt = DateTime.MinValue; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.uriAttribute)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.responderID)) + { + retVal = true; + } + + if (this.producedAt != DateTime.MinValue) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("URI")) + { + this.uriAttribute = xmlElement.GetAttribute("URI"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:ResponderID", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.responderID = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:ProducedAt", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.producedAt = XmlConvert.ToDateTime(xmlNodeList.Item(0).InnerText, XmlDateTimeSerializationMode.Local); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OCSPIdentifier", XadesSignedXml.XadesNamespaceUri); + + retVal.SetAttribute("URI", this.uriAttribute); + + if (!String.IsNullOrEmpty(this.responderID)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "ResponderID", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.responderID; + retVal.AppendChild(bufferXmlElement); + } + + if (this.producedAt != DateTime.MinValue) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "ProducedAt", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = Convert.ToString(this.producedAt.ToString("s")); + retVal.AppendChild(bufferXmlElement); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPRef.cs b/Hcs.Client/Microsoft/Xades/OCSPRef.cs new file mode 100644 index 0000000..30f1e3d --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPRef.cs @@ -0,0 +1,164 @@ +// OCSPRef.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class identifies one OCSP response + /// + public class OCSPRef + { + #region Private variables + private OCSPIdentifier ocspIdentifier; + private DigestAlgAndValueType digestAlgAndValue; + #endregion + + #region Public properties + /// + /// Identification of one OCSP response + /// + public OCSPIdentifier OCSPIdentifier + { + get + { + return this.ocspIdentifier; + } + set + { + this.ocspIdentifier = value; + } + } + + /// + /// The digest computed on the DER encoded OCSP response, since it may be + /// needed to differentiate between two OCSP responses by the same server + /// with their "ProducedAt" fields within the same second + /// + public DigestAlgAndValueType CertDigest + { + get + { + return this.digestAlgAndValue; + } + set + { + this.digestAlgAndValue = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OCSPRef() + { + this.ocspIdentifier = new OCSPIdentifier(); + this.digestAlgAndValue = new DigestAlgAndValueType("DigestAlgAndValue"); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.ocspIdentifier != null && this.ocspIdentifier.HasChanged()) + { + retVal = true; + } + + if (this.digestAlgAndValue != null && this.digestAlgAndValue.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:OCSPIdentifier", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("OCSPIdentifier missing"); + } + this.ocspIdentifier = new OCSPIdentifier(); + this.ocspIdentifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:DigestAlgAndValue", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + this.digestAlgAndValue = null; + } + else + { + this.digestAlgAndValue = new DigestAlgAndValueType("DigestAlgAndValue"); + this.digestAlgAndValue.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OCSPRef", XadesSignedXml.XadesNamespaceUri); + + if (this.ocspIdentifier != null && this.ocspIdentifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.ocspIdentifier.GetXml(), true)); + } + else + { + throw new CryptographicException("OCSPIdentifier element missing in OCSPRef"); + } + + if (this.digestAlgAndValue != null && this.digestAlgAndValue.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.digestAlgAndValue.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPRefCollection.cs b/Hcs.Client/Microsoft/Xades/OCSPRefCollection.cs new file mode 100644 index 0000000..fe48865 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPRefCollection.cs @@ -0,0 +1,62 @@ +// OCSPRefCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class OCSPRefCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new OCSPRef this[int index] + { + get + { + return (OCSPRef)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public OCSPRef Add(OCSPRef objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public OCSPRef Add() + { + return this.Add(new OCSPRef()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPRefs.cs b/Hcs.Client/Microsoft/Xades/OCSPRefs.cs new file mode 100644 index 0000000..4961159 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPRefs.cs @@ -0,0 +1,146 @@ +// OCSPRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of OCSPRefs + /// + public class OCSPRefs + { + #region Private variables + private OCSPRefCollection ocspRefCollection; + #endregion + + #region Public properties + /// + /// Collection of OCSP refs + /// + public OCSPRefCollection OCSPRefCollection + { + get + { + return this.ocspRefCollection; + } + set + { + this.ocspRefCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OCSPRefs() + { + this.ocspRefCollection = new OCSPRefCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.ocspRefCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + OCSPRef newOCSPRef; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.ocspRefCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:OCSPRef", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newOCSPRef = new OCSPRef(); + newOCSPRef.LoadXml(iterationXmlElement); + this.ocspRefCollection.Add(newOCSPRef); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OCSPRefs", XadesSignedXml.XadesNamespaceUri); + + if (this.ocspRefCollection.Count > 0) + { + foreach (OCSPRef ocspRef in this.ocspRefCollection) + { + if (ocspRef.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(ocspRef.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPValue.cs b/Hcs.Client/Microsoft/Xades/OCSPValue.cs new file mode 100644 index 0000000..3df0d98 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPValue.cs @@ -0,0 +1,33 @@ +// OCSPValue.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +namespace Microsoft.Xades +{ + /// + /// This class consist of a sequence of at least one OCSP Response. The + /// EncapsulatedOCSPValue element contains the base64 encoding of a + /// DER-encoded OCSP Response + /// + public class OCSPValue : EncapsulatedPKIData + { + #region Constructors + /// + /// Default constructor + /// + public OCSPValue() + { + this.TagName = "EncapsulatedOCSPValue"; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPValueCollection.cs b/Hcs.Client/Microsoft/Xades/OCSPValueCollection.cs new file mode 100644 index 0000000..10271dc --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPValueCollection.cs @@ -0,0 +1,62 @@ +// OCSPValueCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class OCSPValueCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new OCSPValue this[int index] + { + get + { + return (OCSPValue)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public OCSPValue Add(OCSPValue objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public OCSPValue Add() + { + return this.Add(new OCSPValue()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OCSPValues.cs b/Hcs.Client/Microsoft/Xades/OCSPValues.cs new file mode 100644 index 0000000..e95aac8 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OCSPValues.cs @@ -0,0 +1,146 @@ +// OCSPValues.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of OCSPValues + /// + public class OCSPValues + { + #region Private variables + private OCSPValueCollection ocspValueCollection; + #endregion + + #region Public properties + /// + /// Collection of OCSP values + /// + public OCSPValueCollection OCSPValueCollection + { + get + { + return this.ocspValueCollection; + } + set + { + this.ocspValueCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OCSPValues() + { + this.ocspValueCollection = new OCSPValueCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.ocspValueCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + OCSPValue newOCSPValue; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.ocspValueCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:OCSPValue", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newOCSPValue = new OCSPValue(); + newOCSPValue.LoadXml(iterationXmlElement); + this.ocspValueCollection.Add(newOCSPValue); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OCSPValues", XadesSignedXml.XadesNamespaceUri); + + if (this.ocspValueCollection.Count > 0) + { + foreach (OCSPValue ocspValue in this.ocspValueCollection) + { + if (ocspValue.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(ocspValue.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/ObjectIdentifier.cs b/Hcs.Client/Microsoft/Xades/ObjectIdentifier.cs new file mode 100644 index 0000000..671d026 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ObjectIdentifier.cs @@ -0,0 +1,221 @@ +// ObjectIdentifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// ObjectIdentifier allows the specification of an unique and permanent + /// object of an object and some additional information about the nature of + /// the data object + /// + public class ObjectIdentifier + { + #region Private variables + private string tagName; + private Identifier identifier; + private string description; + private DocumentationReferences documentationReferences; + #endregion + + #region Public properties + /// + /// The name of the element when serializing + /// + public string TagName + { + get + { + return this.tagName; + } + set + { + this.tagName = value; + } + } + + /// + /// Specification of an unique and permanent identifier + /// + public Identifier Identifier + { + get + { + return this.identifier; + } + set + { + this.identifier = value; + } + } + + /// + /// Textual description of the nature of the data object + /// + public string Description + { + get + { + return this.description; + } + set + { + this.description = value; + } + } + + /// + /// References to documents where additional information about the + /// nature of the data object can be found + /// + public DocumentationReferences DocumentationReferences + { + get + { + return this.documentationReferences; + } + set + { + this.documentationReferences = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public ObjectIdentifier() + { + this.identifier = new Identifier(); + this.documentationReferences = new DocumentationReferences(); + } + + /// + /// Constructor with TagName + /// + /// Name of the tag when serializing with GetXml + public ObjectIdentifier(string tagName) : this() + { + this.tagName = tagName; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.identifier != null && this.identifier.HasChanged()) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.description)) + { + retVal = true; + } + + if (this.documentationReferences != null && this.documentationReferences.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:Identifier", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("Identifier missing"); + } + this.identifier = new Identifier(); + this.identifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:Description", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.description = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:DocumentationReferences", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.documentationReferences = new DocumentationReferences(); + this.documentationReferences.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", this.tagName, XadesSignedXml.XadesNamespaceUri); + + if (this.identifier != null && this.identifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.identifier.GetXml(), true)); + } + else + { + throw new CryptographicException("Identifier element missing in OjectIdentifier"); + } + + if (!String.IsNullOrEmpty(this.description)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "Description", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.description; + retVal.AppendChild(bufferXmlElement); + } + + if (this.documentationReferences != null && this.documentationReferences.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.documentationReferences.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/ObjectReference.cs b/Hcs.Client/Microsoft/Xades/ObjectReference.cs new file mode 100644 index 0000000..79cf91a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ObjectReference.cs @@ -0,0 +1,107 @@ +// ObjectReference.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class refers to one ds:Reference element of the ds:SignedInfo + /// corresponding with one data object qualified by this property. + /// If some but not all the signed data objects share the same commitment, + /// one ObjectReference element must appear for each one of them. + /// However, if all the signed data objects share the same commitment, + /// the AllSignedDataObjects empty element must be present. + /// + public class ObjectReference + { + #region Private variables + private string objectReferenceUri; + #endregion + + #region Public properties + /// + /// Uri of the object reference + /// + public string ObjectReferenceUri + { + get + { + return this.objectReferenceUri; + } + set + { + this.objectReferenceUri = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public ObjectReference() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.objectReferenceUri != null && this.objectReferenceUri != "") + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + this.objectReferenceUri = xmlElement.InnerText; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "ObjectReference", XadesSignedXml.XadesNamespaceUri); + retVal.InnerText = this.objectReferenceUri; + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/ObjectReferenceCollection.cs b/Hcs.Client/Microsoft/Xades/ObjectReferenceCollection.cs new file mode 100644 index 0000000..f15b900 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/ObjectReferenceCollection.cs @@ -0,0 +1,62 @@ +// ObjectReferenceCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class ObjectReferenceCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new ObjectReference this[int index] + { + get + { + return (ObjectReference)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public ObjectReference Add(ObjectReference objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public ObjectReference Add() + { + return this.Add(new ObjectReference()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherCertificate.cs b/Hcs.Client/Microsoft/Xades/OtherCertificate.cs new file mode 100644 index 0000000..83cb2a4 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherCertificate.cs @@ -0,0 +1,102 @@ +// OtherCertificate.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The OtherCertificate element is a placeholder for potential future + /// new formats of certificates + /// + public class OtherCertificate : ArrayList + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents any certificate + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OtherCertificate() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OtherCertificate", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherCertificateCollection.cs b/Hcs.Client/Microsoft/Xades/OtherCertificateCollection.cs new file mode 100644 index 0000000..066c81d --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherCertificateCollection.cs @@ -0,0 +1,62 @@ +// OtherCertificateCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class OtherCertificateCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new OtherCertificate this[int index] + { + get + { + return (OtherCertificate)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public OtherCertificate Add(OtherCertificate objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public OtherCertificate Add() + { + return this.Add(new OtherCertificate()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherRef.cs b/Hcs.Client/Microsoft/Xades/OtherRef.cs new file mode 100644 index 0000000..d8dc0c0 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherRef.cs @@ -0,0 +1,100 @@ +// OtherRef.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// Alternative forms of validation data can be included in this class + /// + public class OtherRef + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents any other type of ref + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OtherRef() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OtherRef", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherRefCollection.cs b/Hcs.Client/Microsoft/Xades/OtherRefCollection.cs new file mode 100644 index 0000000..8875344 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherRefCollection.cs @@ -0,0 +1,62 @@ +// OtherRefCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class OtherRefCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new OtherRef this[int index] + { + get + { + return (OtherRef)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public OtherRef Add(OtherRef objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public OtherRef Add() + { + return this.Add(new OtherRef()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherRefs.cs b/Hcs.Client/Microsoft/Xades/OtherRefs.cs new file mode 100644 index 0000000..daf7e86 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherRefs.cs @@ -0,0 +1,146 @@ +// OtherRefs.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of OtherRefs + /// + public class OtherRefs + { + #region Private variables + private OtherRefCollection otherRefCollection; + #endregion + + #region Public properties + /// + /// Collection of other refs + /// + public OtherRefCollection OtherRefCollection + { + get + { + return this.otherRefCollection; + } + set + { + this.otherRefCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OtherRefs() + { + this.otherRefCollection = new OtherRefCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.otherRefCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + OtherRef newOtherRef; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.otherRefCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:OtherRef", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newOtherRef = new OtherRef(); + newOtherRef.LoadXml(iterationXmlElement); + this.otherRefCollection.Add(newOtherRef); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OtherRefs", XadesSignedXml.XadesNamespaceUri); + + if (this.otherRefCollection.Count > 0) + { + foreach (OtherRef otherRef in this.otherRefCollection) + { + if (otherRef.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(otherRef.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherValue.cs b/Hcs.Client/Microsoft/Xades/OtherValue.cs new file mode 100644 index 0000000..04a0ceb --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherValue.cs @@ -0,0 +1,100 @@ +// OtherValue.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class provides a placeholder for other revocation information + /// + public class OtherValue + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents any other value + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OtherValue() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OtherValue", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherValueCollection.cs b/Hcs.Client/Microsoft/Xades/OtherValueCollection.cs new file mode 100644 index 0000000..9b66b75 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherValueCollection.cs @@ -0,0 +1,62 @@ +// OtherValueCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class OtherValueCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new OtherValue this[int index] + { + get + { + return (OtherValue)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public OtherValue Add(OtherValue objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public OtherValue Add() + { + return this.Add(new OtherValue()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/OtherValues.cs b/Hcs.Client/Microsoft/Xades/OtherValues.cs new file mode 100644 index 0000000..68ba59f --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/OtherValues.cs @@ -0,0 +1,146 @@ +// OtherValues.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of OtherValues + /// + public class OtherValues + { + #region Private variables + private OtherValueCollection otherValueCollection; + #endregion + + #region Public properties + /// + /// Collection of other values + /// + public OtherValueCollection OtherValueCollection + { + get + { + return this.otherValueCollection; + } + set + { + this.otherValueCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public OtherValues() + { + this.otherValueCollection = new OtherValueCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.otherValueCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + OtherValue newOtherValue; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.otherValueCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:OtherValue", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newOtherValue = new OtherValue(); + newOtherValue.LoadXml(iterationXmlElement); + this.otherValueCollection.Add(newOtherValue); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "OtherValues", XadesSignedXml.XadesNamespaceUri); + + if (this.otherValueCollection.Count > 0) + { + foreach (OtherValue otherValue in this.otherValueCollection) + { + if (otherValue.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(otherValue.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/QualifyingProperties.cs b/Hcs.Client/Microsoft/Xades/QualifyingProperties.cs new file mode 100644 index 0000000..a4d1a55 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/QualifyingProperties.cs @@ -0,0 +1,237 @@ +// QualifiyngProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The QualifyingProperties element acts as a container element for + /// all the qualifying information that should be added to an XML + /// signature + /// + public class QualifyingProperties + { + #region Private variables + private string id; + private string target; + private SignedProperties signedProperties; + private UnsignedProperties unsignedProperties; + #endregion + + #region Public properties + /// + /// The optional Id attribute can be used to make a reference to the + /// QualifyingProperties container + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// The mandatory Target attribute refers to the XML signature with which the + /// qualifying properties are associated + /// + public string Target + { + get + { + return this.target; + } + set + { + this.target = value; + } + } + + /// + /// The SignedProperties element contains a number of properties that are + /// collectively signed by the XMLDSIG signature + /// + public SignedProperties SignedProperties + { + get + { + return this.signedProperties; + } + set + { + this.signedProperties = value; + } + } + + /// + /// The UnsignedProperties element contains a number of properties that are + /// not signed by the XMLDSIG signature + /// + public UnsignedProperties UnsignedProperties + { + get + { + return this.unsignedProperties; + } + set + { + this.unsignedProperties = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public QualifyingProperties() + { + this.signedProperties = new SignedProperties(); + this.unsignedProperties = new UnsignedProperties(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.target)) + { + retVal = true; + } + + if (this.signedProperties != null && this.signedProperties.HasChanged()) + { + retVal = true; + } + + if (this.unsignedProperties != null && this.unsignedProperties.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + /// Element containing parent signature (needed if there are counter signatures) + public void LoadXml(XmlElement xmlElement, XmlElement counterSignedXmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + if (xmlElement.HasAttribute("Target")) + { + this.target = xmlElement.GetAttribute("Target"); + } + else + { + this.target = ""; + throw new CryptographicException("Target attribute missing"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SignedProperties", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SignedProperties missing"); + } + this.signedProperties = new SignedProperties(); + this.signedProperties.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:UnsignedProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.unsignedProperties = new UnsignedProperties(); + this.unsignedProperties.LoadXml((XmlElement)xmlNodeList.Item(0), counterSignedXmlElement); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "QualifyingProperties", XadesSignedXml.XadesNamespaceUri); + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + + if (!String.IsNullOrEmpty(this.target)) + { + retVal.SetAttribute("Target", this.target); + } + else + { + throw new CryptographicException("QualifyingProperties Target attribute has no value"); + } + + var xmlAttribute = retVal.OwnerDocument.CreateAttribute("xmlns", "xades141", "http://www.w3.org/2000/xmlns/"); + xmlAttribute.Value = "http://uri.etsi.org/01903/v1.4.1#"; + retVal.Attributes.Append(xmlAttribute); + + if (this.signedProperties != null && this.signedProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signedProperties.GetXml(), true)); + } + if (this.unsignedProperties != null && this.unsignedProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.unsignedProperties.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/RevocationValues.cs b/Hcs.Client/Microsoft/Xades/RevocationValues.cs new file mode 100644 index 0000000..6d23289 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/RevocationValues.cs @@ -0,0 +1,217 @@ +// RevocationValues.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The RevocationValues element is used to hold the values of the + /// revocation information which are to be shipped with the XML signature + /// in case of an XML Advanced Electronic Signature with Extended + /// Validation Data (XAdES-X-Long). This is a unsigned property that + /// qualifies the signature. An XML electronic signature aligned with the + /// present document MAY contain at most one RevocationValues element. + /// + public class RevocationValues + { + #region Private variables + private string id; + private CRLValues crlValues; + private OCSPValues ocspValues; + private OtherValues otherValues; + #endregion + + #region Public properties + /// + /// Optional Id for the XML element + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// Certificate Revocation Lists + /// + public CRLValues CRLValues + { + get + { + return this.crlValues; + } + set + { + this.crlValues = value; + } + } + + /// + /// Responses from an online certificate status server + /// + public OCSPValues OCSPValues + { + get + { + return this.ocspValues; + } + set + { + this.ocspValues = value; + } + } + + /// + /// Placeholder for other revocation information is provided for future + /// use + /// + public OtherValues OtherValues + { + get + { + return this.otherValues; + } + set + { + this.otherValues = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public RevocationValues() + { + this.crlValues = new CRLValues(); + this.ocspValues = new OCSPValues(); + this.otherValues = new OtherValues(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + if (this.crlValues != null && this.crlValues.HasChanged()) + { + retVal = true; + } + if (this.ocspValues != null && this.ocspValues.HasChanged()) + { + retVal = true; + } + if (this.otherValues != null && this.otherValues.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:CRLValues", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.crlValues = new CRLValues(); + this.crlValues.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + xmlNodeList = xmlElement.SelectNodes("xsd:OCSPValues", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.ocspValues = new OCSPValues(); + this.ocspValues.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + xmlNodeList = xmlElement.SelectNodes("xsd:OtherValues", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.otherValues = new OtherValues(); + this.otherValues.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "RevocationValues", XadesSignedXml.XadesNamespaceUri); + if (this.id != null && this.id != "") + { + retVal.SetAttribute("Id", this.id); + } + if (this.crlValues != null && this.crlValues.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.crlValues.GetXml(), true)); + } + if (this.ocspValues != null && this.ocspValues.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.ocspValues.GetXml(), true)); + } + if (this.otherValues != null && this.otherValues.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.otherValues.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SPUri.cs b/Hcs.Client/Microsoft/Xades/SPUri.cs new file mode 100644 index 0000000..e2b2821 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SPUri.cs @@ -0,0 +1,131 @@ +// SPUri.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// SPUri represents the URL where the copy of the Signature Policy may be + /// obtained. The class derives from SigPolicyQualifier. + /// + public class SPUri : SigPolicyQualifier + { + #region Private variables + private string uri; + #endregion + + #region Public properties + /// + /// Uri for the sig policy qualifier + /// + public string Uri + { + get + { + return this.uri; + } + set + { + this.uri = value; + } + } + + /// + /// Inherited generic element, not used in the SPUri class + /// + public override XmlElement AnyXmlElement + { + get + { + return null; + } + set + { + throw new CryptographicException("Setting AnyXmlElement on a SPUri is not supported"); + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SPUri() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public override bool HasChanged() + { + bool retVal = false; + + if (this.uri != null && this.uri != "") + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public override void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SPURI", xmlNamespaceManager); + + this.uri = ((XmlElement)xmlNodeList.Item(0)).InnerText; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public override XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement bufferXmlElement; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SigPolicyQualifier", XadesSignedXml.XadesNamespaceUri); + + bufferXmlElement = creationXmlDocument.CreateElement("xades", "SPURI", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.uri; + retVal.AppendChild(creationXmlDocument.ImportNode(bufferXmlElement, true)); + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SPUserNotice.cs b/Hcs.Client/Microsoft/Xades/SPUserNotice.cs new file mode 100644 index 0000000..b245909 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SPUserNotice.cs @@ -0,0 +1,175 @@ +// SPUserNotice.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// SPUserNotice element is intended for being displayed whenever the + /// signature is validated. The class derives from SigPolicyQualifier. + /// + public class SPUserNotice : SigPolicyQualifier + { + #region Private variables + private NoticeRef noticeRef; + private string explicitText; + #endregion + + #region Public properties + /// + /// The NoticeRef element names an organization and identifies by + /// numbers a group of textual statements prepared by that organization, + /// so that the application could get the explicit notices from a notices file + /// + public NoticeRef NoticeRef + { + get + { + return this.noticeRef; + } + set + { + this.noticeRef = value; + } + } + + /// + /// The ExplicitText element contains the text of the notice to be displayed + /// + public string ExplicitText + { + get + { + return this.explicitText; + } + set + { + this.explicitText = value; + } + } + + /// + /// Inherited generic element, not used in the SPUserNotice class + /// + public override XmlElement AnyXmlElement + { + get + { + return null; + } + set + { + throw new CryptographicException("Setting AnyXmlElement on a SPUserNotice is not supported"); + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SPUserNotice() + { + noticeRef = new NoticeRef(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public override bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.explicitText)) + { + retVal = true; + } + + if (this.noticeRef != null && this.noticeRef.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public override void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SPUserNotice/xsd:NoticeRef", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.noticeRef = new NoticeRef(); + this.noticeRef.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:SPUserNotice/xsd:ExplicitText", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.explicitText = xmlNodeList.Item(0).InnerText; + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public override XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement bufferXmlElement; + XmlElement bufferXmlElement2; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SigPolicyQualifier", XadesSignedXml.XadesNamespaceUri); + + bufferXmlElement = creationXmlDocument.CreateElement("xades", "SPUserNotice", XadesSignedXml.XadesNamespaceUri); + if (this.noticeRef != null && this.noticeRef.HasChanged()) + { + bufferXmlElement.AppendChild(creationXmlDocument.ImportNode(this.noticeRef.GetXml(), true)); + } + if (!String.IsNullOrEmpty(this.explicitText)) + { + bufferXmlElement2 = creationXmlDocument.CreateElement("xades", "ExplicitText", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement2.InnerText = this.explicitText; + bufferXmlElement.AppendChild(bufferXmlElement2); + } + + retVal.AppendChild(creationXmlDocument.ImportNode(bufferXmlElement, true)); + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SigPolicyQualifier.cs b/Hcs.Client/Microsoft/Xades/SigPolicyQualifier.cs new file mode 100644 index 0000000..8997123 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SigPolicyQualifier.cs @@ -0,0 +1,101 @@ +// SigpolicyQualifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class can contain additional information qualifying the signature + /// policy identifier + /// + public class SigPolicyQualifier + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents a sig policy qualifier + /// + public virtual XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SigPolicyQualifier() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public virtual bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public virtual void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public virtual XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SigPolicyQualifier", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SigPolicyQualifierCollection.cs b/Hcs.Client/Microsoft/Xades/SigPolicyQualifierCollection.cs new file mode 100644 index 0000000..caeedfd --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SigPolicyQualifierCollection.cs @@ -0,0 +1,62 @@ +// SigPolicyQualifierCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class SigPolicyQualifierCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new SigPolicyQualifier this[int index] + { + get + { + return (SigPolicyQualifier)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public SigPolicyQualifier Add(SigPolicyQualifier objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public SigPolicyQualifier Add() + { + return this.Add(new SigPolicyQualifier()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/SigPolicyQualifiers.cs b/Hcs.Client/Microsoft/Xades/SigPolicyQualifiers.cs new file mode 100644 index 0000000..8f00729 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SigPolicyQualifiers.cs @@ -0,0 +1,169 @@ +// SigpolicyQualifiers.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a collection of SigPolicyQualifiers + /// + public class SigPolicyQualifiers + { + #region Private variables + private SigPolicyQualifierCollection sigPolicyQualifierCollection; + #endregion + + #region Public properties + /// + /// A collection of sig policy qualifiers + /// + public SigPolicyQualifierCollection SigPolicyQualifierCollection + { + get + { + return this.sigPolicyQualifierCollection; + } + set + { + this.sigPolicyQualifierCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SigPolicyQualifiers() + { + this.sigPolicyQualifierCollection = new SigPolicyQualifierCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.sigPolicyQualifierCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + SPUri newSPUri; + SPUserNotice newSPUserNotice; + SigPolicyQualifier newSigPolicyQualifier; + IEnumerator enumerator; + XmlElement iterationXmlElement; + XmlElement subElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.sigPolicyQualifierCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:SigPolicyQualifier", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + subElement = (XmlElement)iterationXmlElement.SelectSingleNode("xsd:SPURI", xmlNamespaceManager); + if (subElement != null) + { + newSPUri = new SPUri(); + newSPUri.LoadXml(iterationXmlElement); + this.sigPolicyQualifierCollection.Add(newSPUri); + } + else + { + subElement = (XmlElement)iterationXmlElement.SelectSingleNode("xsd:SPUserNotice", xmlNamespaceManager); + if (subElement != null) + { + newSPUserNotice = new SPUserNotice(); + newSPUserNotice.LoadXml(iterationXmlElement); + this.sigPolicyQualifierCollection.Add(newSPUserNotice); + } + else + { + newSigPolicyQualifier = new SigPolicyQualifier(); + newSigPolicyQualifier.LoadXml(iterationXmlElement); + this.sigPolicyQualifierCollection.Add(newSigPolicyQualifier); + } + } + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SigPolicyQualifiers", XadesSignedXml.XadesNamespaceUri); + + if (this.sigPolicyQualifierCollection.Count > 0) + { + foreach (SigPolicyQualifier sigPolicyQualifier in this.sigPolicyQualifierCollection) + { + if (sigPolicyQualifier.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(sigPolicyQualifier.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignaturePolicyId.cs b/Hcs.Client/Microsoft/Xades/SignaturePolicyId.cs new file mode 100644 index 0000000..59c111a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignaturePolicyId.cs @@ -0,0 +1,244 @@ +// SignaturePolicyId.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The SignaturePolicyId element is an explicit and unambiguous identifier + /// of a Signature Policy together with a hash value of the signature + /// policy, so it can be verified that the policy selected by the signer is + /// the one being used by the verifier. An explicit signature policy has a + /// globally unique reference, which, in this way, is bound to an + /// electronic signature by the signer as part of the signature + /// calculation. + /// + public class SignaturePolicyId + { + #region Private variables + private ObjectIdentifier sigPolicyId; + private Transforms transforms; + private DigestAlgAndValueType sigPolicyHash; + private SigPolicyQualifiers sigPolicyQualifiers; + #endregion + + #region Public properties + /// + /// The SigPolicyId element contains an identifier that uniquely + /// identifies a specific version of the signature policy + /// + public ObjectIdentifier SigPolicyId + { + get + { + return this.sigPolicyId; + } + set + { + this.sigPolicyId = value; + } + } + + /// + /// The optional Transforms element can contain the transformations + /// performed on the signature policy document before computing its + /// hash + /// + public Transforms Transforms + { + get + { + return this.transforms; + } + set + { + this.transforms = value; + } + } + + /// + /// The SigPolicyHash element contains the identifier of the hash + /// algorithm and the hash value of the signature policy + /// + public DigestAlgAndValueType SigPolicyHash + { + get + { + return this.sigPolicyHash; + } + set + { + this.sigPolicyHash = value; + } + } + + /// + /// The SigPolicyQualifier element can contain additional information + /// qualifying the signature policy identifier + /// + public SigPolicyQualifiers SigPolicyQualifiers + { + get + { + return this.sigPolicyQualifiers; + } + set + { + this.sigPolicyQualifiers = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignaturePolicyId() + { + this.sigPolicyId = new ObjectIdentifier("SigPolicyId"); + this.transforms = new Transforms(); + this.sigPolicyHash = new DigestAlgAndValueType("SigPolicyHash"); + this.sigPolicyQualifiers = new SigPolicyQualifiers(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.sigPolicyId != null && this.sigPolicyId.HasChanged()) + { + retVal = true; + } + + if (this.transforms != null && this.transforms.HasChanged()) + { + retVal = true; + } + + if (this.sigPolicyHash != null && this.sigPolicyHash.HasChanged()) + { + retVal = true; + } + + if (this.sigPolicyQualifiers != null && this.sigPolicyQualifiers.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SigPolicyId", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SigPolicyId missing"); + } + this.sigPolicyId = new ObjectIdentifier("SigPolicyId"); + this.sigPolicyId.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("ds:Transforms", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.transforms = new Transforms(); + this.transforms.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:SigPolicyHash", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SigPolicyHash missing"); + } + this.sigPolicyHash = new DigestAlgAndValueType("SigPolicyHash"); + this.sigPolicyHash.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:SigPolicyQualifiers", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.sigPolicyQualifiers = new SigPolicyQualifiers(); + this.sigPolicyQualifiers.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignaturePolicyId", XadesSignedXml.XadesNamespaceUri); + + if (this.sigPolicyId != null && this.sigPolicyId.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.sigPolicyId.GetXml(), true)); + } + else + { + throw new CryptographicException("SigPolicyId element missing in SignaturePolicyId"); + } + + if (this.transforms != null && this.transforms.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.transforms.GetXml(), true)); + } + + if (this.sigPolicyHash != null && this.sigPolicyHash.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.sigPolicyHash.GetXml(), true)); + } + else + { + throw new CryptographicException("SigPolicyHash element missing in SignaturePolicyId"); + } + + if (this.sigPolicyQualifiers != null && this.sigPolicyQualifiers.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.sigPolicyQualifiers.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignaturePolicyIdentifier.cs b/Hcs.Client/Microsoft/Xades/SignaturePolicyIdentifier.cs new file mode 100644 index 0000000..8d4c517 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignaturePolicyIdentifier.cs @@ -0,0 +1,181 @@ +// SignaturePolicyIdentifier.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains an identifier of a signature policy + /// + public class SignaturePolicyIdentifier + { + #region Private variables + private SignaturePolicyId signaturePolicyId; + private bool signaturePolicyImplied; + #endregion + + #region Public properties + /// + /// The SignaturePolicyId element is an explicit and unambiguous identifier + /// of a Signature Policy together with a hash value of the signature + /// policy, so it can be verified that the policy selected by the signer is + /// the one being used by the verifier. An explicit signature policy has a + /// globally unique reference, which, in this way, is bound to an + /// electronic signature by the signer as part of the signature + /// calculation. + /// + public SignaturePolicyId SignaturePolicyId + { + get + { + return this.signaturePolicyId; + } + set + { + this.signaturePolicyId = value; + this.signaturePolicyImplied = false; + } + } + + /// + /// The empty SignaturePolicyImplied element will appear when the + /// data object(s) being signed and other external data imply the + /// signature policy + /// + public bool SignaturePolicyImplied + { + get + { + return this.signaturePolicyImplied; + } + set + { + this.signaturePolicyImplied = value; + if (this.signaturePolicyImplied == true) + { + this.signaturePolicyId = null; + } + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignaturePolicyIdentifier() + { + this.signaturePolicyId = new SignaturePolicyId(); + this.signaturePolicyImplied = false; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.signaturePolicyId != null && this.signaturePolicyId.HasChanged()) + { + retVal = true; + } + + if (this.signaturePolicyImplied) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SignaturePolicyId", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.signaturePolicyId = new SignaturePolicyId(); + this.signaturePolicyId.LoadXml((XmlElement)xmlNodeList.Item(0)); + this.signaturePolicyImplied = false; + } + else + { + xmlNodeList = xmlElement.SelectNodes("xsd:SignaturePolicyImplied", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.signaturePolicyImplied = true; + this.signaturePolicyId = null; + } + else + { + throw new CryptographicException("SignaturePolicyId or SignaturePolicyImplied missing"); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignaturePolicyIdentifier", XadesSignedXml.XadesNamespaceUri); + + if (this.signaturePolicyImplied) + { //Append empty element as required + bufferXmlElement = creationXmlDocument.CreateElement("xades", "SignaturePolicyImplied", XadesSignedXml.XadesNamespaceUri); + retVal.AppendChild(bufferXmlElement); + } + else + { + if (this.signaturePolicyId != null && this.signaturePolicyId.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signaturePolicyId.GetXml(), true)); + } + else + { + throw new CryptographicException("SignaturePolicyId or SignaturePolicyImplied missing in SignaturePolicyIdentifier"); + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignatureProductionPlace.cs b/Hcs.Client/Microsoft/Xades/SignatureProductionPlace.cs new file mode 100644 index 0000000..151ef47 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignatureProductionPlace.cs @@ -0,0 +1,228 @@ +// SignatureProductionPlace.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// In some transactions the purported place where the signer was at the time + /// of signature creation may need to be indicated. In order to provide this + /// information a new property may be included in the signature. + /// This property specifies an address associated with the signer at a + /// particular geographical (e.g. city) location. + /// This is a signed property that qualifies the signer. + /// An XML electronic signature aligned with the present document MAY contain + /// at most one SignatureProductionPlace element. + /// + public class SignatureProductionPlace + { + #region Private variables + private string city; + private string stateOrProvince; + private string postalCode; + private string countryName; + #endregion + + #region Public properties + /// + /// City where signature was produced + /// + public string City + { + get + { + return this.city; + } + set + { + this.city = value; + } + } + + /// + /// State or province where signature was produced + /// + public string StateOrProvince + { + get + { + return this.stateOrProvince; + } + set + { + this.stateOrProvince = value; + } + } + + /// + /// Postal code of place where signature was produced + /// + public string PostalCode + { + get + { + return this.postalCode; + } + set + { + this.postalCode = value; + } + } + + /// + /// Country where signature was produced + /// + public string CountryName + { + get + { + return this.countryName; + } + set + { + this.countryName = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignatureProductionPlace() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.city)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.stateOrProvince)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.postalCode)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.countryName)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:City", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.city = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:PostalCode", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.postalCode = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:StateOrProvince", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.stateOrProvince = xmlNodeList.Item(0).InnerText; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CountryName", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.countryName = xmlNodeList.Item(0).InnerText; + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignatureProductionPlace", XadesSignedXml.XadesNamespaceUri); + + if (!String.IsNullOrEmpty(this.city)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "City", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.city; + retVal.AppendChild(bufferXmlElement); + } + + if (!String.IsNullOrEmpty(this.stateOrProvince)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "StateOrProvince", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.stateOrProvince; + retVal.AppendChild(bufferXmlElement); + } + + if (!String.IsNullOrEmpty(this.postalCode)) + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "PostalCode", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.postalCode; + retVal.AppendChild(bufferXmlElement); + } + + if (this.countryName != null && this.countryName != "") + { + bufferXmlElement = creationXmlDocument.CreateElement("xades", "CountryName", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = this.countryName; + retVal.AppendChild(bufferXmlElement); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignatureTimeStampCollection.cs b/Hcs.Client/Microsoft/Xades/SignatureTimeStampCollection.cs new file mode 100644 index 0000000..d31f511 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignatureTimeStampCollection.cs @@ -0,0 +1,63 @@ +// SignatureTimeStampCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class SignatureTimeStampCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new TimeStamp this[int index] + { + get + { + return (TimeStamp)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public TimeStamp Add(TimeStamp objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// Name of the tag when serializing into XML using GetXml() + /// The newly created object that has been added to collection + public TimeStamp Add(string tagName) + { + return this.Add(new TimeStamp(tagName)); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignedDataObjectProperties.cs b/Hcs.Client/Microsoft/Xades/SignedDataObjectProperties.cs new file mode 100644 index 0000000..e26a773 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignedDataObjectProperties.cs @@ -0,0 +1,323 @@ +// SignedDataObjectProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The SignedDataObjectProperties element contains properties that qualify + /// some of the signed data objects + /// + public class SignedDataObjectProperties + { + #region Private variables + private DataObjectFormatCollection dataObjectFormatCollection; + private CommitmentTypeIndicationCollection commitmentTypeIndicationCollection; + private AllDataObjectsTimeStampCollection allDataObjectsTimeStampCollection; + private IndividualDataObjectsTimeStampCollection individualDataObjectsTimeStampCollection; + #endregion + + #region Public properties + /// + /// Collection of signed data object formats + /// + public DataObjectFormatCollection DataObjectFormatCollection + { + get + { + return this.dataObjectFormatCollection; + } + set + { + this.dataObjectFormatCollection = value; + } + } + + /// + /// Collection of commitment type indications + /// + public CommitmentTypeIndicationCollection CommitmentTypeIndicationCollection + { + get + { + return this.commitmentTypeIndicationCollection; + } + set + { + this.commitmentTypeIndicationCollection = value; + } + } + + /// + /// Collection of all data object timestamps + /// + public AllDataObjectsTimeStampCollection AllDataObjectsTimeStampCollection + { + get + { + return this.allDataObjectsTimeStampCollection; + } + set + { + this.allDataObjectsTimeStampCollection = value; + } + } + + /// + /// Collection of individual data object timestamps + /// + public IndividualDataObjectsTimeStampCollection IndividualDataObjectsTimeStampCollection + { + get + { + return this.individualDataObjectsTimeStampCollection; + } + set + { + this.individualDataObjectsTimeStampCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignedDataObjectProperties() + { + this.dataObjectFormatCollection = new DataObjectFormatCollection(); + this.commitmentTypeIndicationCollection = new CommitmentTypeIndicationCollection(); + this.allDataObjectsTimeStampCollection = new AllDataObjectsTimeStampCollection(); + this.individualDataObjectsTimeStampCollection = new IndividualDataObjectsTimeStampCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.dataObjectFormatCollection.Count > 0) + { + retVal = true; + } + + if (this.commitmentTypeIndicationCollection.Count > 0) + { + retVal = true; + } + + if (this.allDataObjectsTimeStampCollection.Count > 0) + { + retVal = true; + } + + if (this.individualDataObjectsTimeStampCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + DataObjectFormat newDataObjectFormat; + CommitmentTypeIndication newCommitmentTypeIndication; + TimeStamp newTimeStamp; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.dataObjectFormatCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:DataObjectFormat", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newDataObjectFormat = new DataObjectFormat(); + newDataObjectFormat.LoadXml(iterationXmlElement); + this.dataObjectFormatCollection.Add(newDataObjectFormat); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + this.commitmentTypeIndicationCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:CommitmentTypeIndication", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCommitmentTypeIndication = new CommitmentTypeIndication(); + newCommitmentTypeIndication.LoadXml(iterationXmlElement); + this.commitmentTypeIndicationCollection.Add(newCommitmentTypeIndication); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + this.allDataObjectsTimeStampCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:AllDataObjectsTimeStamp", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("AllDataObjectsTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.allDataObjectsTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + this.individualDataObjectsTimeStampCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:IndividualDataObjectsTimeStamp", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("IndividualDataObjectsTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.individualDataObjectsTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignedDataObjectProperties", XadesSignedXml.XadesNamespaceUri); + + if (this.dataObjectFormatCollection.Count > 0) + { + foreach (DataObjectFormat dataObjectFormat in this.dataObjectFormatCollection) + { + if (dataObjectFormat.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(dataObjectFormat.GetXml(), true)); + } + } + } + + if (this.commitmentTypeIndicationCollection.Count > 0) + { + foreach (CommitmentTypeIndication commitmentTypeIndication in this.commitmentTypeIndicationCollection) + { + if (commitmentTypeIndication.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(commitmentTypeIndication.GetXml(), true)); + } + } + } + + if (this.allDataObjectsTimeStampCollection.Count > 0) + { + foreach (TimeStamp timeStamp in this.allDataObjectsTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + + if (this.individualDataObjectsTimeStampCollection.Count > 0) + { + foreach (TimeStamp timeStamp in this.individualDataObjectsTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignedProperties.cs b/Hcs.Client/Microsoft/Xades/SignedProperties.cs new file mode 100644 index 0000000..5adf3e5 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignedProperties.cs @@ -0,0 +1,204 @@ +// SignedProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The SignedProperties element contains a number of properties that are + /// collectively signed by the XMLDSIG signature + /// + public class SignedProperties + { + #region Constants + /// + /// Default value for the SignedProperties Id attribute + /// + public const string DefaultSignedPropertiesId = "SignedPropertiesId"; + #endregion + + #region Private variables + private string id; + private SignedSignatureProperties signedSignatureProperties; + private SignedDataObjectProperties signedDataObjectProperties; + #endregion + + #region Public properties + + /// + /// This Id is used to be able to point the signature reference to this + /// element. It is initialized by default. + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// The properties that qualify the signature itself or the signer are + /// included as content of the SignedSignatureProperties element + /// + public SignedSignatureProperties SignedSignatureProperties + { + get + { + return this.signedSignatureProperties; + } + set + { + this.signedSignatureProperties = value; + } + } + + /// + /// The SignedDataObjectProperties element contains properties that qualify + /// some of the signed data objects + /// + public SignedDataObjectProperties SignedDataObjectProperties + { + get + { + return this.signedDataObjectProperties; + } + set + { + this.signedDataObjectProperties = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignedProperties() + { + this.id = DefaultSignedPropertiesId; + this.signedSignatureProperties = new SignedSignatureProperties(); + this.signedDataObjectProperties = new SignedDataObjectProperties(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + + if (this.signedSignatureProperties != null && this.signedSignatureProperties.HasChanged()) + { + retVal = true; + } + + if (this.signedDataObjectProperties != null && this.signedDataObjectProperties.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SignedSignatureProperties", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SignedSignatureProperties missing"); + } + this.signedSignatureProperties = new SignedSignatureProperties(); + this.signedSignatureProperties.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:SignedDataObjectProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.signedDataObjectProperties = new SignedDataObjectProperties(); + this.signedDataObjectProperties.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignedProperties", XadesSignedXml.XadesNamespaceUri); + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + + if (this.signedSignatureProperties != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signedSignatureProperties.GetXml(), true)); + } + else + { + throw new CryptographicException("SignedSignatureProperties should not be null"); + } + + if (this.signedDataObjectProperties != null && this.signedDataObjectProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signedDataObjectProperties.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignedSignatureProperties.cs b/Hcs.Client/Microsoft/Xades/SignedSignatureProperties.cs new file mode 100644 index 0000000..944b1d3 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignedSignatureProperties.cs @@ -0,0 +1,300 @@ +// SignedSignatureProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. +// + +using System; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The properties that qualify the signature itself or the signer are + /// included as content of the SignedSignatureProperties element + /// + public class SignedSignatureProperties + { + #region Private variables + private DateTimeOffset signingTime; + private SigningCertificate signingCertificate; + private SignaturePolicyIdentifier signaturePolicyIdentifier; + private SignatureProductionPlace signatureProductionPlace; + private SignerRole signerRole; + #endregion + + #region Public properties + /// + /// The signing time property specifies the time at which the signer + /// performed the signing process. This is a signed property that + /// qualifies the whole signature. An XML electronic signature aligned + /// with the present document MUST contain exactly one SigningTime element. + /// + public DateTimeOffset SigningTime + { + get + { + return this.signingTime; + } + set + { + this.signingTime = value; + } + } + + /// + /// The SigningCertificate property is designed to prevent the simple + /// substitution of the certificate. This property contains references + /// to certificates and digest values computed on them. The certificate + /// used to verify the signature shall be identified in the sequence; + /// the signature policy may mandate other certificates be present, + /// that may include all the certificates up to the point of trust. + /// This is a signed property that qualifies the signature. An XML + /// electronic signature aligned with the present document MUST contain + /// exactly one SigningCertificate. + /// + public SigningCertificate SigningCertificate + { + get + { + return this.signingCertificate; + } + set + { + this.signingCertificate = value; + } + } + + /// + /// The signature policy is a set of rules for the creation and + /// validation of an electronic signature, under which the signature + /// can be determined to be valid. A given legal/contractual context + /// may recognize a particular signature policy as meeting its + /// requirements. + /// An XML electronic signature aligned with the present document MUST + /// contain exactly one SignaturePolicyIdentifier element. + /// + public SignaturePolicyIdentifier SignaturePolicyIdentifier + { + get + { + return this.signaturePolicyIdentifier; + } + set + { + this.signaturePolicyIdentifier = value; + } + } + + /// + /// In some transactions the purported place where the signer was at the time + /// of signature creation may need to be indicated. In order to provide this + /// information a new property may be included in the signature. + /// This property specifies an address associated with the signer at a + /// particular geographical (e.g. city) location. + /// This is a signed property that qualifies the signer. + /// An XML electronic signature aligned with the present document MAY contain + /// at most one SignatureProductionPlace element. + /// + public SignatureProductionPlace SignatureProductionPlace + { + get + { + return this.signatureProductionPlace; + } + set + { + this.signatureProductionPlace = value; + } + } + + /// + /// According to what has been stated in the Introduction clause, an + /// electronic signature produced in accordance with the present document + /// incorporates: "a commitment that has been explicitly endorsed under a + /// signature policy, at a given time, by a signer under an identifier, + /// e.g. a name or a pseudonym, and optionally a role". + /// While the name of the signer is important, the position of the signer + /// within a company or an organization can be even more important. Some + /// contracts may only be valid if signed by a user in a particular role, + /// e.g. a Sales Director. In many cases who the sales Director really is, + /// is not that important but being sure that the signer is empowered by his + /// company to be the Sales Director is fundamental. + /// + public SignerRole SignerRole + { + get + { + return this.signerRole; + } + set + { + this.signerRole = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignedSignatureProperties() + { + this.signingTime = DateTimeOffset.MinValue; + this.signingCertificate = new SigningCertificate(); + //this.signaturePolicyIdentifier = new SignaturePolicyIdentifier(); + this.signatureProductionPlace = new SignatureProductionPlace(); + this.signerRole = new SignerRole(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { //Should always be serialized + bool retVal = false; + + retVal = true; + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:SigningTime", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SigningTime missing"); + } + this.signingTime = XmlConvert.ToDateTime(xmlNodeList.Item(0).InnerText, XmlDateTimeSerializationMode.Utc); + + xmlNodeList = xmlElement.SelectNodes("xsd:SigningCertificate", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("SigningCertificate missing"); + } + this.signingCertificate = new SigningCertificate(); + this.signingCertificate.LoadXml((XmlElement)xmlNodeList.Item(0)); + + xmlNodeList = xmlElement.SelectNodes("xsd:SignaturePolicyIdentifier", xmlNamespaceManager); + // TODO: + // + //if (xmlNodeList.Count == 0) + //{ + // throw new CryptographicException("SignaturePolicyIdentifier missing"); + //} + //this.signaturePolicyIdentifier = new SignaturePolicyIdentifier(); + //this.signaturePolicyIdentifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + if (xmlNodeList.Count != 0) + { + this.signaturePolicyIdentifier = new SignaturePolicyIdentifier(); + this.signaturePolicyIdentifier.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:SignatureProductionPlace", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.signatureProductionPlace = new SignatureProductionPlace(); + this.signatureProductionPlace.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.signatureProductionPlace = null; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:SignerRole", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.signerRole = new SignerRole(); + this.signerRole.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.signerRole = null; + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignedSignatureProperties", XadesSignedXml.XadesNamespaceUri); + + if (this.signingTime == DateTimeOffset.MinValue) + { + this.signingTime = DateTime.Now; + } + bufferXmlElement = creationXmlDocument.CreateElement("xades", "SigningTime", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.InnerText = signingTime.ToString(SigningTimeFormat); + retVal.AppendChild(bufferXmlElement); + + if (this.signingCertificate != null && this.signingCertificate.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signingCertificate.GetXml(), true)); + } + else + { + throw new CryptographicException("SigningCertificate element missing in SignedSignatureProperties"); + } + + // TODO: + //if (this.signaturePolicyIdentifier != null && this.signaturePolicyIdentifier.HasChanged()) + //{ + // retVal.AppendChild(creationXmlDocument.ImportNode(this.signaturePolicyIdentifier.GetXml(), true)); + //} + //else + //{ + // throw new CryptographicException("SignaturePolicyIdentifier element missing in SignedSignatureProperties"); + //} + + if (this.signatureProductionPlace != null && this.signatureProductionPlace.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signatureProductionPlace.GetXml(), true)); + } + + if (this.signerRole != null && this.signerRole.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.signerRole.GetXml(), true)); + } + + return retVal; + } + #endregion + + private const string SigningTimeFormat = "yyyy-MM-ddTHH:mm:ss.fffzzz"; + } +} diff --git a/Hcs.Client/Microsoft/Xades/SignerRole.cs b/Hcs.Client/Microsoft/Xades/SignerRole.cs new file mode 100644 index 0000000..66db63b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SignerRole.cs @@ -0,0 +1,167 @@ +// SignerRole.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// According to what has been stated in the Introduction clause, an + /// electronic signature produced in accordance with the present document + /// incorporates: "a commitment that has been explicitly endorsed under a + /// signature policy, at a given time, by a signer under an identifier, + /// e.g. a name or a pseudonym, and optionally a role". + /// While the name of the signer is important, the position of the signer + /// within a company or an organization can be even more important. Some + /// contracts may only be valid if signed by a user in a particular role, + /// e.g. a Sales Director. In many cases who the sales Director really is, + /// is not that important but being sure that the signer is empowered by his + /// company to be the Sales Director is fundamental. + /// + public class SignerRole + { + #region Private variables + private ClaimedRoles claimedRoles; + private CertifiedRoles certifiedRoles; + #endregion + + #region Public properties + /// + /// The ClaimedRoles element contains a sequence of roles claimed by + /// the signer but not certified. Additional contents types may be + /// defined on a domain application basis and be part of this element. + /// The namespaces given to the corresponding XML schemas will allow + /// their unambiguous identification in the case these roles use XML. + /// + public ClaimedRoles ClaimedRoles + { + get + { + return this.claimedRoles; + } + set + { + this.claimedRoles = value; + } + } + + /// + /// The CertifiedRoles element contains one or more wrapped attribute + /// certificates for the signer + /// + public CertifiedRoles CertifiedRoles + { + get + { + return this.certifiedRoles; + } + set + { + this.certifiedRoles = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SignerRole() + { + this.claimedRoles = new ClaimedRoles(); + this.certifiedRoles = new CertifiedRoles(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.claimedRoles != null && this.claimedRoles.HasChanged()) + { + retVal = true; + } + + if (this.certifiedRoles != null && this.certifiedRoles.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:ClaimedRoles", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.claimedRoles = new ClaimedRoles(); + this.claimedRoles.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CertifiedRoles", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.certifiedRoles = new CertifiedRoles(); + this.certifiedRoles.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SignerRole", XadesSignedXml.XadesNamespaceUri); + + if (this.claimedRoles != null && this.claimedRoles.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.claimedRoles.GetXml(), true)); + } + + if (this.certifiedRoles != null && this.certifiedRoles.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.certifiedRoles.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/SigningCertificate.cs b/Hcs.Client/Microsoft/Xades/SigningCertificate.cs new file mode 100644 index 0000000..1d8aac3 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/SigningCertificate.cs @@ -0,0 +1,147 @@ +// SigningCertificate.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. +// + +using System; +using System.Collections; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class has as purpose to provide the simple substitution of the + /// certificate. It contains references to certificates and digest values + /// computed on them. + /// + public class SigningCertificate + { + #region Private variables + private CertCollection certCollection; + #endregion + + #region Public properties + /// + /// A collection of certs + /// + public CertCollection CertCollection + { + get + { + return this.certCollection; + } + set + { + this.certCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public SigningCertificate() + { + this.certCollection = new CertCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + return true; //Should always be considered dirty + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + Cert newCert; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.certCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:Cert", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newCert = new Cert(); + newCert.LoadXml(iterationXmlElement); + this.certCollection.Add(newCert); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "SigningCertificate", XadesSignedXml.XadesNamespaceUri); + + if (this.certCollection.Count > 0) + { + foreach (Cert cert in this.certCollection) + { + if (cert.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(cert.GetXml(), true)); + } + } + } + else + { + throw new CryptographicException("SigningCertificate.Certcollection should have count > 0"); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/TimeStamp.cs b/Hcs.Client/Microsoft/Xades/TimeStamp.cs new file mode 100644 index 0000000..6239ce8 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/TimeStamp.cs @@ -0,0 +1,270 @@ +// TimeStamp.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. +// + +using System; +using System.Collections; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains timestamp information + /// + public class TimeStamp + { + #region Private variables + private string tagName; + private HashDataInfoCollection hashDataInfoCollection; + private EncapsulatedPKIData encapsulatedTimeStamp; + private XMLTimeStamp xmlTimeStamp; + #endregion + + #region Public properties + /// + /// The name of the element when serializing + /// + public string TagName + { + get + { + return this.tagName; + } + set + { + this.tagName = value; + } + } + + /// + /// A collection of hash data infos + /// + public HashDataInfoCollection HashDataInfoCollection + { + get + { + return this.hashDataInfoCollection; + } + set + { + this.hashDataInfoCollection = value; + } + } + + /// + /// The time-stamp generated by a TSA encoded as an ASN.1 data + /// object + /// + public EncapsulatedPKIData EncapsulatedTimeStamp + { + get + { + return this.encapsulatedTimeStamp; + } + set + { + this.encapsulatedTimeStamp = value; + if (this.encapsulatedTimeStamp != null) + { + this.xmlTimeStamp = null; + } + } + } + + /// + /// The time-stamp generated by a TSA encoded as a generic XML + /// timestamp + /// + public XMLTimeStamp XMLTimeStamp + { + get + { + return this.xmlTimeStamp; + } + set + { + this.xmlTimeStamp = value; + if (this.xmlTimeStamp != null) + { + this.encapsulatedTimeStamp = null; + } + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public TimeStamp() + { + this.hashDataInfoCollection = new HashDataInfoCollection(); + this.encapsulatedTimeStamp = new EncapsulatedPKIData("EncapsulatedTimeStamp"); + this.xmlTimeStamp = null; + } + + /// + /// Constructor with TagName + /// + /// Name of the tag when serializing with GetXml + public TimeStamp(string tagName) : this() + { + this.tagName = tagName; + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.hashDataInfoCollection.Count > 0) + { + retVal = true; + } + + if (this.encapsulatedTimeStamp != null && this.encapsulatedTimeStamp.HasChanged()) + { + retVal = true; + } + + if (this.xmlTimeStamp != null && this.xmlTimeStamp.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + HashDataInfo newHashDataInfo; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.hashDataInfoCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:HashDataInfo", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newHashDataInfo = new HashDataInfo(); + newHashDataInfo.LoadXml(iterationXmlElement); + this.hashDataInfoCollection.Add(newHashDataInfo); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + xmlNodeList = xmlElement.SelectNodes("xsd:EncapsulatedTimeStamp", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.encapsulatedTimeStamp = new EncapsulatedPKIData("EncapsulatedTimeStamp"); + this.encapsulatedTimeStamp.LoadXml((XmlElement)xmlNodeList.Item(0)); + this.xmlTimeStamp = null; + } + else + { + xmlNodeList = xmlElement.SelectNodes("xsd:XMLTimeStamp", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.xmlTimeStamp = new XMLTimeStamp(); + this.xmlTimeStamp.LoadXml((XmlElement)xmlNodeList.Item(0)); + this.encapsulatedTimeStamp = null; + + } + else + { + throw new CryptographicException("EncapsulatedTimeStamp or XMLTimeStamp missing"); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", this.tagName, XadesSignedXml.XadesNamespaceUri); + + if (this.hashDataInfoCollection.Count > 0) + { + foreach (HashDataInfo hashDataInfo in this.hashDataInfoCollection) + { + if (hashDataInfo.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(hashDataInfo.GetXml(), true)); + } + } + } + else + { + throw new CryptographicException("HashDataInfoCollection is empty. TimeStamp needs at least one HashDataInfo element"); + } + + if (this.encapsulatedTimeStamp != null && this.encapsulatedTimeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.encapsulatedTimeStamp.GetXml(), true)); + } + else + { + if (this.xmlTimeStamp != null && this.xmlTimeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.xmlTimeStamp.GetXml(), true)); + } + else + { + throw new CryptographicException("EncapsulatedTimeStamp or XMLTimeStamp element missing"); + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/Transform.cs b/Hcs.Client/Microsoft/Xades/Transform.cs new file mode 100644 index 0000000..adec29a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/Transform.cs @@ -0,0 +1,158 @@ +// Transform.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The Transform element contains a single transformation + /// + public class Transform + { + #region Private variables + private string algorithm; + private string xpath; + #endregion + + #region Public properties + /// + /// Algorithm of the transformation + /// + public string Algorithm + { + get + { + return this.algorithm; + } + set + { + this.algorithm = value; + } + } + + /// + /// XPath of the transformation + /// + public string XPath + { + get + { + return this.xpath; + } + set + { + this.xpath = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public Transform() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.algorithm)) + { + retVal = true; + } + + if (!String.IsNullOrEmpty(this.xpath)) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Algorithm")) + { + this.algorithm = xmlElement.GetAttribute("Algorithm"); + } + else + { + this.algorithm = ""; + } + + xmlNodeList = xmlElement.SelectNodes("XPath"); + if (xmlNodeList.Count != 0) + { + this.xpath = xmlNodeList.Item(0).InnerText; + } + else + { + this.xpath = ""; + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("ds", "Transform", SignedXml.XmlDsigNamespaceUrl); + + if (this.algorithm != null) + { + retVal.SetAttribute("Algorithm", this.algorithm); + } + else + { + retVal.SetAttribute("Algorithm", ""); + } + + if (this.xpath != null && this.xpath != "") + { + bufferXmlElement = creationXmlDocument.CreateElement("ds", "XPath", SignedXml.XmlDsigNamespaceUrl); + bufferXmlElement.InnerText = this.xpath; + retVal.AppendChild(bufferXmlElement); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/TransformCollection.cs b/Hcs.Client/Microsoft/Xades/TransformCollection.cs new file mode 100644 index 0000000..70a9616 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/TransformCollection.cs @@ -0,0 +1,62 @@ +// TransformCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class TransformCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new Transform this[int index] + { + get + { + return (Transform)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public Transform Add(Transform objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public Transform Add() + { + return this.Add(new Transform()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/Transforms.cs b/Hcs.Client/Microsoft/Xades/Transforms.cs new file mode 100644 index 0000000..2738249 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/Transforms.cs @@ -0,0 +1,147 @@ +// Transforms.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The Transforms element contains a collection of transformations + /// + public class Transforms + { + #region Private variables + private TransformCollection transformCollection; + #endregion + + #region Public properties + /// + /// A collection of transforms + /// + public TransformCollection TransformCollection + { + get + { + return this.transformCollection; + } + set + { + this.transformCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public Transforms() + { + this.transformCollection = new TransformCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.transformCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + Transform newTransform; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + + this.transformCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("ds:Transform", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTransform = new Transform(); + newTransform.LoadXml(iterationXmlElement); + this.transformCollection.Add(newTransform); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "Transforms", XadesSignedXml.XadesNamespaceUri); + + if (this.transformCollection.Count > 0) + { + foreach (Transform transform in this.transformCollection) + { + if (transform.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(transform.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperties.cs b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperties.cs new file mode 100644 index 0000000..8344e25 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperties.cs @@ -0,0 +1,148 @@ +// UnsignedDataObjectProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. +// + +using System; +using System.Collections; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The UnsignedDataObjectProperties element may contain properties that + /// qualify some of the signed data objects + /// + public class UnsignedDataObjectProperties + { + #region Private variables + private UnsignedDataObjectPropertyCollection unsignedDataObjectPropertyCollection; + #endregion + + #region Public properties + /// + /// A collection of unsigned data object properties + /// + public UnsignedDataObjectPropertyCollection UnsignedDataObjectPropertyCollection + { + get + { + return this.unsignedDataObjectPropertyCollection; + } + set + { + this.unsignedDataObjectPropertyCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public UnsignedDataObjectProperties() + { + this.unsignedDataObjectPropertyCollection = new UnsignedDataObjectPropertyCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.unsignedDataObjectPropertyCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + UnsignedDataObjectProperty newUnsignedDataObjectProperty; + IEnumerator enumerator; + XmlElement iterationXmlElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.unsignedDataObjectPropertyCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:UnsignedDataObjectProperty", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newUnsignedDataObjectProperty = new UnsignedDataObjectProperty(); + newUnsignedDataObjectProperty.LoadXml(iterationXmlElement); + this.unsignedDataObjectPropertyCollection.Add(newUnsignedDataObjectProperty); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "UnsignedDataObjectProperties", XadesSignedXml.XadesNamespaceUri); + + if (this.unsignedDataObjectPropertyCollection.Count > 0) + { + foreach (UnsignedDataObjectProperty unsignedDataObjectProperty in this.unsignedDataObjectPropertyCollection) + { + if (unsignedDataObjectProperty.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(unsignedDataObjectProperty.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperty.cs b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperty.cs new file mode 100644 index 0000000..4ec061b --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectProperty.cs @@ -0,0 +1,104 @@ +// UnsignedDataObjectProperty.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains properties that qualify some of the signed data + /// objects. The signature generated by the signer does not cover the content + /// of this element. + /// This information is added for the shake of completeness and to cope with + /// potential future needs for inclusion of such kind of properties. + /// + public class UnsignedDataObjectProperty + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents an unsigned data object + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public UnsignedDataObjectProperty() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "UnsignedDataObjectProperty", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/UnsignedDataObjectPropertyCollection.cs b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectPropertyCollection.cs new file mode 100644 index 0000000..c973ca6 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/UnsignedDataObjectPropertyCollection.cs @@ -0,0 +1,62 @@ +// UnsignedDataObjectPropertyCollection.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Collections; + +namespace Microsoft.Xades +{ + /// + /// Collection class that derives from ArrayList. It provides the minimally + /// required functionality to add instances of typed classes and obtain typed + /// elements through a custom indexer. + /// + public class UnsignedDataObjectPropertyCollection : ArrayList + { + /// + /// New typed indexer for the collection + /// + /// Index of the object to retrieve from collection + public new UnsignedDataObjectProperty this[int index] + { + get + { + return (UnsignedDataObjectProperty)base[index]; + } + set + { + base[index] = value; + } + } + + /// + /// Add typed object to the collection + /// + /// Typed object to be added to collection + /// The object that has been added to collection + public UnsignedDataObjectProperty Add(UnsignedDataObjectProperty objectToAdd) + { + base.Add(objectToAdd); + + return objectToAdd; + } + + /// + /// Add new typed object to the collection + /// + /// The newly created object that has been added to collection + public UnsignedDataObjectProperty Add() + { + return this.Add(new UnsignedDataObjectProperty()); + } + } +} diff --git a/Hcs.Client/Microsoft/Xades/UnsignedProperties.cs b/Hcs.Client/Microsoft/Xades/UnsignedProperties.cs new file mode 100644 index 0000000..11bb7a6 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/UnsignedProperties.cs @@ -0,0 +1,189 @@ +// UnsignedProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// The UnsignedProperties element contains a number of properties that are + /// not signed by the XMLDSIG signature + /// + public class UnsignedProperties + { + #region Private variables + private string id; + private UnsignedSignatureProperties unsignedSignatureProperties; + private UnsignedDataObjectProperties unsignedDataObjectProperties; + #endregion + + #region Public properties + /// + /// The optional Id attribute can be used to make a reference to the + /// UnsignedProperties element + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// UnsignedSignatureProperties may contain properties that qualify XML + /// signature itself or the signer + /// + public UnsignedSignatureProperties UnsignedSignatureProperties + { + get + { + return this.unsignedSignatureProperties; + } + set + { + this.unsignedSignatureProperties = value; + } + } + + /// + /// The UnsignedDataObjectProperties element may contain properties that + /// qualify some of the signed data objects + /// + public UnsignedDataObjectProperties UnsignedDataObjectProperties + { + get + { + return this.unsignedDataObjectProperties; + } + set + { + this.unsignedDataObjectProperties = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public UnsignedProperties() + { + this.UnsignedSignatureProperties = new UnsignedSignatureProperties(); + this.unsignedDataObjectProperties = new UnsignedDataObjectProperties(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (!String.IsNullOrEmpty(this.id)) + { + retVal = true; + } + + if (this.unsignedSignatureProperties != null && this.unsignedSignatureProperties.HasChanged()) + { + retVal = true; + } + + if (this.unsignedDataObjectProperties != null && this.unsignedDataObjectProperties.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + /// Element containing parent signature (needed if there are counter signatures) + public void LoadXml(System.Xml.XmlElement xmlElement, XmlElement counterSignedXmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:UnsignedSignatureProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.unsignedSignatureProperties = new UnsignedSignatureProperties(); + this.unsignedSignatureProperties.LoadXml((XmlElement)xmlNodeList.Item(0), counterSignedXmlElement); + } + + xmlNodeList = xmlElement.SelectNodes("xsd:UnsignedDataObjectProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.unsignedDataObjectProperties = new UnsignedDataObjectProperties(); + this.unsignedDataObjectProperties.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "UnsignedProperties", XadesSignedXml.XadesNamespaceUri); + if (!String.IsNullOrEmpty(this.id)) + { + retVal.SetAttribute("Id", this.id); + } + + if (this.unsignedSignatureProperties != null && this.unsignedSignatureProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.unsignedSignatureProperties.GetXml(), true)); + } + if (this.unsignedDataObjectProperties != null && this.unsignedDataObjectProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.unsignedDataObjectProperties.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/UnsignedSignatureProperties.cs b/Hcs.Client/Microsoft/Xades/UnsignedSignatureProperties.cs new file mode 100644 index 0000000..5186f42 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/UnsignedSignatureProperties.cs @@ -0,0 +1,601 @@ +// UnsignedSignatureProperties.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Security.Cryptography; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// UnsignedSignatureProperties may contain properties that qualify XML + /// signature itself or the signer + /// + public class UnsignedSignatureProperties + { + #region Private variables + private CounterSignatureCollection counterSignatureCollection; + private SignatureTimeStampCollection signatureTimeStampCollection; + private CompleteCertificateRefs completeCertificateRefs; + private CompleteRevocationRefs completeRevocationRefs; + private bool refsOnlyTimeStampFlag; + private SignatureTimeStampCollection sigAndRefsTimeStampCollection; + private SignatureTimeStampCollection refsOnlyTimeStampCollection; + private CertificateValues certificateValues; + private RevocationValues revocationValues; + private SignatureTimeStampCollection archiveTimeStampCollection; + #endregion + + #region Public properties + /// + /// A collection of counter signatures + /// + public CounterSignatureCollection CounterSignatureCollection + { + get + { + return this.counterSignatureCollection; + } + set + { + this.counterSignatureCollection = value; + } + } + + /// + /// A collection of signature timestamps + /// + public SignatureTimeStampCollection SignatureTimeStampCollection + { + get + { + return this.signatureTimeStampCollection; + } + set + { + this.signatureTimeStampCollection = value; + } + } + + /// + /// This clause defines the XML element containing the sequence of + /// references to the full set of CA certificates that have been used + /// to validate the electronic signature up to (but not including) the + /// signer's certificate. This is an unsigned property that qualifies + /// the signature. + /// An XML electronic signature aligned with the present document MAY + /// contain at most one CompleteCertificateRefs element. + /// + public CompleteCertificateRefs CompleteCertificateRefs + { + get + { + return this.completeCertificateRefs; + } + set + { + this.completeCertificateRefs = value; + } + } + + /// + /// This clause defines the XML element containing a full set of + /// references to the revocation data that have been used in the + /// validation of the signer and CA certificates. + /// This is an unsigned property that qualifies the signature. + /// The XML electronic signature aligned with the present document + /// MAY contain at most one CompleteRevocationRefs element. + /// + public CompleteRevocationRefs CompleteRevocationRefs + { + get + { + return this.completeRevocationRefs; + } + set + { + this.completeRevocationRefs = value; + } + } + + /// + /// Flag indicating if the RefsOnlyTimeStamp element (or several) is + /// present (RefsOnlyTimeStampFlag = true). If one or more + /// sigAndRefsTimeStamps are present, RefsOnlyTimeStampFlag will be false. + /// + public bool RefsOnlyTimeStampFlag + { + get + { + return this.refsOnlyTimeStampFlag; + } + set + { + this.refsOnlyTimeStampFlag = value; + } + } + + /// + /// A collection of sig and refs timestamps + /// + public SignatureTimeStampCollection SigAndRefsTimeStampCollection + { + get + { + return this.sigAndRefsTimeStampCollection; + } + set + { + this.sigAndRefsTimeStampCollection = value; + } + } + + /// + /// A collection of refs only timestamps + /// + public SignatureTimeStampCollection RefsOnlyTimeStampCollection + { + get + { + return this.refsOnlyTimeStampCollection; + } + set + { + this.refsOnlyTimeStampCollection = value; + } + } + + /// + /// Certificate values + /// + public CertificateValues CertificateValues + { + get + { + return this.certificateValues; + } + set + { + this.certificateValues = value; + } + } + + /// + /// Revocation values + /// + public RevocationValues RevocationValues + { + get + { + return this.revocationValues; + } + set + { + this.revocationValues = value; + } + } + + /// + /// A collection of signature timestamp + /// + public SignatureTimeStampCollection ArchiveTimeStampCollection + { + get + { + return this.archiveTimeStampCollection; + } + set + { + this.archiveTimeStampCollection = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public UnsignedSignatureProperties() + { + this.counterSignatureCollection = new CounterSignatureCollection(); + this.signatureTimeStampCollection = new SignatureTimeStampCollection(); + this.completeCertificateRefs = new CompleteCertificateRefs(); + this.completeRevocationRefs = new CompleteRevocationRefs(); + this.refsOnlyTimeStampFlag = false; + this.sigAndRefsTimeStampCollection = new SignatureTimeStampCollection(); + this.refsOnlyTimeStampCollection = new SignatureTimeStampCollection(); + this.certificateValues = new CertificateValues(); + this.revocationValues = new RevocationValues(); + this.archiveTimeStampCollection = new SignatureTimeStampCollection(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.counterSignatureCollection.Count > 0) + { + retVal = true; + } + + if (this.signatureTimeStampCollection.Count > 0) + { + retVal = true; + } + + if (this.completeCertificateRefs != null && this.completeCertificateRefs.HasChanged()) + { + retVal = true; + } + + if (this.completeRevocationRefs != null && this.completeRevocationRefs.HasChanged()) + { + retVal = true; + } + + if (this.sigAndRefsTimeStampCollection.Count > 0) + { + retVal = true; + } + + if (this.refsOnlyTimeStampCollection.Count > 0) + { + retVal = true; + } + + if (this.certificateValues != null && this.certificateValues.HasChanged()) + { + retVal = true; + } + + if (this.revocationValues != null && this.revocationValues.HasChanged()) + { + retVal = true; + } + + if (this.archiveTimeStampCollection.Count > 0) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + /// Element containing parent signature (needed if there are counter signatures) + public void LoadXml(System.Xml.XmlElement xmlElement, XmlElement counterSignedXmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + IEnumerator enumerator; + XmlElement iterationXmlElement; + XadesSignedXml newXadesSignedXml; + TimeStamp newTimeStamp; + XmlElement counterSignatureElement; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + this.counterSignatureCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:CounterSignature", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + if (counterSignedXmlElement != null) + { + newXadesSignedXml = new XadesSignedXml(counterSignedXmlElement); + } + else + { + newXadesSignedXml = new XadesSignedXml(); + } + counterSignatureElement = null; + for (int childNodeCounter = 0; (childNodeCounter < iterationXmlElement.ChildNodes.Count) && (counterSignatureElement == null); childNodeCounter++) + { + if (iterationXmlElement.ChildNodes[childNodeCounter] is XmlElement) + { + counterSignatureElement = (XmlElement)iterationXmlElement.ChildNodes[childNodeCounter]; + } + } + if (counterSignatureElement != null) + { + newXadesSignedXml.LoadXml(counterSignatureElement); + this.counterSignatureCollection.Add(newXadesSignedXml); + } + else + { + throw new CryptographicException("CounterSignature element does not contain signature"); + } + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + this.signatureTimeStampCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:SignatureTimeStamp", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("SignatureTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.signatureTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CompleteCertificateRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.completeCertificateRefs = new CompleteCertificateRefs(); + this.completeCertificateRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.completeCertificateRefs = null; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CompleteRevocationRefs", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.CompleteRevocationRefs = new CompleteRevocationRefs(); + this.CompleteRevocationRefs.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.completeRevocationRefs = null; + } + + this.sigAndRefsTimeStampCollection.Clear(); + this.refsOnlyTimeStampCollection.Clear(); + + xmlNodeList = xmlElement.SelectNodes("xsd:SigAndRefsTimeStamp", xmlNamespaceManager); + if (xmlNodeList.Count > 0) + { + this.refsOnlyTimeStampFlag = false; + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("SigAndRefsTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.sigAndRefsTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + else + { + xmlNodeList = xmlElement.SelectNodes("xsd:RefsOnlyTimeStamp", xmlNamespaceManager); + if (xmlNodeList.Count > 0) + { + this.refsOnlyTimeStampFlag = true; + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("RefsOnlyTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.refsOnlyTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + else + { + this.refsOnlyTimeStampFlag = false; + } + } + + xmlNodeList = xmlElement.SelectNodes("xsd:CertificateValues", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.certificateValues = new CertificateValues(); + this.certificateValues.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.certificateValues = null; + } + + xmlNodeList = xmlElement.SelectNodes("xsd:RevocationValues", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + this.revocationValues = new RevocationValues(); + this.revocationValues.LoadXml((XmlElement)xmlNodeList.Item(0)); + } + else + { + this.revocationValues = null; + } + + this.archiveTimeStampCollection.Clear(); + xmlNodeList = xmlElement.SelectNodes("xsd:ArchiveTimeStamp", xmlNamespaceManager); + enumerator = xmlNodeList.GetEnumerator(); + try + { + while (enumerator.MoveNext()) + { + iterationXmlElement = enumerator.Current as XmlElement; + if (iterationXmlElement != null) + { + newTimeStamp = new TimeStamp("ArchiveTimeStamp"); + newTimeStamp.LoadXml(iterationXmlElement); + this.archiveTimeStampCollection.Add(newTimeStamp); + } + } + } + finally + { + IDisposable disposable = enumerator as IDisposable; + if (disposable != null) + { + disposable.Dispose(); + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + XmlElement bufferXmlElement; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "UnsignedSignatureProperties", XadesSignedXml.XadesNamespaceUri); + + if (this.counterSignatureCollection.Count > 0) + { + foreach (XadesSignedXml xadesSignedXml in this.counterSignatureCollection) + { + bufferXmlElement = creationXmlDocument.CreateElement("CounterSignature", XadesSignedXml.XadesNamespaceUri); + bufferXmlElement.AppendChild(creationXmlDocument.ImportNode(xadesSignedXml.GetXml(), true)); + retVal.AppendChild(creationXmlDocument.ImportNode(bufferXmlElement, true)); + } + } + + if (this.signatureTimeStampCollection.Count > 0) + { + foreach (TimeStamp timeStamp in this.signatureTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + + if (this.completeCertificateRefs != null && this.completeCertificateRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.completeCertificateRefs.GetXml(), true)); + } + + if (this.completeRevocationRefs != null && this.completeRevocationRefs.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.completeRevocationRefs.GetXml(), true)); + } + + if (!this.refsOnlyTimeStampFlag) + { + foreach (TimeStamp timeStamp in this.sigAndRefsTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + else + { + foreach (TimeStamp timeStamp in this.refsOnlyTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + + if (this.certificateValues != null && this.certificateValues.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.certificateValues.GetXml(), true)); + } + + if (this.revocationValues != null && this.revocationValues.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.revocationValues.GetXml(), true)); + } + + if (this.archiveTimeStampCollection.Count > 0) + { + foreach (TimeStamp timeStamp in this.archiveTimeStampCollection) + { + if (timeStamp.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(timeStamp.GetXml(), true)); + } + } + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/XAdES.xsd b/Hcs.Client/Microsoft/Xades/XAdES.xsd new file mode 100644 index 0000000..87f7209 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/XAdES.xsd @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hcs.Client/Microsoft/Xades/XMLTimeStamp.cs b/Hcs.Client/Microsoft/Xades/XMLTimeStamp.cs new file mode 100644 index 0000000..0a900a7 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/XMLTimeStamp.cs @@ -0,0 +1,100 @@ +// XMLTimeStamp.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class contains a timestamp encoded as XML + /// + public class XMLTimeStamp + { + #region Private variables + private XmlElement anyXmlElement; + #endregion + + #region Public properties + /// + /// The generic XML element that represents an XML timestamp + /// + public XmlElement AnyXmlElement + { + get + { + return this.anyXmlElement; + } + set + { + this.anyXmlElement = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public XMLTimeStamp() + { + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.anyXmlElement != null) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + public void LoadXml(System.Xml.XmlElement xmlElement) + { + this.anyXmlElement = xmlElement; + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("xades", "XMLTimeStamp", XadesSignedXml.XadesNamespaceUri); + + if (this.anyXmlElement != null) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.anyXmlElement, true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/XadesObject.cs b/Hcs.Client/Microsoft/Xades/XadesObject.cs new file mode 100644 index 0000000..f0e244a --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/XadesObject.cs @@ -0,0 +1,164 @@ +// XadesObject.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Security.Cryptography; +using System.Security.Cryptography.Xml; +using System.Xml; + +namespace Microsoft.Xades +{ + /// + /// This class represents the unique object of a XAdES signature that + /// contains all XAdES information + /// + public class XadesObject + { + #region Private variable + private string id; + private QualifyingProperties qualifyingProperties; + #endregion + + #region Public properties + /// + /// Id attribute of the XAdES object + /// + public string Id + { + get + { + return this.id; + } + set + { + this.id = value; + } + } + + /// + /// The QualifyingProperties element acts as a container element for + /// all the qualifying information that should be added to an XML + /// signature + /// + public QualifyingProperties QualifyingProperties + { + get + { + return this.qualifyingProperties; + } + set + { + this.qualifyingProperties = value; + } + } + #endregion + + #region Constructors + /// + /// Default constructor + /// + public XadesObject() + { + this.qualifyingProperties = new QualifyingProperties(); + } + #endregion + + #region Public methods + /// + /// Check to see if something has changed in this instance and needs to be serialized + /// + /// Flag indicating if a member needs serialization + public bool HasChanged() + { + bool retVal = false; + + if (this.id != null && this.id != "") + { + retVal = true; + } + + if (this.qualifyingProperties != null && this.qualifyingProperties.HasChanged()) + { + retVal = true; + } + + return retVal; + } + + /// + /// Load state from an XML element + /// + /// XML element containing new state + /// Element containing parent signature (needed if there are counter signatures) + public void LoadXml(XmlElement xmlElement, XmlElement counterSignedXmlElement) + { + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + if (xmlElement == null) + { + throw new ArgumentNullException("xmlElement"); + } + if (xmlElement.HasAttribute("Id")) + { + this.id = xmlElement.GetAttribute("Id"); + } + else + { + this.id = ""; + } + + xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlNodeList = xmlElement.SelectNodes("xsd:QualifyingProperties", xmlNamespaceManager); + if (xmlNodeList.Count == 0) + { + throw new CryptographicException("QualifyingProperties missing"); + } + this.qualifyingProperties = new QualifyingProperties(); + this.qualifyingProperties.LoadXml((XmlElement)xmlNodeList.Item(0), counterSignedXmlElement); + + xmlNodeList = xmlElement.SelectNodes("xsd:QualifyingPropertiesReference", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + throw new CryptographicException("Current implementation can't handle QualifyingPropertiesReference element"); + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public XmlElement GetXml() + { + XmlDocument creationXmlDocument; + XmlElement retVal; + + creationXmlDocument = new XmlDocument(); + retVal = creationXmlDocument.CreateElement("ds", "Object", SignedXml.XmlDsigNamespaceUrl); + if (this.id != null && this.id != "") + { + retVal.SetAttribute("Id", this.id); + } + + if (this.qualifyingProperties != null && this.qualifyingProperties.HasChanged()) + { + retVal.AppendChild(creationXmlDocument.ImportNode(this.qualifyingProperties.GetXml(), true)); + } + + return retVal; + } + #endregion + } +} diff --git a/Hcs.Client/Microsoft/Xades/XadesSignedXml.cs b/Hcs.Client/Microsoft/Xades/XadesSignedXml.cs new file mode 100644 index 0000000..4556f66 --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/XadesSignedXml.cs @@ -0,0 +1,1984 @@ +// XadesSignedXml.cs +// +// XAdES Starter Kit for Microsoft .NET 3.5 (and above) +// 2010 Microsoft France +// Published under the CECILL-B Free Software license agreement. +// (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt) +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +// THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE +// AND INFORMATION REMAINS WITH THE USER. + +using System; +using System.Collections; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Security.Cryptography.Xml; +using System.Xml; +using System.Xml.Schema; + +namespace Microsoft.Xades +{ + /// + /// Types of signature standards that can be contained in XadesSignedXml class instance + /// + public enum KnownSignatureStandard + { + /// + /// XML Digital Signature (XMLDSIG) + /// + XmlDsig, + /// + /// XML Advanced Electronic Signature (XAdES) + /// + Xades + } + + /// + /// Bitmasks to indicate which checks need to be executed on the XAdES signature + /// + [FlagsAttribute] + public enum XadesCheckSignatureMasks : ulong + { + /// + /// Check the signature of the underlying XMLDSIG signature + /// + CheckXmldsigSignature = 0x01, + /// + /// Validate the XML representation of the signature against the XAdES and XMLDSIG schemas + /// + ValidateAgainstSchema = 0x02, + /// + /// Check to see if first XMLDSIG certificate has same hashvalue as first XAdES SignatureCertificate + /// + CheckSameCertificate = 0x04, + /// + /// Check if there is a HashDataInfo for each reference if there is a AllDataObjectsTimeStamp + /// + CheckAllReferencesExistInAllDataObjectsTimeStamp = 0x08, + /// + /// Check if the HashDataInfo of each IndividualDataObjectsTimeStamp points to existing Reference + /// + CheckAllHashDataInfosInIndividualDataObjectsTimeStamp = 0x10, + /// + /// Perform XAdES checks on contained counter signatures + /// + CheckCounterSignatures = 0x20, + /// + /// Counter signatures should all contain a reference to the parent signature SignatureValue element + /// + CheckCounterSignaturesReference = 0x40, + /// + /// Check if each ObjectReference in CommitmentTypeIndication points to Reference element + /// + CheckObjectReferencesInCommitmentTypeIndication = 0x80, + /// + /// Check if at least ClaimedRoles or CertifiedRoles present in SignerRole + /// + CheckIfClaimedRolesOrCertifiedRolesPresentInSignerRole = 0x0100, + /// + /// Check if HashDataInfo of SignatureTimeStamp points to SignatureValue + /// + CheckHashDataInfoOfSignatureTimeStampPointsToSignatureValue = 0x0200, + /// + /// Check if the QualifyingProperties Target attribute points to the signature element + /// + CheckQualifyingPropertiesTarget = 0x0400, + /// + /// Check that QualifyingProperties occur in one Object, check that there is only one QualifyingProperties and that signed properties occur in one QualifyingProperties element + /// + CheckQualifyingProperties = 0x0800, + /// + /// Check if all required HashDataInfos are present on SigAndRefsTimeStamp + /// + CheckSigAndRefsTimeStampHashDataInfos = 0x1000, + /// + /// Check if all required HashDataInfos are present on RefsOnlyTimeStamp + /// + CheckRefsOnlyTimeStampHashDataInfos = 0x2000, + /// + /// Check if all required HashDataInfos are present on ArchiveTimeStamp + /// + CheckArchiveTimeStampHashDataInfos = 0x4000, + /// + /// Check if a XAdES-C signature is also a XAdES-T signature + /// + CheckXadesCIsXadesT = 0x8000, + /// + /// Check if a XAdES-XL signature is also a XAdES-X signature + /// + CheckXadesXLIsXadesX = 0x010000, + /// + /// Check if CertificateValues match CertificateRefs + /// + CheckCertificateValuesMatchCertificateRefs = 0x020000, + /// + /// Check if RevocationValues match RevocationRefs + /// + CheckRevocationValuesMatchRevocationRefs = 0x040000, + /// + /// Do all known tests on XAdES signature + /// + AllChecks = 0xFFFFFF + } + + /// + /// Facade class for the XAdES signature library. The class inherits from + /// the System.Security.Cryptography.Xml.SignedXml class and is backwards + /// compatible with it, so this class can host xmldsig signatures and XAdES + /// signatures. The property SignatureStandard will indicate the type of the + /// signature: XMLDSIG or XAdES. + /// + public class XadesSignedXml : System.Security.Cryptography.Xml.SignedXml + { + #region Constants + /// + /// The XAdES XML namespace URI + /// + public const string XadesNamespaceUri = "http://uri.etsi.org/01903/v1.3.2#"; + + /// + /// Mandated type name for the Uri reference to the SignedProperties element + /// + // TODO: + //public const string SignedPropertiesType = "http://uri.etsi.org/01903/v1.3.2#SignedProperties"; + public const string SignedPropertiesType = "http://uri.etsi.org/01903#SignedProperties"; + #endregion + + #region Private variables + private static readonly string[] idAttrs = new string[] + { + "_id", + "_Id", + "_ID", + "id", + "Id", + "ID", + "iD" + }; + + private KnownSignatureStandard signatureStandard; + private XmlDocument cachedXadesObjectDocument; + private string signedPropertiesIdBuffer; + private string signatureValueId; + private bool validationErrorOccurred; + private string validationErrorDescription; + // TODO: + //private string signedInfoIdBuffer = null; + #endregion + + #region Public properties + /// + /// Property indicating the type of signature (XmlDsig or XAdES) + /// + public KnownSignatureStandard SignatureStandard + { + get + { + return this.signatureStandard; + } + } + + /// + /// Read-only property containing XAdES information + /// + public XadesObject XadesObject + { + get + { + XadesObject retVal = new XadesObject(); + + retVal.LoadXml(this.GetXadesObjectElement(this.GetXml()), this.GetXml()); + + return retVal; + } + } + + /// + /// Setting this property will add an ID attribute to the SignatureValue element. + /// This is required when constructing a XAdES-T signature. + /// + public string SignatureValueId + { + get + { + return this.signatureValueId; + } + set + { + this.signatureValueId = value; + } + } + + /// + /// This property allows to access and modify the unsigned properties + /// after the XAdES object has been added to the signature. + /// Because the unsigned properties are part of a location in the + /// signature that is not used when computing the signature, it is save + /// to modify them even after the XMLDSIG signature has been computed. + /// This is needed when XAdES objects that depend on the XMLDSIG + /// signature value need to be added to the signature. The + /// SignatureTimeStamp element is such a property, it can only be + /// created when the XMLDSIG signature has been computed. + /// + public UnsignedProperties UnsignedProperties + { + get + { + XmlElement dataObjectXmlElement; + System.Security.Cryptography.Xml.DataObject xadesDataObject; + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + UnsignedProperties retVal; + + retVal = new UnsignedProperties(); + xadesDataObject = this.GetXadesDataObject(); + if (xadesDataObject != null) + { + dataObjectXmlElement = xadesDataObject.GetXml(); + xmlNamespaceManager = new XmlNamespaceManager(dataObjectXmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + xmlNodeList = dataObjectXmlElement.SelectNodes("xsd:QualifyingProperties/xsd:UnsignedProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + retVal = new UnsignedProperties(); + retVal.LoadXml((XmlElement)xmlNodeList[0], (XmlElement)xmlNodeList[0]); + } + } + else + { + throw new CryptographicException("XAdES object not found. Use AddXadesObject() before accessing UnsignedProperties."); + } + + return retVal; + } + + set + { + XmlElement dataObjectXmlElement = null; + System.Security.Cryptography.Xml.DataObject xadesDataObject, newXadesDataObject; + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList qualifyingPropertiesXmlNodeList; + XmlNodeList unsignedPropertiesXmlNodeList; + + xadesDataObject = this.GetXadesDataObject(); + if (xadesDataObject != null) + { + dataObjectXmlElement = xadesDataObject.GetXml(); + xmlNamespaceManager = new XmlNamespaceManager(dataObjectXmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + qualifyingPropertiesXmlNodeList = dataObjectXmlElement.SelectNodes("xsd:QualifyingProperties", xmlNamespaceManager); + unsignedPropertiesXmlNodeList = dataObjectXmlElement.SelectNodes("xsd:QualifyingProperties/xsd:UnsignedProperties", xmlNamespaceManager); + if (unsignedPropertiesXmlNodeList.Count != 0) + { + qualifyingPropertiesXmlNodeList[0].RemoveChild(unsignedPropertiesXmlNodeList[0]); + } + qualifyingPropertiesXmlNodeList[0].AppendChild(dataObjectXmlElement.OwnerDocument.ImportNode(value.GetXml(), true)); + + newXadesDataObject = new DataObject(); + newXadesDataObject.LoadXml(dataObjectXmlElement); + xadesDataObject.Data = newXadesDataObject.Data; + } + else + { + throw new CryptographicException("XAdES object not found. Use AddXadesObject() before accessing UnsignedProperties."); + } + } + } + + /// + /// This property contains xml document node id, + /// which will be singed by XAdES + /// + public string SignedElementId { get; set; } + #endregion + + #region Constructors + /// + /// Default constructor for the XadesSignedXml class + /// + public XadesSignedXml() : base() + { + this.cachedXadesObjectDocument = null; + this.signatureStandard = KnownSignatureStandard.XmlDsig; + } + + /// + /// Constructor for the XadesSignedXml class + /// + /// XmlElement used to create the instance + public XadesSignedXml(XmlElement signatureElement) : base(signatureElement) + { + this.cachedXadesObjectDocument = null; + } + + /// + /// Constructor for the XadesSignedXml class + /// + /// XmlDocument used to create the instance + public XadesSignedXml(System.Xml.XmlDocument signatureDocument) : base(signatureDocument) + { + this.cachedXadesObjectDocument = null; + } + + /// + /// Constructor for the XadesSignedXml class + /// + /// XmlDocument used to create the instance + /// XmlDocument signed node identifier + public XadesSignedXml(System.Xml.XmlDocument signatureDocument, string signedElementId) : base(signatureDocument) + { + this.cachedXadesObjectDocument = null; + this.SignedElementId = signedElementId; + } + #endregion + + #region Public methods + + /// + /// Load state from an XML element + /// + /// The XML element from which to load the XadesSignedXml state + public new void LoadXml(System.Xml.XmlElement xmlElement) + { + this.cachedXadesObjectDocument = null; + this.signatureValueId = null; + base.LoadXml(xmlElement); + + XmlNode idAttribute = xmlElement.Attributes.GetNamedItem("Id"); + if (idAttribute != null) + { + this.Signature.Id = idAttribute.Value; + } + this.SetSignatureStandard(xmlElement); + + XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + + XmlNodeList xmlNodeList = xmlElement.SelectNodes("ds:SignatureValue", xmlNamespaceManager); + if (xmlNodeList.Count > 0) + { + if (((XmlElement)xmlNodeList[0]).HasAttribute("Id")) + { + this.signatureValueId = ((XmlElement)xmlNodeList[0]).Attributes["Id"].Value; + } + } + } + + /// + /// Returns the XML representation of the this object + /// + /// XML element containing the state of this object + public new XmlElement GetXml() + { + XmlElement retVal; + XmlNodeList xmlNodeList; + XmlNamespaceManager xmlNamespaceManager; + + retVal = base.GetXml(); + if (this.signatureValueId != null && this.signatureValueId != "") + { + //Id on Signature value is needed for XAdES-T. We inject it here. + xmlNamespaceManager = new XmlNamespaceManager(retVal.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + xmlNodeList = retVal.SelectNodes("ds:SignatureValue", xmlNamespaceManager); + if (xmlNodeList.Count > 0) + { + ((XmlElement)xmlNodeList[0]).SetAttribute("Id", this.signatureValueId); + } + } + + // Add "ds" namespace prefix to all XmlDsig nodes in the signature + SetPrefix("ds", retVal); + + return retVal; + } + + /// + /// Overridden virtual method to be able to find the nested SignedProperties + /// element inside of the XAdES object + /// + /// Document in which to find the Id + /// Value of the Id to look for + /// XmlElement with requested Id + public override XmlElement GetIdElement(XmlDocument xmlDocument, string idValue) + { + XmlElement retVal = base.GetIdElement(xmlDocument, idValue); + if (retVal != null) + return retVal; + + foreach (var customId in idAttrs) + { + var found = xmlDocument.SelectSingleNode("//*[@" + customId + "=\"" + idValue + "\"]") as XmlElement; + if (found != null) + { + return found; + } + } + + if (Signature != null && Signature.SignedInfo != null && Signature.SignatureValue != null) + { + var signature = new XmlDocument(); + signature.AppendChild(signature.ImportNode(Signature.GetXml(), true)); + signature.DocumentElement.SetAttribute("xmlns:ds", SignedXml.XmlDsigNamespaceUrl); + retVal = base.GetIdElement(signature, idValue); + if (retVal != null) + { + return retVal; + } + + // If not, search for custom ids + foreach (string idAttr in idAttrs) + { + retVal = signature.SelectSingleNode("//*[@" + idAttr + "=\"" + idValue + "\"]") as XmlElement; + if (retVal != null) + { + return retVal; + } + } + } + + if (idValue == this.signedPropertiesIdBuffer) + { + var xmlDocumentCloned = new XmlDocument(); + xmlDocumentCloned.LoadXml(xmlDocument.OuterXml); + + var signedDataContainer = this.GetIdElement(xmlDocumentCloned, SignedElementId); + signedDataContainer.InsertBefore(xmlDocumentCloned.ImportNode(cachedXadesObjectDocument.DocumentElement, true), signedDataContainer.FirstChild); + + // TODO: + //xmlDocumentCloned.DocumentElement.AppendChild(xmlDocumentCloned.ImportNode(cachedXadesObjectDocument.DocumentElement, true)); + + retVal = base.GetIdElement(xmlDocumentCloned, idValue); + if (retVal != null) + { + return retVal; + } + + // If not, search for custom ids + foreach (string idAttr in idAttrs) + { + retVal = this.cachedXadesObjectDocument.SelectSingleNode("//*[@" + idAttr + "=\"" + idValue + "\"]") as XmlElement; + if (retVal != null) + { + break; + } + } + } + else + { + if (xmlDocument != null) + { + retVal = base.GetIdElement(xmlDocument, idValue); + if (retVal != null) + { + return retVal; + } + + // If not, search for custom ids + foreach (string idAttr in idAttrs) + { + retVal = xmlDocument.SelectSingleNode("//*[@" + idAttr + "=\"" + idValue + "\"]") as XmlElement; + if (retVal != null) + { + break; + } + } + } + } + + return retVal; + } + + /// + /// Add a XAdES object to the signature + /// + /// XAdES object to add to signature + public void AddXadesObject(XadesObject xadesObject) + { + Reference reference; + DataObject dataObject; + XmlElement bufferXmlElement; + + if (this.SignatureStandard != KnownSignatureStandard.Xades) + { + dataObject = new DataObject(); + dataObject.Id = xadesObject.Id; + dataObject.Data = xadesObject.GetXml().ChildNodes; + this.AddObject(dataObject); + + reference = new Reference(); + reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411"; + signedPropertiesIdBuffer = xadesObject.QualifyingProperties.SignedProperties.Id; + reference.Uri = "#" + signedPropertiesIdBuffer; + reference.Type = SignedPropertiesType; + this.AddReference(reference); + + this.cachedXadesObjectDocument = new XmlDocument(); + bufferXmlElement = xadesObject.GetXml(); + + // Add "ds" namespace prefix to all XmlDsig nodes in the XAdES object + SetPrefix("ds", bufferXmlElement); + + this.cachedXadesObjectDocument.PreserveWhitespace = true; + this.cachedXadesObjectDocument.LoadXml(bufferXmlElement.OuterXml); + + this.signatureStandard = KnownSignatureStandard.Xades; + } + else + { + throw new CryptographicException("Can't add XAdES object, the signature already contains a XAdES object"); + } + } + + /// + /// Additional tests for XAdES signatures. These tests focus on + /// XMLDSIG verification and correct form of the XAdES XML structure + /// (schema validation and completeness as defined by the XAdES standard). + /// + /// + /// Because of the fact that the XAdES library is intentionally + /// independent of standards like TSP (RFC3161) or OCSP (RFC2560), + /// these tests do NOT include any verification of timestamps nor OCSP + /// responses. + /// These checks are important and have to be done in the application + /// built on top of the XAdES library. + /// + /// Thrown when the signature is not + /// a XAdES signature. SignatureStandard should be equal to + /// KnownSignatureStandard.Xades. + /// Use the CheckSignature method for non-XAdES signatures. + /// Bitmask to indicate which + /// tests need to be done. This function will call a public virtual + /// methods for each bit that has been set in this mask. + /// See the XadesCheckSignatureMasks + /// enum for the bitmask definitions. The virtual test method associated + /// with a bit in the mask has the same name as enum value name. + /// If the function returns true the check was OK. If the + /// check fails an exception with a explanatory message is thrown. + public bool XadesCheckSignature(XadesCheckSignatureMasks xadesCheckSignatureMasks) + { + bool retVal; + + retVal = true; + if (this.SignatureStandard != KnownSignatureStandard.Xades) + { + throw new Exception("SignatureStandard is not XAdES. CheckSignature returned: " + this.CheckSignature()); + } + else + { + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckXmldsigSignature) != 0) + { + retVal &= this.CheckXmldsigSignature(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.ValidateAgainstSchema) != 0) + { + retVal &= this.ValidateAgainstSchema(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckSameCertificate) != 0) + { + retVal &= this.CheckSameCertificate(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckAllReferencesExistInAllDataObjectsTimeStamp) != 0) + { + retVal &= this.CheckAllReferencesExistInAllDataObjectsTimeStamp(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckAllHashDataInfosInIndividualDataObjectsTimeStamp) != 0) + { + retVal &= this.CheckAllHashDataInfosInIndividualDataObjectsTimeStamp(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckCounterSignatures) != 0) + { + retVal &= this.CheckCounterSignatures(xadesCheckSignatureMasks); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckCounterSignaturesReference) != 0) + { + retVal &= this.CheckCounterSignaturesReference(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckObjectReferencesInCommitmentTypeIndication) != 0) + { + retVal &= this.CheckObjectReferencesInCommitmentTypeIndication(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckIfClaimedRolesOrCertifiedRolesPresentInSignerRole) != 0) + { + retVal &= this.CheckIfClaimedRolesOrCertifiedRolesPresentInSignerRole(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckHashDataInfoOfSignatureTimeStampPointsToSignatureValue) != 0) + { + retVal &= this.CheckHashDataInfoOfSignatureTimeStampPointsToSignatureValue(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckQualifyingPropertiesTarget) != 0) + { + retVal &= this.CheckQualifyingPropertiesTarget(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckQualifyingProperties) != 0) + { + retVal &= this.CheckQualifyingProperties(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckSigAndRefsTimeStampHashDataInfos) != 0) + { + retVal &= this.CheckSigAndRefsTimeStampHashDataInfos(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckRefsOnlyTimeStampHashDataInfos) != 0) + { + retVal &= this.CheckRefsOnlyTimeStampHashDataInfos(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckArchiveTimeStampHashDataInfos) != 0) + { + retVal &= this.CheckArchiveTimeStampHashDataInfos(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckXadesCIsXadesT) != 0) + { + retVal &= this.CheckXadesCIsXadesT(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckXadesXLIsXadesX) != 0) + { + retVal &= this.CheckXadesXLIsXadesX(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckCertificateValuesMatchCertificateRefs) != 0) + { + retVal &= this.CheckCertificateValuesMatchCertificateRefs(); + } + if ((xadesCheckSignatureMasks & XadesCheckSignatureMasks.CheckRevocationValuesMatchRevocationRefs) != 0) + { + retVal &= this.CheckRevocationValuesMatchRevocationRefs(); + } + } + + return retVal; + } + + #region XadesCheckSignature routines + /// + /// Check the signature of the underlying XMLDSIG signature + /// + /// If the function returns true the check was OK + public virtual bool CheckXmldsigSignature() + { + bool retVal = false; + // TODO: + //KeyInfo keyInfo = new KeyInfo(); + //X509Certificate xmldsigCert = new X509Certificate(System.Text.Encoding.ASCII.GetBytes(this.KeyInfo.GetXml().InnerText)); + //keyInfo.AddClause(new KeyInfoX509Data(xmldsigCert)); + //this.KeyInfo = keyInfo; + retVal = this.CheckSignature(); + if (retVal == false) + { + throw new CryptographicException("CheckXmldsigSignature() failed"); + } + + return retVal; + } + + /// + /// Validate the XML representation of the signature against the XAdES and XMLDSIG schemas + /// + /// If the function returns true the check was OK + public virtual bool ValidateAgainstSchema() + { + bool retValue = false; + + Assembly assembly = Assembly.GetExecutingAssembly(); + XmlSchemaSet schemaSet = new XmlSchemaSet(); + XmlSchema xmlSchema; + Stream schemaStream; + + NameTable xadesNameTable; + XmlNamespaceManager xmlNamespaceManager; + XmlParserContext xmlParserContext; + + this.validationErrorOccurred = false; + this.validationErrorDescription = ""; + + try + { + schemaStream = assembly.GetManifestResourceStream("Microsoft.Xades.xmldsig-core-schema.xsd"); + xmlSchema = XmlSchema.Read(schemaStream, new ValidationEventHandler(this.SchemaValidationHandler)); + schemaSet.Add(xmlSchema); + schemaStream.Close(); + + + schemaStream = assembly.GetManifestResourceStream("Microsoft.Xades.XAdES.xsd"); + xmlSchema = XmlSchema.Read(schemaStream, new ValidationEventHandler(this.SchemaValidationHandler)); + schemaSet.Add(xmlSchema); + schemaStream.Close(); + + if (this.validationErrorOccurred) + { + throw new CryptographicException("Schema read validation error: " + this.validationErrorDescription); + } + } + catch (Exception exception) + { + throw new CryptographicException("Problem during access of validation schemas", exception); + } + + XmlReaderSettings xmlReaderSettings = new XmlReaderSettings(); + xmlReaderSettings.ValidationEventHandler += new ValidationEventHandler(this.XmlValidationHandler); + xmlReaderSettings.ValidationType = ValidationType.Schema; + xmlReaderSettings.Schemas = schemaSet; + xmlReaderSettings.ConformanceLevel = ConformanceLevel.Auto; + + xadesNameTable = new NameTable(); + xmlNamespaceManager = new XmlNamespaceManager(xadesNameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + xmlParserContext = new XmlParserContext(null, xmlNamespaceManager, null, XmlSpace.None); + + XmlTextReader txtReader = new XmlTextReader(this.GetXml().OuterXml, XmlNodeType.Element, xmlParserContext); + XmlReader reader = XmlReader.Create(txtReader, xmlReaderSettings); + try + { + while (reader.Read()) ; + if (this.validationErrorOccurred) + { + throw new CryptographicException("Schema validation error: " + this.validationErrorDescription); + } + } + catch (Exception exception) + { + throw new CryptographicException("Schema validation error", exception); + } + finally + { + reader.Close(); + } + + retValue = true; + + return retValue; + } + + /// + /// Check to see if first XMLDSIG certificate has same hashvalue as first XAdES SignatureCertificate + /// + /// If the function returns true the check was OK + public virtual bool CheckSameCertificate() + { + bool retVal = false; + + // TODO: + //KeyInfoX509Data keyInfoX509Data = new KeyInfoX509Data(); + //keyInfoX509Data.LoadXml(this.KeyInfo.GetXml()); + //if (keyInfoX509Data.Certificates.Count <= 0) + //{ + // throw new CryptographicException("Certificate not found in XMLDSIG signature while doing CheckSameCertificate()"); + //} + //string xmldsigCertHash = Convert.ToBase64String(((X509Certificate)keyInfoX509Data.Certificates[0]).GetCertHash()); + + X509Certificate xmldsigCert = new X509Certificate(System.Text.Encoding.ASCII.GetBytes(this.KeyInfo.GetXml().InnerText)); + string xmldsigCertHash = Convert.ToBase64String(xmldsigCert.GetCertHash()); + + CertCollection xadesSigningCertificateCollection = this.XadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties.SigningCertificate.CertCollection; + if (xadesSigningCertificateCollection.Count <= 0) + { + throw new CryptographicException("Certificate not found in SigningCertificate element while doing CheckSameCertificate()"); + } + string xadesCertHash = Convert.ToBase64String(((Cert)xadesSigningCertificateCollection[0]).CertDigest.DigestValue); + + if (String.Compare(xmldsigCertHash, xadesCertHash, true, CultureInfo.InvariantCulture) != 0) + { + throw new CryptographicException("Certificate in XMLDSIG signature doesn't match certificate in SigningCertificate element"); + } + retVal = true; + + return retVal; + } + + /// + /// Check if there is a HashDataInfo for each reference if there is a AllDataObjectsTimeStamp + /// + /// If the function returns true the check was OK + public virtual bool CheckAllReferencesExistInAllDataObjectsTimeStamp() + { + AllDataObjectsTimeStampCollection allDataObjectsTimeStampCollection; + bool allHashDataInfosExist; + TimeStamp timeStamp; + int timeStampCounter; + bool retVal; + + allHashDataInfosExist = true; + retVal = false; + allDataObjectsTimeStampCollection = this.XadesObject.QualifyingProperties.SignedProperties.SignedDataObjectProperties.AllDataObjectsTimeStampCollection; + if (allDataObjectsTimeStampCollection.Count > 0) + { + for (timeStampCounter = 0; allHashDataInfosExist && (timeStampCounter < allDataObjectsTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = allDataObjectsTimeStampCollection[timeStampCounter]; + allHashDataInfosExist &= this.CheckHashDataInfosForTimeStamp(timeStamp); + } + if (!allHashDataInfosExist) + { + throw new CryptographicException("At least one HashDataInfo is missing in AllDataObjectsTimeStamp element"); + } + } + retVal = true; + + return retVal; + } + + /// + /// Check if the HashDataInfo of each IndividualDataObjectsTimeStamp points to existing Reference + /// + /// If the function returns true the check was OK + public virtual bool CheckAllHashDataInfosInIndividualDataObjectsTimeStamp() + { + IndividualDataObjectsTimeStampCollection individualDataObjectsTimeStampCollection; + bool hashDataInfoExists; + TimeStamp timeStamp; + int timeStampCounter; + bool retVal; + + hashDataInfoExists = true; + retVal = false; + individualDataObjectsTimeStampCollection = this.XadesObject.QualifyingProperties.SignedProperties.SignedDataObjectProperties.IndividualDataObjectsTimeStampCollection; + if (individualDataObjectsTimeStampCollection.Count > 0) + { + for (timeStampCounter = 0; hashDataInfoExists && (timeStampCounter < individualDataObjectsTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = individualDataObjectsTimeStampCollection[timeStampCounter]; + hashDataInfoExists &= this.CheckHashDataInfosExist(timeStamp); + } + if (hashDataInfoExists == false) + { + throw new CryptographicException("At least one HashDataInfo is pointing to non-existing reference in IndividualDataObjectsTimeStamp element"); + } + } + retVal = true; + + return retVal; + } + + /// + /// Perform XAdES checks on contained counter signatures. If couter signature is XMLDSIG, only XMLDSIG check (CheckSignature()) is done. + /// + /// Check mask applied to counter signatures + /// If the function returns true the check was OK + public virtual bool CheckCounterSignatures(XadesCheckSignatureMasks counterSignatureMask) + { + CounterSignatureCollection counterSignatureCollection; + XadesSignedXml counterSignature; + bool retVal; + + retVal = true; + counterSignatureCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.CounterSignatureCollection; + for (int counterSignatureCounter = 0; (retVal == true) && (counterSignatureCounter < counterSignatureCollection.Count); counterSignatureCounter++) + { + counterSignature = counterSignatureCollection[counterSignatureCounter]; + + if (counterSignature.signatureStandard == KnownSignatureStandard.Xades) + { + retVal &= counterSignature.XadesCheckSignature(counterSignatureMask); + } + else + { + retVal &= counterSignature.CheckSignature(); + } + } + if (retVal == false) + { + throw new CryptographicException("XadesCheckSignature() failed on at least one counter signature"); + } + retVal = true; + + return retVal; + } + + /// + /// Counter signatures should all contain a reference to the parent signature SignatureValue element + /// + /// If the function returns true the check was OK + public virtual bool CheckCounterSignaturesReference() + { + CounterSignatureCollection counterSignatureCollection; + XadesSignedXml counterSignature; + string referenceUri; + ArrayList parentSignatureValueChain; + bool referenceToParentSignatureFound; + bool retVal; + + retVal = true; + parentSignatureValueChain = new ArrayList(); + parentSignatureValueChain.Add("#" + this.signatureValueId); + counterSignatureCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.CounterSignatureCollection; + for (int counterSignatureCounter = 0; (retVal == true) && (counterSignatureCounter < counterSignatureCollection.Count); counterSignatureCounter++) + { + counterSignature = counterSignatureCollection[counterSignatureCounter]; + referenceToParentSignatureFound = false; + for (int referenceCounter = 0; referenceToParentSignatureFound == false && (referenceCounter < counterSignature.SignedInfo.References.Count); referenceCounter++) + { + referenceUri = ((Reference)counterSignature.SignedInfo.References[referenceCounter]).Uri; + if (parentSignatureValueChain.BinarySearch(referenceUri) >= 0) + { + referenceToParentSignatureFound = true; + } + parentSignatureValueChain.Add("#" + counterSignature.SignatureValueId); + parentSignatureValueChain.Sort(); + } + retVal = referenceToParentSignatureFound; + } + if (retVal == false) + { + throw new CryptographicException("CheckCounterSignaturesReference() failed on at least one counter signature"); + } + retVal = true; + + return retVal; + } + + /// + /// Check if each ObjectReference in CommitmentTypeIndication points to Reference element + /// + /// If the function returns true the check was OK + public virtual bool CheckObjectReferencesInCommitmentTypeIndication() + { + CommitmentTypeIndicationCollection commitmentTypeIndicationCollection; + CommitmentTypeIndication commitmentTypeIndication; + bool objectReferenceOK; + bool retVal; + + retVal = true; + commitmentTypeIndicationCollection = this.XadesObject.QualifyingProperties.SignedProperties.SignedDataObjectProperties.CommitmentTypeIndicationCollection; + if (commitmentTypeIndicationCollection.Count > 0) + { + for (int commitmentTypeIndicationCounter = 0; (retVal == true) && (commitmentTypeIndicationCounter < commitmentTypeIndicationCollection.Count); commitmentTypeIndicationCounter++) + { + commitmentTypeIndication = commitmentTypeIndicationCollection[commitmentTypeIndicationCounter]; + objectReferenceOK = true; + foreach (ObjectReference objectReference in commitmentTypeIndication.ObjectReferenceCollection) + { + objectReferenceOK &= this.CheckObjectReference(objectReference); + } + retVal = objectReferenceOK; + } + if (retVal == false) + { + throw new CryptographicException("At least one ObjectReference in CommitmentTypeIndication did not point to a Reference"); + } + } + + return retVal; + } + + /// + /// Check if at least ClaimedRoles or CertifiedRoles present in SignerRole + /// + /// If the function returns true the check was OK + public virtual bool CheckIfClaimedRolesOrCertifiedRolesPresentInSignerRole() + { + SignerRole signerRole; + bool retVal; + + retVal = false; + signerRole = this.XadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties.SignerRole; + if (signerRole != null) + { + if (signerRole.CertifiedRoles != null) + { + retVal = (signerRole.CertifiedRoles.CertifiedRoleCollection.Count > 0); + } + if (retVal == false) + { + if (signerRole.ClaimedRoles != null) + { + retVal = (signerRole.ClaimedRoles.ClaimedRoleCollection.Count > 0); + } + } + if (retVal == false) + { + throw new CryptographicException("SignerRole element must contain at least one CertifiedRole or ClaimedRole element"); + } + } + else + { + retVal = true; + } + + return retVal; + } + + /// + /// Check if HashDataInfo of SignatureTimeStamp points to SignatureValue + /// + /// If the function returns true the check was OK + public virtual bool CheckHashDataInfoOfSignatureTimeStampPointsToSignatureValue() + { + SignatureTimeStampCollection signatureTimeStampCollection; + bool hashDataInfoPointsToSignatureValue; + TimeStamp timeStamp; + int timeStampCounter; + bool retVal; + + hashDataInfoPointsToSignatureValue = true; + retVal = false; + signatureTimeStampCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.SignatureTimeStampCollection; + if (signatureTimeStampCollection.Count > 0) + { + for (timeStampCounter = 0; hashDataInfoPointsToSignatureValue && (timeStampCounter < signatureTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = signatureTimeStampCollection[timeStampCounter]; + hashDataInfoPointsToSignatureValue &= this.CheckHashDataInfoPointsToSignatureValue(timeStamp); + } + if (hashDataInfoPointsToSignatureValue == false) + { + throw new CryptographicException("HashDataInfo of SignatureTimeStamp doesn't point to signature value element"); + } + } + retVal = true; + + return retVal; + } + + /// + /// Check if the QualifyingProperties Target attribute points to the signature element + /// + /// If the function returns true the check was OK + public virtual bool CheckQualifyingPropertiesTarget() + { + string qualifyingPropertiesTarget; + bool retVal; + + retVal = true; + qualifyingPropertiesTarget = this.XadesObject.QualifyingProperties.Target; + if (this.Signature.Id == null) + { + retVal = false; + } + else + { + if (qualifyingPropertiesTarget != ("#" + this.Signature.Id)) + { + retVal = false; + } + } + if (retVal == false) + { + throw new CryptographicException("Qualifying properties target doesn't point to signature element or signature element doesn't have an Id"); + } + + return retVal; + } + + /// + /// Check that QualifyingProperties occur in one Object, check that there is only one QualifyingProperties and that signed properties occur in one QualifyingProperties element + /// + /// If the function returns true the check was OK + public virtual bool CheckQualifyingProperties() + { + XmlElement signatureElement; + XmlNamespaceManager xmlNamespaceManager; + XmlNodeList xmlNodeList; + + signatureElement = this.GetXml(); + xmlNamespaceManager = new XmlNamespaceManager(signatureElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + xmlNodeList = signatureElement.SelectNodes("ds:Object/xsd:QualifyingProperties", xmlNamespaceManager); + if (xmlNodeList.Count > 1) + { + throw new CryptographicException("More than one Object contains a QualifyingProperties element"); + } + + return true; + } + + /// + /// Check if all required HashDataInfos are present on SigAndRefsTimeStamp + /// + /// If the function returns true the check was OK + public virtual bool CheckSigAndRefsTimeStampHashDataInfos() + { + SignatureTimeStampCollection signatureTimeStampCollection; + TimeStamp timeStamp; + bool allRequiredhashDataInfosFound; + bool retVal; + + retVal = true; + signatureTimeStampCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.SigAndRefsTimeStampCollection; + if (signatureTimeStampCollection.Count > 0) + { + allRequiredhashDataInfosFound = true; + for (int timeStampCounter = 0; allRequiredhashDataInfosFound && (timeStampCounter < signatureTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = signatureTimeStampCollection[timeStampCounter]; + allRequiredhashDataInfosFound &= this.CheckHashDataInfosOfSigAndRefsTimeStamp(timeStamp); + } + if (allRequiredhashDataInfosFound == false) + { + throw new CryptographicException("At least one required HashDataInfo is missing in a SigAndRefsTimeStamp element"); + } + } + + return retVal; + } + + /// + /// Check if all required HashDataInfos are present on RefsOnlyTimeStamp + /// + /// If the function returns true the check was OK + public virtual bool CheckRefsOnlyTimeStampHashDataInfos() + { + SignatureTimeStampCollection signatureTimeStampCollection; + TimeStamp timeStamp; + bool allRequiredhashDataInfosFound; + bool retVal; + + retVal = true; + signatureTimeStampCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.RefsOnlyTimeStampCollection; + if (signatureTimeStampCollection.Count > 0) + { + allRequiredhashDataInfosFound = true; + for (int timeStampCounter = 0; allRequiredhashDataInfosFound && (timeStampCounter < signatureTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = signatureTimeStampCollection[timeStampCounter]; + allRequiredhashDataInfosFound &= this.CheckHashDataInfosOfRefsOnlyTimeStamp(timeStamp); + } + if (allRequiredhashDataInfosFound == false) + { + throw new CryptographicException("At least one required HashDataInfo is missing in a RefsOnlyTimeStamp element"); + } + } + + return retVal; + } + + /// + /// Check if all required HashDataInfos are present on ArchiveTimeStamp + /// + /// If the function returns true the check was OK + public virtual bool CheckArchiveTimeStampHashDataInfos() + { + SignatureTimeStampCollection signatureTimeStampCollection; + TimeStamp timeStamp; + bool allRequiredhashDataInfosFound; + bool retVal; + + retVal = true; + signatureTimeStampCollection = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties.ArchiveTimeStampCollection; + if (signatureTimeStampCollection.Count > 0) + { + allRequiredhashDataInfosFound = true; + for (int timeStampCounter = 0; allRequiredhashDataInfosFound && (timeStampCounter < signatureTimeStampCollection.Count); timeStampCounter++) + { + timeStamp = signatureTimeStampCollection[timeStampCounter]; + allRequiredhashDataInfosFound &= this.CheckHashDataInfosOfArchiveTimeStamp(timeStamp); + } + if (allRequiredhashDataInfosFound == false) + { + throw new CryptographicException("At least one required HashDataInfo is missing in a ArchiveTimeStamp element"); + } + } + + return retVal; + } + + /// + /// Check if a XAdES-C signature is also a XAdES-T signature + /// + /// If the function returns true the check was OK + public virtual bool CheckXadesCIsXadesT() + { + UnsignedSignatureProperties unsignedSignatureProperties; + bool retVal; + + retVal = true; + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + if (((unsignedSignatureProperties.CompleteCertificateRefs != null) && (unsignedSignatureProperties.CompleteCertificateRefs.HasChanged())) + || ((unsignedSignatureProperties.CompleteCertificateRefs != null) && (unsignedSignatureProperties.CompleteCertificateRefs.HasChanged()))) + { + if (unsignedSignatureProperties.SignatureTimeStampCollection.Count == 0) + { + throw new CryptographicException("XAdES-C signature should also contain a SignatureTimeStamp element"); + } + } + + return retVal; + } + + /// + /// Check if a XAdES-XL signature is also a XAdES-X signature + /// + /// If the function returns true the check was OK + public virtual bool CheckXadesXLIsXadesX() + { + UnsignedSignatureProperties unsignedSignatureProperties; + bool retVal; + + retVal = true; + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + if (((unsignedSignatureProperties.CertificateValues != null) && (unsignedSignatureProperties.CertificateValues.HasChanged())) + || ((unsignedSignatureProperties.RevocationValues != null) && (unsignedSignatureProperties.RevocationValues.HasChanged()))) + { + if ((unsignedSignatureProperties.SigAndRefsTimeStampCollection.Count == 0) && (unsignedSignatureProperties.RefsOnlyTimeStampCollection.Count == 0)) + { + throw new CryptographicException("XAdES-XL signature should also contain a XAdES-X element"); + } + } + + return retVal; + } + + /// + /// Check if CertificateValues match CertificateRefs + /// + /// If the function returns true the check was OK + public virtual bool CheckCertificateValuesMatchCertificateRefs() + { + SHA1Managed sha1Managed; + UnsignedSignatureProperties unsignedSignatureProperties; + ArrayList certDigests; + byte[] certDigest; + int index; + bool retVal; + + + retVal = true; + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + if ((unsignedSignatureProperties.CompleteCertificateRefs != null) && (unsignedSignatureProperties.CompleteCertificateRefs.CertRefs != null) && + (unsignedSignatureProperties.CertificateValues != null)) + { + certDigests = new ArrayList(); + foreach (Cert cert in unsignedSignatureProperties.CompleteCertificateRefs.CertRefs.CertCollection) + { + certDigests.Add(Convert.ToBase64String(cert.CertDigest.DigestValue)); + } + certDigests.Sort(); + foreach (EncapsulatedX509Certificate encapsulatedX509Certificate in unsignedSignatureProperties.CertificateValues.EncapsulatedX509CertificateCollection) + { + sha1Managed = new SHA1Managed(); + certDigest = sha1Managed.ComputeHash(encapsulatedX509Certificate.PkiData); + index = certDigests.BinarySearch(Convert.ToBase64String(certDigest)); + if (index >= 0) + { + certDigests.RemoveAt(index); + } + } + if (certDigests.Count != 0) + { + throw new CryptographicException("Not all CertificateRefs correspond to CertificateValues"); + } + } + + + return retVal; + } + + /// + /// Check if RevocationValues match RevocationRefs + /// + /// If the function returns true the check was OK + public virtual bool CheckRevocationValuesMatchRevocationRefs() + { + SHA1Managed sha1Managed; + UnsignedSignatureProperties unsignedSignatureProperties; + ArrayList crlDigests; + byte[] crlDigest; + int index; + bool retVal; + + retVal = true; + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + if ((unsignedSignatureProperties.CompleteRevocationRefs != null) && (unsignedSignatureProperties.CompleteRevocationRefs.CRLRefs != null) && + (unsignedSignatureProperties.RevocationValues != null)) + { + crlDigests = new ArrayList(); + foreach (CRLRef crlRef in unsignedSignatureProperties.CompleteRevocationRefs.CRLRefs.CRLRefCollection) + { + crlDigests.Add(Convert.ToBase64String(crlRef.CertDigest.DigestValue)); + } + crlDigests.Sort(); + foreach (CRLValue crlValue in unsignedSignatureProperties.RevocationValues.CRLValues.CRLValueCollection) + { + sha1Managed = new SHA1Managed(); + crlDigest = sha1Managed.ComputeHash(crlValue.PkiData); + index = crlDigests.BinarySearch(Convert.ToBase64String(crlDigest)); + if (index >= 0) + { + crlDigests.RemoveAt(index); + } + } + if (crlDigests.Count != 0) + { + throw new CryptographicException("Not all RevocationRefs correspond to RevocationValues"); + } + } + + return retVal; + } + #endregion + + #endregion + + #region Fix to add a namespace prefix for all XmlDsig nodes + + private void SetPrefix(String prefix, XmlNode node) + { + if (node.NamespaceURI == SignedXml.XmlDsigNamespaceUrl) + { + node.Prefix = prefix; + } + + foreach (XmlNode child in node.ChildNodes) + { + SetPrefix(prefix, child); + } + + return; + } + + /// + /// Copy of System.Security.Cryptography.Xml.SignedXml.ComputeSignature() which will end up calling + /// our own GetC14NDigest with a namespace prefix for all XmlDsig nodes + /// + public new void ComputeSignature() + { + AsymmetricAlgorithm signingKey = this.SigningKey; + if (signingKey == null) + { + throw new CryptographicException("Cryptography_Xml_LoadKeyFailed"); + } + if (this.SignedInfo.SignatureMethod == null) + { + if (!(signingKey is DSA)) + { + if (!(signingKey is RSA)) + { + throw new CryptographicException("Cryptography_Xml_CreatedKeyFailed"); + } + if (this.SignedInfo.SignatureMethod == null) + { + this.SignedInfo.SignatureMethod = "http://www.w3.org/2000/09/xmldsig#rsa-sha1"; + } + } + else + { + this.SignedInfo.SignatureMethod = "http://www.w3.org/2000/09/xmldsig#dsa-sha1"; + } + } + + HashAlgorithm hash; + var description = GetSignedInfoHash(out hash); + // + this.m_signature.SignatureValue = description.CreateFormatter(signingKey).CreateSignature(hash); + } + + private HashAlgorithm signedInfoHash = null; + + /// + /// Calculates standalone SignedInfo hash + /// + /// + /// + /// + public SignatureDescription GetSignedInfoHash(out HashAlgorithm hash) + { + SignatureDescription description; + if (signedInfoHash != null) + { + description = CryptoConfig.CreateFromName(this.SignedInfo.SignatureMethod) as SignatureDescription; + hash = signedInfoHash; + return description; + } + + this.BuildDigestedReferences(); + description = + CryptoConfig.CreateFromName(this.SignedInfo.SignatureMethod) as SignatureDescription; + if (description == null) + { + throw new CryptographicException("Cryptography_Xml_SignatureDescriptionNotCreated"); + } + hash = description.CreateDigest(); + if (hash == null) + { + throw new CryptographicException("Cryptography_Xml_CreateHashAlgorithmFailed"); + } + this.GetC14NDigest(hash, "ds"); + this.signedInfoHash = hash; + return description; + } + + /// + /// Copy of System.Security.Cryptography.Xml.SignedXml.BuildDigestedReferences() which will add a "ds" + /// namespace prefix to all XmlDsig nodes + /// + private void BuildDigestedReferences() + { + ArrayList references = this.SignedInfo.References; + + // TODO: + //this.m_refProcessed = new bool[references.Count]; + Type SignedXml_Type = typeof(SignedXml); + FieldInfo SignedXml_m_refProcessed = SignedXml_Type.GetField("m_refProcessed", BindingFlags.NonPublic | BindingFlags.Instance); + SignedXml_m_refProcessed.SetValue(this, new bool[references.Count]); + + // TODO: + //this.m_refLevelCache = new int[references.Count]; + FieldInfo SignedXml_m_refLevelCache = SignedXml_Type.GetField("m_refLevelCache", BindingFlags.NonPublic | BindingFlags.Instance); + SignedXml_m_refLevelCache.SetValue(this, new int[references.Count]); + + // TODO: + //ReferenceLevelSortOrder comparer = new ReferenceLevelSortOrder(); + Assembly System_Security_Assembly = Assembly.Load("System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); + Type ReferenceLevelSortOrder_Type = System_Security_Assembly.GetType("System.Security.Cryptography.Xml.SignedXml+ReferenceLevelSortOrder"); + ConstructorInfo ReferenceLevelSortOrder_Constructor = ReferenceLevelSortOrder_Type.GetConstructor(new Type[] { }); + Object comparer = ReferenceLevelSortOrder_Constructor.Invoke(null); + + // TODO: + //comparer.References = references; + PropertyInfo ReferenceLevelSortOrder_References = ReferenceLevelSortOrder_Type.GetProperty("References", BindingFlags.Public | BindingFlags.Instance); + ReferenceLevelSortOrder_References.SetValue(comparer, references, null); + // + + ArrayList list2 = new ArrayList(); + foreach (Reference reference in references) + { + list2.Add(reference); + } + + list2.Sort((IComparer)comparer); + + // TODO: + //CanonicalXmlNodeList refList = new CanonicalXmlNodeList(); + Type CanonicalXmlNodeList_Type = System_Security_Assembly.GetType("System.Security.Cryptography.Xml.CanonicalXmlNodeList"); + ConstructorInfo CanonicalXmlNodeList_Constructor = CanonicalXmlNodeList_Type.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { }, null); + Object refList = CanonicalXmlNodeList_Constructor.Invoke(null); + + MethodInfo CanonicalXmlNodeList_Add = CanonicalXmlNodeList_Type.GetMethod("Add", BindingFlags.Public | BindingFlags.Instance); + + foreach (DataObject obj2 in this.m_signature.ObjectList) + { + // TODO: + //refList.Add(obj2.GetXml()); + XmlElement xml = obj2.GetXml(); + SetPrefix("ds", xml); + CanonicalXmlNodeList_Add.Invoke(refList, new object[] { xml }); + } + + FieldInfo SignedXml_m_containingDocument = SignedXml_Type.GetField("m_containingDocument", BindingFlags.NonPublic | BindingFlags.Instance); + Type Reference_Type = typeof(Reference); + MethodInfo Reference_UpdateHashValue = Reference_Type.GetMethod("UpdateHashValue", BindingFlags.NonPublic | BindingFlags.Instance); + + foreach (Reference reference2 in list2) + { + if (reference2.DigestMethod == null) + { + // TODO: + //reference2.DigestMethod = "http://www.w3.org/2000/09/xmldsig#sha1"; + reference2.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411"; + } + // TODO: + //reference2.UpdateHashValue(this.m_containingDocument, refList); + object m_containingDocument = SignedXml_m_containingDocument.GetValue(this); + Reference_UpdateHashValue.Invoke(reference2, new object[] { m_containingDocument, refList }); + + if (reference2.Id != null) + { + // TODO: + //refList.Add(reference2.GetXml()); + XmlElement xml = reference2.GetXml(); + SetPrefix("ds", xml); + CanonicalXmlNodeList_Add.Invoke(refList, new object[] { xml }); + } + } + } + + /// + /// We won't call System.Security.Cryptography.Xml.SignedXml.GetC14NDigest(), as we want to use our own + /// + private byte[] GetC14NDigest(HashAlgorithm hash) + { + return null; + } + + /// + /// Copy of System.Security.Cryptography.Xml.SignedXml.GetC14NDigest() which will add a + /// namespace prefix to all XmlDsig nodes + /// + private byte[] GetC14NDigest(HashAlgorithm hash, string prefix) + { + // TODO: + //if (!this.bCacheValid || !this.SignedInfo.CacheValid) + //{ + Type SignedXml_Type = typeof(SignedXml); + FieldInfo SignedXml_bCacheValid = SignedXml_Type.GetField("bCacheValid", BindingFlags.NonPublic | BindingFlags.Instance); + bool bCacheValid = (bool)SignedXml_bCacheValid.GetValue(this); + Type SignedInfo_Type = typeof(SignedInfo); + PropertyInfo SignedInfo_CacheValid = SignedInfo_Type.GetProperty("CacheValid", BindingFlags.NonPublic | BindingFlags.Instance); + bool CacheValid = (bool)SignedInfo_CacheValid.GetValue(this.SignedInfo, null); + + FieldInfo SignedXml__digestedSignedInfo = SignedXml_Type.GetField("_digestedSignedInfo", BindingFlags.NonPublic | BindingFlags.Instance); + + if (!bCacheValid || !CacheValid) + { + // TODO: + //string securityUrl = (this.m_containingDocument == null) ? null : this.m_containingDocument.BaseURI; + FieldInfo SignedXml_m_containingDocument = SignedXml_Type.GetField("m_containingDocument", BindingFlags.NonPublic | BindingFlags.Instance); + XmlDocument m_containingDocument = (XmlDocument)SignedXml_m_containingDocument.GetValue(this); + string securityUrl = (m_containingDocument == null) ? null : m_containingDocument.BaseURI; + + // TODO: + //XmlResolver xmlResolver = this.m_bResolverSet ? this.m_xmlResolver : new XmlSecureResolver(new XmlUrlResolver(), securityUrl); + FieldInfo SignedXml_m_bResolverSet = SignedXml_Type.GetField("m_bResolverSet", BindingFlags.NonPublic | BindingFlags.Instance); + bool m_bResolverSet = (bool)SignedXml_m_bResolverSet.GetValue(this); + FieldInfo SignedXml_m_xmlResolver = SignedXml_Type.GetField("m_xmlResolver", BindingFlags.NonPublic | BindingFlags.Instance); + XmlResolver m_xmlResolver = (XmlResolver)SignedXml_m_xmlResolver.GetValue(this); + XmlResolver xmlResolver = m_bResolverSet ? m_xmlResolver : new XmlSecureResolver(new XmlUrlResolver(), securityUrl); + + // TODO: + //XmlDocument document = Utils.PreProcessElementInput(this.SignedInfo.GetXml(), xmlResolver, securityUrl); + Assembly System_Security_Assembly = Assembly.Load("System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); + Type Utils_Type = System_Security_Assembly.GetType("System.Security.Cryptography.Xml.Utils"); + MethodInfo Utils_PreProcessElementInput = Utils_Type.GetMethod("PreProcessElementInput", BindingFlags.NonPublic | BindingFlags.Static); + XmlElement xml = this.SignedInfo.GetXml(); + SetPrefix(prefix, xml); + XmlDocument document = (XmlDocument)Utils_PreProcessElementInput.Invoke(null, new object[] { xml, xmlResolver, securityUrl }); + + // TODO: + //CanonicalXmlNodeList namespaces = (this.m_context == null) ? null : Utils.GetPropagatedAttributes(this.m_context); + //FieldInfo SignedXml_m_context = SignedXml_Type.GetField("m_context", BindingFlags.NonPublic | BindingFlags.Instance); + MethodInfo Utils_GetPropagatedAttributes = Utils_Type.GetMethod("GetPropagatedAttributes", BindingFlags.NonPublic | BindingFlags.Static); + + var xmlDocumentCloned = new XmlDocument(); + xmlDocumentCloned.LoadXml(m_containingDocument.OuterXml); + + var signedDataContainer = GetIdElement(xmlDocumentCloned, SignedElementId); + signedDataContainer.InsertBefore(xmlDocumentCloned.ImportNode(document.DocumentElement, true), signedDataContainer.FirstChild); + + object namespaces = Utils_GetPropagatedAttributes.Invoke(null, new object[] { signedDataContainer.FirstChild }); + + // TODO: + //object m_context = SignedXml_m_context.GetValue(this); + //object namespaces = (m_context == null) ? null : Utils_GetPropagatedAttributes.Invoke(null, new object[] { m_context }); + + // TODO: + // Utils.AddNamespaces(document.DocumentElement, namespaces); + + Type CanonicalXmlNodeList_Type = System_Security_Assembly.GetType("System.Security.Cryptography.Xml.CanonicalXmlNodeList"); + MethodInfo Utils_AddNamespaces = Utils_Type.GetMethod("AddNamespaces", BindingFlags.NonPublic | BindingFlags.Static, null, new Type[] { typeof(XmlElement), CanonicalXmlNodeList_Type }, null); + Utils_AddNamespaces.Invoke(null, new object[] { document.DocumentElement, namespaces }); + + // TODO: + //Transform canonicalizationMethodObject = this.SignedInfo.CanonicalizationMethodObject; + System.Security.Cryptography.Xml.Transform canonicalizationMethodObject = this.SignedInfo.CanonicalizationMethodObject; + + canonicalizationMethodObject.Resolver = xmlResolver; + + // TODO: + //canonicalizationMethodObject.BaseURI = securityUrl; + Type Transform_Type = typeof(System.Security.Cryptography.Xml.Transform); + PropertyInfo Transform_BaseURI = Transform_Type.GetProperty("BaseURI", BindingFlags.NonPublic | BindingFlags.Instance); + Transform_BaseURI.SetValue(canonicalizationMethodObject, securityUrl, null); + + canonicalizationMethodObject.LoadInput(document); + + // TODO: + //this._digestedSignedInfo = canonicalizationMethodObject.GetDigestedOutput(hash); + SignedXml__digestedSignedInfo.SetValue(this, canonicalizationMethodObject.GetDigestedOutput(hash)); + + // TODO: + //this.bCacheValid = true; + SignedXml_bCacheValid.SetValue(this, true); + } + + // TODO: + //return this._digestedSignedInfo; + byte[] _digestedSignedInfo = (byte[])SignedXml__digestedSignedInfo.GetValue(this); + return _digestedSignedInfo; + } + + #endregion + + #region Private methods + + protected XmlElement GetXadesObjectElement(XmlElement signatureElement) + { + XmlElement retVal = null; + + XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(signatureElement.OwnerDocument.NameTable); //Create an XmlNamespaceManager to resolve namespace + xmlNamespaceManager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + + XmlNodeList xmlNodeList = signatureElement.SelectNodes("ds:Object/xsd:QualifyingProperties", xmlNamespaceManager); + if (xmlNodeList.Count > 0) + { + retVal = (XmlElement)xmlNodeList.Item(0).ParentNode; + } + else + { + retVal = null; + } + + return retVal; + } + + private void SetSignatureStandard(XmlElement signatureElement) + { + if (this.GetXadesObjectElement(signatureElement) != null) + { + this.signatureStandard = KnownSignatureStandard.Xades; + } + else + { + this.signatureStandard = KnownSignatureStandard.XmlDsig; + } + } + + private System.Security.Cryptography.Xml.DataObject GetXadesDataObject() + { + System.Security.Cryptography.Xml.DataObject retVal = null; + + for (int dataObjectCounter = 0; dataObjectCounter < (this.Signature.ObjectList.Count); dataObjectCounter++) + { + System.Security.Cryptography.Xml.DataObject dataObject = (System.Security.Cryptography.Xml.DataObject)this.Signature.ObjectList[dataObjectCounter]; + XmlElement dataObjectXmlElement = dataObject.GetXml(); + XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(dataObjectXmlElement.OwnerDocument.NameTable); + xmlNamespaceManager.AddNamespace("xsd", XadesSignedXml.XadesNamespaceUri); + XmlNodeList xmlNodeList = dataObjectXmlElement.SelectNodes("xsd:QualifyingProperties", xmlNamespaceManager); + if (xmlNodeList.Count != 0) + { + retVal = dataObject; + + break; + } + } + + return retVal; + } + + private void SchemaValidationHandler(object sender, ValidationEventArgs validationEventArgs) + { + this.validationErrorOccurred = true; + this.validationErrorDescription += "Validation error:\n"; + this.validationErrorDescription += "\tSeverity: " + validationEventArgs.Severity.ToString() + "\n"; + this.validationErrorDescription += "\tMessage: " + validationEventArgs.Message + "\n"; + } + + private void XmlValidationHandler(object sender, ValidationEventArgs validationEventArgs) + { + if (validationEventArgs.Severity != XmlSeverityType.Warning) + { + this.validationErrorOccurred = true; + this.validationErrorDescription += "Validation error:\n"; + this.validationErrorDescription += "\tSeverity: " + validationEventArgs.Severity.ToString() + "\n"; + this.validationErrorDescription += "\tMessage: " + validationEventArgs.Message + "\n"; + } + } + + private bool CheckHashDataInfosForTimeStamp(TimeStamp timeStamp) + { + bool retVal = true; + + for (int referenceCounter = 0; retVal == true && (referenceCounter < this.SignedInfo.References.Count); referenceCounter++) + { + string referenceId = ((Reference)this.SignedInfo.References[referenceCounter]).Id; + string referenceUri = ((Reference)this.SignedInfo.References[referenceCounter]).Uri; + if (referenceUri != ("#" + this.XadesObject.QualifyingProperties.SignedProperties.Id)) + { + bool hashDataInfoFound = false; + for (int hashDataInfoCounter = 0; hashDataInfoFound == false && (hashDataInfoCounter < timeStamp.HashDataInfoCollection.Count); hashDataInfoCounter++) + { + HashDataInfo hashDataInfo = timeStamp.HashDataInfoCollection[hashDataInfoCounter]; + hashDataInfoFound = (("#" + referenceId) == hashDataInfo.UriAttribute); + } + retVal = hashDataInfoFound; + } + } + + return retVal; + } + + private bool CheckHashDataInfosExist(TimeStamp timeStamp) + { + bool retVal = true; + + for (int hashDataInfoCounter = 0; retVal == true && (hashDataInfoCounter < timeStamp.HashDataInfoCollection.Count); hashDataInfoCounter++) + { + HashDataInfo hashDataInfo = timeStamp.HashDataInfoCollection[hashDataInfoCounter]; + bool referenceFound = false; + string referenceId; + + for (int referenceCounter = 0; referenceFound == false && (referenceCounter < this.SignedInfo.References.Count); referenceCounter++) + { + referenceId = ((Reference)this.SignedInfo.References[referenceCounter]).Id; + if (("#" + referenceId) == hashDataInfo.UriAttribute) + { + referenceFound = true; + } + } + retVal = referenceFound; + } + + return retVal; + } + + private bool CheckObjectReference(ObjectReference objectReference) + { + bool retVal = false; + + for (int referenceCounter = 0; retVal == false && (referenceCounter < this.SignedInfo.References.Count); referenceCounter++) + { + string referenceId = ((Reference)this.SignedInfo.References[referenceCounter]).Id; + if (("#" + referenceId) == objectReference.ObjectReferenceUri) + { + retVal = true; + } + } + + return retVal; + } + + private bool CheckHashDataInfoPointsToSignatureValue(TimeStamp timeStamp) + { + bool retVal = true; + foreach (HashDataInfo hashDataInfo in timeStamp.HashDataInfoCollection) + { + retVal &= (hashDataInfo.UriAttribute == ("#" + this.signatureValueId)); + } + + return retVal; + } + + private bool CheckHashDataInfosOfSigAndRefsTimeStamp(TimeStamp timeStamp) + { + UnsignedSignatureProperties unsignedSignatureProperties; + bool signatureValueHashDataInfoFound = false; + bool allSignatureTimeStampHashDataInfosFound = false; + bool completeCertificateRefsHashDataInfoFound = false; + bool completeRevocationRefsHashDataInfoFound = false; + + ArrayList signatureTimeStampIds = new ArrayList(); + + bool retVal = true; + + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + + foreach (TimeStamp signatureTimeStamp in unsignedSignatureProperties.SignatureTimeStampCollection) + { + signatureTimeStampIds.Add("#" + signatureTimeStamp.EncapsulatedTimeStamp.Id); + } + signatureTimeStampIds.Sort(); + foreach (HashDataInfo hashDataInfo in timeStamp.HashDataInfoCollection) + { + if (hashDataInfo.UriAttribute == "#" + this.signatureValueId) + { + signatureValueHashDataInfoFound = true; + } + int signatureTimeStampIdIndex = signatureTimeStampIds.BinarySearch(hashDataInfo.UriAttribute); + if (signatureTimeStampIdIndex >= 0) + { + signatureTimeStampIds.RemoveAt(signatureTimeStampIdIndex); + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteCertificateRefs.Id) + { + completeCertificateRefsHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteRevocationRefs.Id) + { + completeRevocationRefsHashDataInfoFound = true; + } + } + if (signatureTimeStampIds.Count == 0) + { + allSignatureTimeStampHashDataInfosFound = true; + } + retVal = signatureValueHashDataInfoFound && allSignatureTimeStampHashDataInfosFound && completeCertificateRefsHashDataInfoFound && completeRevocationRefsHashDataInfoFound; + + return retVal; + } + + private bool CheckHashDataInfosOfRefsOnlyTimeStamp(TimeStamp timeStamp) + { + UnsignedSignatureProperties unsignedSignatureProperties; + bool completeCertificateRefsHashDataInfoFound; + bool completeRevocationRefsHashDataInfoFound; + bool retVal; + + completeCertificateRefsHashDataInfoFound = false; + completeRevocationRefsHashDataInfoFound = false; + retVal = true; + + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + foreach (HashDataInfo hashDataInfo in timeStamp.HashDataInfoCollection) + { + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteCertificateRefs.Id) + { + completeCertificateRefsHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteRevocationRefs.Id) + { + completeRevocationRefsHashDataInfoFound = true; + } + } + retVal = completeCertificateRefsHashDataInfoFound && completeRevocationRefsHashDataInfoFound; + + return retVal; + } + + private bool CheckHashDataInfosOfArchiveTimeStamp(TimeStamp timeStamp) + { + UnsignedSignatureProperties unsignedSignatureProperties; + SignedProperties signedProperties; + + bool allReferenceHashDataInfosFound = false; + bool signedInfoHashDataInfoFound = false; + bool signedPropertiesHashDataInfoFound = false; + bool signatureValueHashDataInfoFound = false; + bool allSignatureTimeStampHashDataInfosFound = false; + bool completeCertificateRefsHashDataInfoFound = false; + bool completeRevocationRefsHashDataInfoFound = false; + bool certificatesValuesHashDataInfoFound = false; + bool revocationValuesHashDataInfoFound = false; + bool allSigAndRefsTimeStampHashDataInfosFound = false; + bool allRefsOnlyTimeStampHashDataInfosFound = false; + bool allArchiveTimeStampHashDataInfosFound = false; + bool allOlderArchiveTimeStampsFound = false; + + ArrayList referenceIds = new ArrayList(); + ArrayList signatureTimeStampIds = new ArrayList(); + ArrayList sigAndRefsTimeStampIds = new ArrayList(); + ArrayList refsOnlyTimeStampIds = new ArrayList(); + ArrayList archiveTimeStampIds = new ArrayList(); + + bool retVal = true; + + unsignedSignatureProperties = this.XadesObject.QualifyingProperties.UnsignedProperties.UnsignedSignatureProperties; + signedProperties = this.XadesObject.QualifyingProperties.SignedProperties; + + foreach (Reference reference in this.Signature.SignedInfo.References) + { + if (reference.Uri != "#" + signedProperties.Id) + { + referenceIds.Add(reference.Uri); + } + } + referenceIds.Sort(); + foreach (TimeStamp signatureTimeStamp in unsignedSignatureProperties.SignatureTimeStampCollection) + { + signatureTimeStampIds.Add("#" + signatureTimeStamp.EncapsulatedTimeStamp.Id); + } + signatureTimeStampIds.Sort(); + foreach (TimeStamp sigAndRefsTimeStamp in unsignedSignatureProperties.SigAndRefsTimeStampCollection) + { + sigAndRefsTimeStampIds.Add("#" + sigAndRefsTimeStamp.EncapsulatedTimeStamp.Id); + } + sigAndRefsTimeStampIds.Sort(); + foreach (TimeStamp refsOnlyTimeStamp in unsignedSignatureProperties.RefsOnlyTimeStampCollection) + { + refsOnlyTimeStampIds.Add("#" + refsOnlyTimeStamp.EncapsulatedTimeStamp.Id); + } + refsOnlyTimeStampIds.Sort(); + allOlderArchiveTimeStampsFound = false; + for (int archiveTimeStampCounter = 0; !allOlderArchiveTimeStampsFound && (archiveTimeStampCounter < unsignedSignatureProperties.ArchiveTimeStampCollection.Count); archiveTimeStampCounter++) + { + TimeStamp archiveTimeStamp = unsignedSignatureProperties.ArchiveTimeStampCollection[archiveTimeStampCounter]; + if (archiveTimeStamp.EncapsulatedTimeStamp.Id == timeStamp.EncapsulatedTimeStamp.Id) + { + allOlderArchiveTimeStampsFound = true; + } + else + { + archiveTimeStampIds.Add("#" + archiveTimeStamp.EncapsulatedTimeStamp.Id); + } + } + + archiveTimeStampIds.Sort(); + foreach (HashDataInfo hashDataInfo in timeStamp.HashDataInfoCollection) + { + int index = referenceIds.BinarySearch(hashDataInfo.UriAttribute); + if (index >= 0) + { + referenceIds.RemoveAt(index); + } + + // TODO: + //if (hashDataInfo.UriAttribute == "#" + this.signedInfoIdBuffer) + + if (hashDataInfo.UriAttribute == "#") + { + signedInfoHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + signedProperties.Id) + { + signedPropertiesHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + this.signatureValueId) + { + signatureValueHashDataInfoFound = true; + } + index = signatureTimeStampIds.BinarySearch(hashDataInfo.UriAttribute); + if (index >= 0) + { + signatureTimeStampIds.RemoveAt(index); + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteCertificateRefs.Id) + { + completeCertificateRefsHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CompleteRevocationRefs.Id) + { + completeRevocationRefsHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.CertificateValues.Id) + { + certificatesValuesHashDataInfoFound = true; + } + if (hashDataInfo.UriAttribute == "#" + unsignedSignatureProperties.RevocationValues.Id) + { + revocationValuesHashDataInfoFound = true; + } + index = sigAndRefsTimeStampIds.BinarySearch(hashDataInfo.UriAttribute); + if (index >= 0) + { + sigAndRefsTimeStampIds.RemoveAt(index); + } + index = refsOnlyTimeStampIds.BinarySearch(hashDataInfo.UriAttribute); + if (index >= 0) + { + refsOnlyTimeStampIds.RemoveAt(index); + } + index = archiveTimeStampIds.BinarySearch(hashDataInfo.UriAttribute); + if (index >= 0) + { + archiveTimeStampIds.RemoveAt(index); + } + } + if (referenceIds.Count == 0) + { + allReferenceHashDataInfosFound = true; + } + if (signatureTimeStampIds.Count == 0) + { + allSignatureTimeStampHashDataInfosFound = true; + } + if (sigAndRefsTimeStampIds.Count == 0) + { + allSigAndRefsTimeStampHashDataInfosFound = true; + } + if (refsOnlyTimeStampIds.Count == 0) + { + allRefsOnlyTimeStampHashDataInfosFound = true; + } + if (archiveTimeStampIds.Count == 0) + { + allArchiveTimeStampHashDataInfosFound = true; + } + + retVal = allReferenceHashDataInfosFound && signedInfoHashDataInfoFound && signedPropertiesHashDataInfoFound && + signatureValueHashDataInfoFound && allSignatureTimeStampHashDataInfosFound && completeCertificateRefsHashDataInfoFound && + completeRevocationRefsHashDataInfoFound && certificatesValuesHashDataInfoFound && revocationValuesHashDataInfoFound && + allSigAndRefsTimeStampHashDataInfosFound && allRefsOnlyTimeStampHashDataInfosFound && allArchiveTimeStampHashDataInfosFound; + + return retVal; + } + #endregion + + public SignedDataObjectProperties SignedDataObjectProperties => SignedProperties.SignedDataObjectProperties; + public SignedProperties SignedProperties => XadesObject.QualifyingProperties.SignedProperties; + public SignedSignatureProperties SignedSignatureProperties => SignedProperties.SignedSignatureProperties; + } +} diff --git a/Hcs.Client/Microsoft/Xades/xmldsig-core-schema.xsd b/Hcs.Client/Microsoft/Xades/xmldsig-core-schema.xsd new file mode 100644 index 0000000..157a8ee --- /dev/null +++ b/Hcs.Client/Microsoft/Xades/xmldsig-core-schema.xsd @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hcs.Client/Properties/AssemblyInfo.cs b/Hcs.Client/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6e2064f --- /dev/null +++ b/Hcs.Client/Properties/AssemblyInfo.cs @@ -0,0 +1,18 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Hcs.Client")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Hcs.Client")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +[assembly: Guid("3af820fd-6776-4c74-aa76-f918e60fe456")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Hcs.Client/packages.config b/Hcs.Client/packages.config new file mode 100644 index 0000000..ce4b655 --- /dev/null +++ b/Hcs.Client/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Hcs.TestApp/ClientDemo/DebtRequestsDemo.cs b/Hcs.TestApp/ClientDemo/DebtRequestsDemo.cs new file mode 100644 index 0000000..3e0352a --- /dev/null +++ b/Hcs.TestApp/ClientDemo/DebtRequestsDemo.cs @@ -0,0 +1,52 @@ +using Hcs.ClientApi; +using Hcs.ClientApi.DebtRequestsApi; +using System; + +namespace Hcs.ClientDemo +{ + public class DebtRequestsDemo + { + public static void DemoExportManySubrequests(HcsClient client) + { + Action handler = delegate (HcsDebtSubrequest s) + { + client.Log($"Получен: {s}"); + }; + + var date = new DateTime(2024, 1, 22); + int n = client.DebtRequests.ExportDSRsByPeriodOfSending(date, date, null, handler).Result; + + client.Log($"Получено запросов: {n}"); + } + + public static void DemoExportOneDebtRequest(HcsClient client) + { + HcsDebtSubrequest s; + if (client.IsPPAK) s = client.DebtRequests.ExportDSRByRequestNumber("01202411454682").Result; + else s = client.DebtRequests.ExportDSRByRequestNumber("0120241061").Result; + client.Log($"Получен: {s}"); + } + + public static void DemoImportOneDebtResponse(HcsClient client) + { + HcsDebtSubrequest s; + if (client.IsPPAK) s = client.DebtRequests.ExportDSRByRequestNumber("01202411454682").Result; + else s = client.DebtRequests.ExportDSRByRequestNumber("0120241061").Result; + if (s == null) Console.WriteLine("Ошибка: подзапрос не найден"); + + var response = new HcsDebtResponse(); + response.TransportGuid = Guid.NewGuid(); + response.SubrequestGuid = s.SubrequestGuid; + + // Если указывается наличие долга обязательно указание ФИО должников + response.HasDebt = false; + //response.PersonalData = new HcsPersonalData[] { new HcsPersonalData() { + // FirstName = "A", MiddleName = "B", LastName = "C" + //}}; + + var result = client.DebtRequests.ImportDSRResponse(response).Result; + if (result.HasError) Console.WriteLine("Возникла ошибка по время отправки: " + result.Error); + else Console.WriteLine("Запрос успешно выполнен: " + result.UpdateDate); + } + } +} diff --git a/Hcs.TestApp/ClientDemo/FileStoreDemo.cs b/Hcs.TestApp/ClientDemo/FileStoreDemo.cs new file mode 100644 index 0000000..32bbca0 --- /dev/null +++ b/Hcs.TestApp/ClientDemo/FileStoreDemo.cs @@ -0,0 +1,67 @@ +using Hcs.ClientApi; +using System; +using System.IO; +using System.Threading; + +namespace Hcs.ClientDemo +{ + public class FileStoreDemo + { + public static void DemoDownloadFile(HcsClient hcsClient) + { + Guid fileGuid = new Guid("e4c3b39f-ad59-11ef-bc8e-0242ac120002"); + + var file = hcsClient.FileStoreService.DownloadFile( + fileGuid, HcsFileStoreContext.homemanagement, CancellationToken.None).Result; + Console.WriteLine("\nКонтент len=" + file.Length + + " type=" + file.ContentType + " streamLength=" + file.Stream.Length + + " hash=" + hcsClient.ComputeGost94Hash(file.Stream)); + + using (var s = new FileStream(@"D:\temp\teplo0.pdf", FileMode.CreateNew, FileAccess.Write)) + { + file.Stream.Seek(0, SeekOrigin.Begin); + file.Stream.CopyTo(s); + s.Close(); + } + } + + public static void DemoUploadFile(HcsClient hcsClient) + { + string sourceFileName = @"D:\temp\Проект договора.docx"; + + var contentType = HcsFile.GetMimeContentTypeForFileName(sourceFileName); + if (contentType == null) throw new HcsException("Не найден тип mime для файла"); + + Console.WriteLine("Выгружаем файл: " + sourceFileName); + using (var stream = new FileStream(sourceFileName, FileMode.Open, FileAccess.Read)) + { + var file = new HcsFile(Path.GetFileName(sourceFileName), contentType, stream); + var guid = hcsClient.FileStoreService.UploadFile( + file, HcsFileStoreContext.homemanagement, CancellationToken.None).Result; + Console.WriteLine("Выгруженный файл GUID=" + guid); + } + } + + public static void DemoGetFileLength(HcsClient hcsClient) + { + Guid fileGuid = new Guid("33ddc355-60bd-4537-adf6-fbb31322e16f"); + var length = hcsClient.FileStoreService.GetFileLength( + HcsFileStoreContext.homemanagement, fileGuid, CancellationToken.None).Result; + Console.WriteLine($"\nДлина = {length} для файла с GUID " + fileGuid); + } + + public static void DemoGostHash(HcsClient hcsClient) + { + PrintFileHash(hcsClient, @"D:\temp\teplo0.pdf"); + } + + public static void PrintFileHash(HcsClient hcsClient, string fileName) + { + using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) + { + var hash = hcsClient.ComputeGost94Hash(stream); + Console.WriteLine($"{fileName} hash=" + hash + " len=" + new FileInfo(fileName).Length); + } + } + } +} diff --git a/Hcs.TestApp/ClientDemo/HouseManagementDemo.cs b/Hcs.TestApp/ClientDemo/HouseManagementDemo.cs new file mode 100644 index 0000000..03c4d67 --- /dev/null +++ b/Hcs.TestApp/ClientDemo/HouseManagementDemo.cs @@ -0,0 +1,153 @@ +using Hcs.ClientApi; +using Hcs.ClientApi.DataTypes; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Hcs.ClientDemo +{ + public class HouseManagementDemo + { + public static void DemoExportOrgRegistry(HcsClient client) + { + string ogrn = "1061001043421"; + string kpp = ""; + var orgs = client.OrgRegistryCommon.GetOrgByOgrn(ogrn, kpp).Result; + Console.WriteLine($"Организация с ОГРН={ogrn} имеет {orgs.Count()} orgs:"); + foreach (var org in orgs) + Console.WriteLine($" {org}"); + } + + public static void DemoExportOneContract(HcsClient client) + { + var guid = new Guid("2d393e41-b7e2-4125-9593-c4127617e3f8"); + var договор = client.HouseManagement.ПолучитьДоговорРСО(guid).Result; + Console.WriteLine($"Получен договор №{договор.НомерДоговора} Статус={договор.СтатусВерсииДоговора}"); + + if (договор.ПриложенияДоговора != null && договор.ПриложенияДоговора.Length > 0) + { + var приложение = договор.ПриложенияДоговора[0]; + Console.WriteLine($"Приложение: {приложение.ИмяПриложения} HASH={приложение.ХэшПриложения}"); + FileStoreDemo.PrintFileHash(client, $"d:\\\\temp\\{приложение.ИмяПриложения}"); + } + } + + public static void DemoTerminateOneContract(HcsClient client) + { + var guid = new Guid("c7418f95-8ec5-40a3-9474-c4924e17409e"); + var договор = client.HouseManagement.ПолучитьДоговорРСО(guid).Result; + Console.WriteLine($"Получен договор №{договор.НомерДоговора} Статус={договор.СтатусВерсииДоговора}"); + + var d = client.HouseManagement.РасторгнутьДоговор(договор, new DateTime(2019, 4, 1)).Result; + Console.WriteLine($"Дата внесения расторжения договора: {d}"); + } + + public static void DemoImportNewContract(HcsClient client) + { + var договор = new ГисДоговор(); + договор.ТипДоговораРСО = ГисТипДоговораРСО.ПубличныйИлиНежилые; + договор.НомерДоговора = "100-1-41-21900-01"; + договор.ДатаЗаключения = new DateTime(2007, 7, 1); + + // TODO: Заполнить контрагента получив его GUID через OrgRegistryService по ОГРН + договор.Контрагент = new ГисКонтрагент(); + + // TODO: Заполнить хотя бы один адрес + var адреса = new List<ГисАдресныйОбъект>(); + var d = client.HouseManagement.РазместитьДоговор(договор, адреса).Result; + Console.WriteLine($"Дата внесения нового договора: {d}"); + } + + public static void DemoExportContractTrees(HcsClient client) + { + var stopwatch = System.Diagnostics.Stopwatch.StartNew(); + + Func<ГисДоговор, bool> contractFilter = (договор) => + { + if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Аннулирован) return false; + if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Расторгнут) return false; + // ГИС возвращает проекты, но не может их найти по коду + if (договор.СтатусВерсииДоговора == ГисСтатусВерсииДоговора.Проект) return false; + if ("ЭККУК" == договор.НомерДоговора) return false; + if ("ЭККЧС" == договор.НомерДоговора) return false; + if ("ЭККНСУ" == договор.НомерДоговора) return false; + return true; + }; + + var все = client.HouseManagement.ПолучитьВсеДоговорыИПриборы(contractFilter).Result; + + using (StreamWriter file = File.CreateText(@"all.json")) + { + JsonSerializer serializer = new JsonSerializer(); + serializer.Serialize(file, все); + } + + stopwatch.Stop(); + Console.WriteLine($"{все}: {stopwatch.Elapsed}"); + } + + public static void DemoExportMeteringDevices(HcsClient client) + { + Action<ГисПриборУчета> resultHandler = (прибор) => + { + Console.WriteLine("" + прибор); + }; + + // ул. Мурманская, 1А + var houseGuid = new Guid("0c94cace-2030-4b0a-97c4-de85eef83282"); + var n = client.HouseManagement.ПолучитьПриборыУчетаПоЗданию(houseGuid, resultHandler).Result; + Console.WriteLine("n = " + n); + } + + public static void DemoExportContractAddressObjects(HcsClient client) + { + Action<ГисАдресныйОбъект> resultHandler = (адрес) => + { + Console.WriteLine("" + адрес); + }; + + var гуидДоговора = new Guid("4f8b6688-ef14-43e6-99a9-846e59cd82e8"); + var договор = new ГисДоговор() { ГуидДоговора = гуидДоговора }; + var n = client.HouseManagement.ПолучитьАдресаДоговораРСО(договор, resultHandler).Result; + Console.WriteLine("n = " + n); + } + + public static void DemoExportAccounts(HcsClient client) + { + Action<ГисЛицевойСчет> resultHandler = (лс) => + { + Console.WriteLine("" + лс); + }; + + // ул. Мурманская, 1А + var houseGuid = new Guid("0c94cace-2030-4b0a-97c4-de85eef83282"); + var n = client.HouseManagement.ПолучитьЛицевыеСчетаПоЗданию(houseGuid, resultHandler).Result; + Console.WriteLine("n = " + n); + } + + public static void DemoExportSupplyResourceContracts(HcsClient client) + { + var договоры = new List<ГисДоговор>(); + Action<ГисДоговор> resultHandler = (договорРСО) => { договоры.Add(договорРСО); }; + var n = client.HouseManagement.ПолучитьДоговорыРСО(resultHandler).Result; + + договоры.Sort((x, y) => string.Compare(x.НомерДоговора, y.НомерДоговора)); + договоры.ForEach(x => Console.WriteLine(x.ToString())); + Console.WriteLine("n = " + n); + } + + public static void DemoExportOneHouse(HcsClient client) + { + // Петрозаводск, Лисицыной, 19 + var guid = Guid.Parse("6596ad9d-fee2-4c5b-8249-dbf78b0281b9"); + var здание = client.HouseManagement.ПолучитьЗданиеПоГуидФиас(guid).Result; + Console.WriteLine("ГисЗдание = " + здание); + foreach (var помещение in здание.Помещения) + { + Console.WriteLine(помещение.ToString()); + } + } + } +} diff --git a/Hcs.TestApp/ClientDemo/Program.cs b/Hcs.TestApp/ClientDemo/Program.cs new file mode 100644 index 0000000..8ed1dd2 --- /dev/null +++ b/Hcs.TestApp/ClientDemo/Program.cs @@ -0,0 +1,78 @@ +using Hcs.ClientApi; +using System; + +namespace Hcs.ClientDemo +{ + public class Program + { + /// + /// Демонстрационная программа вызова функций ГИС ЖКХ + /// + public static void Main(string[] args) + { + // Чтобы сообщения об ошибках показывались на английском языке + System.Threading.Thread.CurrentThread.CurrentUICulture = + new System.Globalization.CultureInfo("en-US"); + + var client = new HcsClient(); + client.Logger = new HcsConsoleLogger(); + + // Чтобы создавались файлы сообщений и ответов системы + //client.MessageCapture = new HcsFileWriterMessageCapture(null, client.Logger); + + var cert = client.FindCertificate(x => x.SerialNumber == "02DD0FE0006DB0C5B24666AB8F30C74780"); + if (cert == null) return; + + Console.WriteLine("Сертификат: " + cert.Subject); + + client.SetSigningCertificate(cert); + + // Промышленный или тестовый стенд + client.IsPPAK = false; + if (client.IsPPAK) + { + // GUID поставщика информации ЭКК ППАК (20.05.2022) + client.OrgPPAGUID = "488d95f6-4f6a-4e4e-b78a-ea259ef0ded2"; + // Исполнитель/cотрудник ГИСЖКХ: ЛСА/КЛА + client.ExecutorGUID = "e0cba564-b675-4077-b7da-356b18301bc2"; + } + else + { + // GUID поставщика информации ЭКК СИТ02 (18.01.2024) + client.OrgPPAGUID = "ee6b2615-c488-420c-a553-0ef31d65b77e"; + // Сотрудник тестового стенда СИТ02 + client.ExecutorGUID = "d284368e-849c-4002-a815-c8b199d35b05"; + } + +#pragma warning disable CS0162 + try + { + if (false) DebtRequestsDemo.DemoExportOneDebtRequest(client); + if (false) DebtRequestsDemo.DemoExportManySubrequests(client); + if (false) DebtRequestsDemo.DemoImportOneDebtResponse(client); + + if (false) HouseManagementDemo.DemoExportOneHouse(client); + if (false) HouseManagementDemo.DemoExportSupplyResourceContracts(client); + if (false) HouseManagementDemo.DemoExportAccounts(client); + if (false) HouseManagementDemo.DemoExportContractAddressObjects(client); + if (false) HouseManagementDemo.DemoExportMeteringDevices(client); + if (false) HouseManagementDemo.DemoExportOneContract(client); + if (false) HouseManagementDemo.DemoExportContractTrees(client); + if (false) HouseManagementDemo.DemoImportNewContract(client); + if (true) HouseManagementDemo.DemoExportOrgRegistry(client); + + if (false) FileStoreDemo.DemoDownloadFile(client); + if (false) FileStoreDemo.DemoGostHash(client); + if (false) FileStoreDemo.DemoUploadFile(client); + if (false) FileStoreDemo.DemoGetFileLength(client); + if (false) FileStoreDemo.DemoGostHash(client); + } + catch (Exception ex) + { + Console.WriteLine(ex); + Console.ReadKey(); + } +#pragma warning restore CS0162 + } + } +} diff --git a/Hcs.TestApp/Hcs.TestApp.csproj b/Hcs.TestApp/Hcs.TestApp.csproj new file mode 100644 index 0000000..7dc2c8d --- /dev/null +++ b/Hcs.TestApp/Hcs.TestApp.csproj @@ -0,0 +1,95 @@ + + + + + Debug + AnyCPU + {0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71} + Exe + Hcs + Hcs.TestApp + v4.8 + 512 + 12.0 + false + true + + + + + + + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + Hcs.ClientDemo.Program + + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + False + Microsoft .NET Framework 4.8 %28x86 и x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + {3af820fd-6776-4c74-aa76-f918e60fe456} + Hcs.Client + + + + \ No newline at end of file diff --git a/Hcs.TestApp/Properties/AssemblyInfo.cs b/Hcs.TestApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a237aa6 --- /dev/null +++ b/Hcs.TestApp/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("GisGkh.ClientDemo")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("GisGkh.ClientDemo")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +[assembly: Guid("0ee8594d-d76e-4ee2-aca2-87c49cf1fc71")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Hcs.sln b/Hcs.sln new file mode 100644 index 0000000..c6b32c3 --- /dev/null +++ b/Hcs.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36327.8 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hcs.Client", "Hcs.Client\Hcs.Client.csproj", "{3AF820FD-6776-4C74-AA76-F918E60FE456}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hcs.TestApp", "Hcs.TestApp\Hcs.TestApp.csproj", "{0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3AF820FD-6776-4C74-AA76-F918E60FE456}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AF820FD-6776-4C74-AA76-F918E60FE456}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AF820FD-6776-4C74-AA76-F918E60FE456}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AF820FD-6776-4C74-AA76-F918E60FE456}.Release|Any CPU.Build.0 = Release|Any CPU + {0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EE8594D-D76E-4EE2-ACA2-87C49CF1FC71}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B975B2D1-CEB7-4ABF-81AC-3C46D57969EC} + EndGlobalSection +EndGlobal