/// <summary> /// Извещение о принятии к исполнению распоряжения, размещаемое исполнителем /// </summary> /// <param name="_orgPPAGUID"> /// Идентификатор зарегистрированной организации /// </param> /// <param name="_listNotificationOfOrder"> /// Массив передавамых документов (не более 1000 записей) /// </param> /// <returns></returns> public string SetSupplierNotificationsOfOrderExecution(string _orgPPAGUID, List <dynamic> _listNotificationOfOrder) { var srvPaymentSrvAsync = new PaymentPortsTypeAsyncClient(); srvPaymentSrvAsync.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["_login"]; srvPaymentSrvAsync.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["_pass"]; var SupplierNotificationOfOrderExecution = new List <importSupplierNotificationsOfOrderExecutionRequestSupplierNotificationOfOrderExecution>(); foreach (var item in _listNotificationOfOrder) { SupplierNotificationOfOrderExecution.Add( new importSupplierNotificationsOfOrderExecutionRequestSupplierNotificationOfOrderExecution { TransportGUID = Guid.NewGuid().ToString(), ItemElementName = ItemChoiceType1.PaymentDocumentID, Item = (string)item[0], OrderDate = item[1], Amount = Convert.ToDecimal(item[2].ToString("F")) }); } var reqImpSupNotifOrderExec = new importSupplierNotificationsOfOrderExecutionRequest1 { RequestHeader = new RequestHeader { Date = DateTime.Now, MessageGUID = Guid.NewGuid().ToString(), ItemElementName = ItemChoiceType.orgPPAGUID, Item = _orgPPAGUID }, importSupplierNotificationsOfOrderExecutionRequest = new importSupplierNotificationsOfOrderExecutionRequest { version = "10.0.1.1", Id = CryptoConsts.CONTAINER_ID, SupplierNotificationOfOrderExecution = SupplierNotificationOfOrderExecution.ToArray() } }; var resImpSupNotifOrderExec = srvPaymentSrvAsync.importSupplierNotificationsOfOrderExecution(reqImpSupNotifOrderExec); var ackImpSupNotifOrderExec = resImpSupNotifOrderExec.AckRequest.Ack.MessageGUID.ToString(); return(ackImpSupNotifOrderExec); }
public IAck Send(object request) { using (var client = new PaymentPortsTypeAsyncClient(_binding, _remoteAddress)) { client.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior()); if (!_config.IsPPAK) { client.ClientCredentials.UserName.UserName = Constants.UserAuth.Name; client.ClientCredentials.UserName.Password = Constants.UserAuth.Passwd; } if (!_config.UseTunnel) { client.ClientCredentials.ClientCertificate.SetCertificate( StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, base._config.CertificateThumbprint); } switch (request.GetType().Name) { case nameof(exportPaymentDocumentDetailsRequest1): return(client.exportPaymentDocumentDetails(request as exportPaymentDocumentDetailsRequest1).AckRequest.Ack); case nameof(importNotificationsOfOrderExecutionRequest1): return(client.importNotificationsOfOrderExecution(request as importNotificationsOfOrderExecutionRequest1).AckRequest.Ack); case nameof(importNotificationsOfOrderExecutionCancellationRequest1): return(client.importNotificationsOfOrderExecutionCancellation(request as importNotificationsOfOrderExecutionCancellationRequest1).AckRequest.Ack); case nameof(importSupplierNotificationsOfOrderExecutionRequest1): return(client.importSupplierNotificationsOfOrderExecution(request as importSupplierNotificationsOfOrderExecutionRequest1).AckRequest.Ack); default: throw new ArgumentException($"{request.GetType().Name} - Не верный тип аргумента"); } } }