Пример #1
0
        /// <summary>
        /// Метод получение результата
        /// </summary>
        /// <param name="ack"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public bool TryGetResult(IAck ack, out IGetStateResult result)
        {
            using (var client = new HouseManagementPortsTypeAsyncClient(_binding, _remoteAddress)) {
                client.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior());

                if (!base._config.IsPPAK)
                {
                    client.ClientCredentials.UserName.UserName = Constants.UserAuth.Name;
                    client.ClientCredentials.UserName.Password = Constants.UserAuth.Passwd;
                }

                if (!base._config.UseTunnel)
                {
                    client.ClientCredentials.ClientCertificate.SetCertificate(
                        StoreLocation.CurrentUser,
                        StoreName.My,
                        X509FindType.FindByThumbprint,
                        base._config.CertificateThumbprint);
                }

                var responce = client.getState(new getStateRequest1 {
                    RequestHeader   = RequestHelper.Create <RequestHeader>(_config.OrgPPAGUID, _config.Role),
                    getStateRequest = new getStateRequest {
                        MessageGUID = ack.MessageGUID
                    }
                });

                if (responce.getStateResult.RequestState == 3)
                {
                    result = responce.getStateResult;
                    return(true);
                }

                result = null;
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// Метод отравления запроса
        /// </summary>
        /// <param name="request">Запрос</param>
        /// <returns>Объект реализующий IAck</returns>
        public IAck Send(object request)
        {
            using (var client = new HouseManagementPortsTypeAsyncClient(_binding, _remoteAddress)) {
                client.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior());

                if (!base._config.IsPPAK)
                {
                    client.ClientCredentials.UserName.UserName = Constants.UserAuth.Name;
                    client.ClientCredentials.UserName.Password = Constants.UserAuth.Passwd;
                }

                if (!base._config.UseTunnel)
                {
                    client.ClientCredentials.ClientCertificate.SetCertificate(
                        StoreLocation.CurrentUser,
                        StoreName.My,
                        X509FindType.FindByThumbprint,
                        base._config.CertificateThumbprint);
                }

                switch (request.GetType().Name)
                {
                case nameof(importAccountDataRequest):
                    return(client.importAccountData(request as importAccountDataRequest).AckRequest.Ack);

                case nameof(importCharterDataRequest):
                    return(client.importCharterData(request as importCharterDataRequest).AckRequest.Ack);

                case nameof(importContractDataRequest):
                    return(client.importContractData(request as importContractDataRequest).AckRequest.Ack);

                case nameof(importHouseOMSDataRequest):
                    return(client.importHouseOMSData(request as importHouseOMSDataRequest).AckRequest.Ack);

                case nameof(importHouseRSODataRequest):
                    return(client.importHouseRSOData(request as importHouseRSODataRequest).AckRequest.Ack);

                case nameof(importHouseUODataRequest):
                    return(client.importHouseUOData(request as importHouseUODataRequest).AckRequest.Ack);

                case nameof(importMeteringDeviceDataRequest1):
                    return(client.importMeteringDeviceData(request as importMeteringDeviceDataRequest1).AckRequest.Ack);

                case nameof(importNotificationDataRequest):
                    return(client.importNotificationData(request as importNotificationDataRequest).AckRequest.Ack);

                case nameof(importPublicPropertyContractRequest1):
                    return(client.importPublicPropertyContract(request as importPublicPropertyContractRequest1).AckRequest.Ack);

                case nameof(importSupplyResourceContractDataRequest):
                    return(client.importSupplyResourceContractData(request as importSupplyResourceContractDataRequest).AckRequest.Ack);

                case nameof(importVotingProtocolRequest1):
                    return(client.importVotingProtocol(request as importVotingProtocolRequest1).AckRequest.Ack);

                case nameof(exportAccountDataRequest):
                    return(client.exportAccountData(request as exportAccountDataRequest).AckRequest.Ack);

                case nameof(exportAccountIndividualServicesRequest1):
                    return(client.exportAccountIndividualServices(request as exportAccountIndividualServicesRequest1).AckRequest.Ack);

                case nameof(exportCAChDataRequest):
                    return(client.exportCAChData(request as exportCAChDataRequest).AckRequest.Ack);

                case nameof(exportHouseDataRequest):
                    return(client.exportHouseData(request as exportHouseDataRequest).AckRequest.Ack);

                case nameof(exportMeteringDeviceDataRequest1):
                    return(client.exportMeteringDeviceData(request as exportMeteringDeviceDataRequest1).AckRequest.Ack);

                case nameof(exportStatusCAChDataRequest):
                    return(client.exportStatusCAChData(request as exportStatusCAChDataRequest).AckRequest.Ack);

                case nameof(exportStatusPublicPropertyContractRequest1):
                    return(client.exportStatusPublicPropertyContract(request as exportStatusPublicPropertyContractRequest1).AckRequest.Ack);

                case nameof(exportSupplyResourceContractDataRequest):
                    return(client.exportSupplyResourceContractData(request as exportSupplyResourceContractDataRequest).AckRequest.Ack);

                case nameof(exportVotingProtocolRequest1):
                    return(client.exportVotingProtocol(request as exportVotingProtocolRequest1).AckRequest.Ack);

                default:
                    throw new ArgumentException($"{request.GetType().Name} - Не верный тип аргумента");
                }
            }
        }