Exemplo n.º 1
0
		public static DecisionActions DecisionToDecisionActions(string decision) {
			DecisionActions result = DecisionActions.Waiting;
			switch (decision) {
			case "Approve":
			case "Approved":
				result = DecisionActions.Approve;
				break;
			case "Reject":
				result = DecisionActions.Reject;
				break;
			case "Escalate":
				result = DecisionActions.Escalate;
				break;
			case "Pending":
				result = DecisionActions.Pending;
				break;
			case "Waiting":
				result = DecisionActions.Waiting;
				break;
			case "ReApprove":
				result = DecisionActions.ReApprove;
				break;
			case "ReReject":
				result = DecisionActions.ReReject;
				break;
			}
			return result;
		} 
Exemplo n.º 2
0
        }         // SetAdditionalCustomerData

        protected ABackdoorSimpleDetails(
            int homeOwnerCap,
            int notHomeOwnerCap,
            int customerID,
            DecisionActions decision,
            int delay,
            bool ownsProperty,
            decimal requestedAmount,
            bool gradeMode = false
            )
        {
            this.customerID      = customerID;
            Decision             = decision;
            Delay                = delay;
            this.ownsProperty    = ownsProperty;
            this.homeOwnerCap    = homeOwnerCap;
            this.notHomeOwnerCap = notHomeOwnerCap;

            Medal       = null;
            OfferResult = null;

            int appAmount = (int)(requestedAmount / 1000m);

            ApprovedAmount = MedalResult.RoundOfferedAmount(gradeMode ? appAmount * 1000 : Cap(appAmount * 1000));
        }         // constructor
Exemplo n.º 3
0
        }         // UpdateSalesForceOpportunity

        /// <summary>
        /// In case of auto decision occurred (RR, R, RA, A), 002 sent immediately.
        /// Otherwise, i.e. in the case of Waiting/Manual, 002 will be transmitted
        /// when underwriter makes manual decision from
        /// CustomersController SetDecision method.
        /// </summary>
        private void UpdatePartnerAlibaba()
        {
            DecisionActions autoDecision = this.autoDecisionResponse.Decision ?? DecisionActions.Waiting;

            //	Reject, Re-Reject, Re-Approve, Approve: 0001 + 0002 (auto decision is a final also)
            // other: 0001
            switch (autoDecision)
            {
            case DecisionActions.ReReject:
            case DecisionActions.Reject:
            case DecisionActions.ReApprove:
            case DecisionActions.Approve:
                new DataSharing(this.customerId, AlibabaBusinessType.APPLICATION).Execute();
                new DataSharing(this.customerId, AlibabaBusinessType.APPLICATION_REVIEW).Execute();
                break;

            // auto not final
            case DecisionActions.Waiting:
                new DataSharing(this.customerId, AlibabaBusinessType.APPLICATION).Execute();
                break;

            default:             // unknown auto decision status
                this.log.Alert("Auto decision invalid value {0} for customer {1}", autoDecision, this.customerId);
                break;
            }     // switch
        }         // UpdatePartnerAlibaba
Exemplo n.º 4
0
		} // constructor

		public void LogAction(
			DecisionActions action,
			string comment,
			User underwriter,
			Customer customer,
			IEnumerable<int> rejectionReasons = null
		) {
			try {
				if ((customer == null) || (customer.LastCashRequest == null))
					return;

				var lastAction = customer.DecisionHistory.OrderBy(d => d.Date).LastOrDefault();

				customer.LastStatus = lastAction == null ? "N/A" : lastAction.Action.ToString();

				var cr = customer.LastCashRequest;

				var item = new DecisionHistory {
					Date = DateTime.UtcNow,
					Action = action,
					Underwriter = underwriter,
					Customer = customer,
					Comment = comment,
					CashRequest = cr,
					LoanType = cr.LoanType,
					RejectReasons = new HashedSet<DecisionHistoryRejectReason>(),
				};

				if (rejectionReasons != null) {
					var repo = new RejectReasonRepository(Session);

					foreach (var rejectionReason in rejectionReasons) {
						var reason = repo.Get(rejectionReason);
						item.RejectReasons.Add(new DecisionHistoryRejectReason {
							DecisionHistory = item,
							RejectReason = reason
						});
					} // for each
				} // if

				if ((action == DecisionActions.Reject) || (action == DecisionActions.ReReject)) {
					string reasons = item.RejectReasons.Any()
						? item.RejectReasons.Select(x => x.RejectReason.Reason).Aggregate((a, b) => a + ", " + b)
						: null;

					customer.RejectedReason = string.IsNullOrEmpty(reasons)
						? comment
						: string.Format("{0} ({1})", reasons, comment);
				} // if

				Save(item);
			} catch (Exception e) {
				ms_oLog.Alert(e, "Failed to log Decision History action.");
			} // try
		} // LogAction
Exemplo n.º 5
0
        }         // In

        public static bool In(this DecisionActions da, params DecisionActions[] set)
        {
            foreach (var item in set)
            {
                if (da == item)
                {
                    return(true);
                }
            }

            return(false);
        } // In