public void WriteAdvancePayRolloverRequest(RequestAdvancePayRolloverRequest request) { using (var context = _advancePayContextFactory()) { WriteAdvancePayRolloverRequest(request, context); } }
/// <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); }
public RequestAdvancePayRolloverResponse RequestAdvancePayRollover(RequestAdvancePayRolloverRequest request) { using (var context = _advancePayContextFactory()) { // If the loan is not eligible for rollover, do not submit the request. if (GetLoanRolloverStatus(request.MemberAccountNumber, request.LoanAccount, context) != RolloverStatus.Qualified) { return(new RequestAdvancePayRolloverResponse { SubmitRolloverRequestSuccess = false, ReasonForFailure = IneligibleForRolloverMessage }); } return(Task.Factory.StartNew(() => CreateAdvancePayRolloverRequestAsyc(request)).Result); } }
public static void WriteAdvancePayRolloverRequest(RequestAdvancePayRolloverRequest request, IAdvancePayEntities context) { var rolloverInfo = context.Pro_AdvancePay_Rollover.Single( x => x.Acct.ToString() == request.MemberAccountNumber && x.Sfx == request.LoanAccount); var rolloverRequest = new Pro_AdvancePay_RollOver_Action { Acct = Convert.ToInt32(request.MemberAccountNumber), Sfx = request.LoanAccount, RespCode = rolloverInfo.RespCode, PostResult = "0", NewInserted = "Y" }; context.Pro_AdvancePay_RollOver_Action.Add(rolloverRequest); context.SaveChanges(); }
/// <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)); }