Ejemplo n.º 1
0
        private void LoadOrderAppraisalDataFull(AppraisalViewModel userAppraisalViewModel, UserAccount user)
        {
            // Create request object
            RetrieveOrderAppraisalDataFull request = new RetrieveOrderAppraisalDataFull()
            {
                LoanId = _loanId
            };

            // Call iMP platform
            var results = new Proxy().Send("RetrieveOrderAppraisalWorkflow", new Dictionary <string, object> {
                { "Request", request }
            });

            // Get results
            object responseMessageSuccess;

            results.TryGetValue("Response", out responseMessageSuccess);
            Loan loanWithAppraisals = responseMessageSuccess as Loan;

            if (loanWithAppraisals != null)
            {
                userAppraisalViewModel.Loan = loanWithAppraisals;

                if (userAppraisalViewModel.Loan.OrderAppraisals != null)
                {
                    for (int i = 0; i < loanWithAppraisals.OrderAppraisals.Count; i++)
                    {
                        if (loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees == null || loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees.Count == 0)
                        {
                            GetProductsAndFees(userAppraisalViewModel, i);
                        }
                        else if (loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees != null && loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees.Count > 0)
                        {
                            //Split Appraisal Condition string
                            loanWithAppraisals.OrderAppraisals[i].AppraisalCondition = loanWithAppraisals.OrderAppraisals[i].AppraisalCondition.SplitCamelCase();
                        }
                        // Need to refactor this later we don't want to add empty fees in list
                        var additionalItems = 7 - (loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees != null ? loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees.Count : 0);

                        for (var j = 0; j < additionalItems; j++)
                        {
                            loanWithAppraisals.OrderAppraisals[i].OrderAppraisalProductsFees.Add(new OrderAppraisalProductFee());
                        }
                    }


                    userAppraisalViewModel.ActualInvestor = LoanServiceFacade.RetrieveInvestorName(userAppraisalViewModel.Loan.ProgramName).InvestorName;
                }
            }
            else
            {
                userAppraisalViewModel.Loan.OrderAppraisals.Add(new OrderAppraisalFull());
            }
        }