/// <summary> /// Begin get additional aggregator configuration data (async) /// </summary> /// <param name="callback">callback when configuration request is finished</param> /// <param name="asyncState">callback async state object</param> /// <returns>async result</returns> public IAsyncResult BeginGetAggregatorConfig(AsyncCallback callback, object asyncState) { if (IsLegacyPduVersion) { throw new KsiServiceException("Aggregator config request is not supported using PDU version v1. Configure the SDK to use PDU v2 format for the given Aggregator."); } if (_signingServiceProtocol == null) { throw new KsiServiceException("Signing service protocol is missing from service."); } if (_signingServiceCredentials == null) { throw new KsiServiceException("Signing service credentials are missing."); } PduHeader header = new PduHeader(_signingServiceCredentials.LoginId); AggregatorConfigRequestPayload payload = new AggregatorConfigRequestPayload(); AggregationRequestPdu pdu = new AggregationRequestPdu(header, payload, _signingMacAlgorithm, _signingServiceCredentials.LoginKey); ulong requestId = GenerateRequestId(); Logger.Debug("Begin get aggregator config (request id: {0}){1}{2}", requestId, Environment.NewLine, pdu); return(_signingServiceProtocol.BeginGetAggregatorConfig(pdu.Encode(), requestId, callback, asyncState)); }
/// <summary> /// Parse child tag /// </summary> protected override ITlvTag ParseChild(ITlvTag childTag) { switch (childTag.Type) { case Constants.AggregationRequestPayload.TagType: AggregationRequestPayload aggregationRequestPayload = childTag as AggregationRequestPayload ?? new AggregationRequestPayload(childTag); Payloads.Add(aggregationRequestPayload); return(aggregationRequestPayload); case Constants.AggregatorConfigRequestPayload.TagType: AggregatorConfigRequestPayload aggregatorConfigRequestPayload = childTag as AggregatorConfigRequestPayload ?? new AggregatorConfigRequestPayload(childTag); Payloads.Add(aggregatorConfigRequestPayload); return(aggregatorConfigRequestPayload); default: return(base.ParseChild(childTag)); } }