/// <summary> /// Waits for AdvancePayBehaviors.LoggingEvent to be populated with a LoggingCompleteAdvancePayRolloverRequestedEvent that has a matching guid. If that event was successful an advance pay rollover /// request is written to the Advance Pay table. /// </summary> public RequestAdvancePayRolloverResponse CreateAdvancePayRolloverRequestAsyc(RequestAdvancePayRolloverRequest request) { var advancePayRequestedEvent = new AdvancePayRolloverRequestedEvent(request); return(CreateAdvancePayRolloverRequestAsyc(request, advancePayRequestedEvent)); }
/// <summary> /// Waits for AdvancePayBehaviors.LoggingEvent to be populated with a LoggingCompleteAdvancePayRolloverRequestedEvent that has a matching guid. If that event was successful an advance pay rollover /// request is written to the Advance Pay table. /// </summary> public RequestAdvancePayRolloverResponse CreateAdvancePayRolloverRequestAsyc(RequestAdvancePayRolloverRequest request, AdvancePayRolloverRequestedEvent rolloverRequestedEvent) { var requestLogged = false; var response = new RequestAdvancePayRolloverResponse(); var guid = Guid.Empty; // loop until logging event gets filled with a LoggingCompleteAdvancePayRolloverRequestedEvent. while (LoggingEvent == null || guid != LoggingEvent.EventGuid) { if (requestLogged) { continue; } guid = rolloverRequestedEvent.EventGuid; _eventAggregator.Publish(rolloverRequestedEvent); requestLogged = true; Thread.Sleep(10); } if (LoggingEvent.IsSuccessful) { try { WriteAdvancePayRolloverRequest(request); response.SubmitRolloverRequestSuccess = true; response.ReasonForFailure = string.Empty; } catch (Exception ex) { response.SubmitRolloverRequestSuccess = false; response.ReasonForFailure = ex.Message; response.Exception = new ExceptionInfo(ex); response.ExceptionType = ExceptionType.Business; } } else { response.SubmitRolloverRequestSuccess = false; response.ReasonForFailure = UnableToLogMessage; response.Exception = new ExceptionInfo(LoggingEvent.Exception); response.ExceptionType = ExceptionType.Business; } return(response); }