Example #1
0
 public void WriteAdvancePayRolloverRequest(RequestAdvancePayRolloverRequest request)
 {
     using (var context = _advancePayContextFactory())
     {
         WriteAdvancePayRolloverRequest(request, context);
     }
 }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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();
        }
Example #5
0
        /// <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));
        }