public ThirdIssuanceMessageInfo ThirdMessage(ThirdIssuanceMessageSpec spec) { // first we will try to lookup the cache value of the issuer object. Issuer issuer = null; if (spec.IssuerInstanceID != null) { IssuerInstanceData issuerInstance; bool ok = issuerInstanceDB.TryGetValue(spec.IssuerInstanceID, out issuerInstance); if (ok) { issuer = issuerInstance.Issuer; } else { //XXX add log about Issuer not found in cache. } } if (issuer != null) { return(HandleThirdMessageInfo(issuer, spec.SecondMessage)); } if (spec.FistMessageState != null && spec.IssuerKeyAndParameter != null) { issuer = new Issuer(spec.IssuerKeyAndParameter, spec.FistMessageState); issuerInstanceDB.TryAdd(spec.IssuerInstanceID, new IssuerInstanceData(issuer)); return(HandleThirdMessageInfo(issuer, spec.SecondMessage)); } ApiArgumentFault fault = new ApiArgumentFault(); fault.Details = "Issuer with unique ID was found or FirstMessageState and IssuerKeyAndParameter not provided."; fault.Argument = "ThirdIssuanceMessageSpec.IssuerInstanceID/ThirdIssuanceMessageSpec.FirstMessageState/ThirdIssuanceMessageSpec.IssuerKeyAndParameter"; fault.ArgumentValue = spec.IssuerInstanceID.ToString(); throw new FaultException <ApiArgumentFault>(fault); }
public ThirdIssuanceMessageInfo ThirdMessage(ThirdIssuanceMessageSpec spec) { // first we will try to lookup the cache value of the issuer object. Issuer issuer = null; if (spec.IssuerInstanceID != null) { IssuerInstanceData issuerInstance; bool ok = issuerInstanceDB.TryGetValue(spec.IssuerInstanceID, out issuerInstance); if (ok) { issuer = issuerInstance.Issuer; } else { //XXX add log about Issuer not found in cache. } } if (issuer != null) { return HandleThirdMessageInfo(issuer, spec.SecondMessage); } if (spec.FistMessageState != null && spec.IssuerKeyAndParameter != null) { issuer = new Issuer(spec.IssuerKeyAndParameter, spec.FistMessageState); issuerInstanceDB.TryAdd(spec.IssuerInstanceID, new IssuerInstanceData(issuer)); return HandleThirdMessageInfo(issuer, spec.SecondMessage); } ApiArgumentFault fault = new ApiArgumentFault(); fault.Details = "Issuer with unique ID was found or FirstMessageState and IssuerKeyAndParameter not provided."; fault.Argument = "ThirdIssuanceMessageSpec.IssuerInstanceID/ThirdIssuanceMessageSpec.FirstMessageState/ThirdIssuanceMessageSpec.IssuerKeyAndParameter"; fault.ArgumentValue = spec.IssuerInstanceID.ToString(); throw new FaultException<ApiArgumentFault>(fault); }