Пример #1
0
        public async Task <ActionResult <CollateralCustomerRespObj> > GetAllCustomerCollateralByLoanApplication([FromQuery] CollateralCustomerSearchObj search)
        {
            try
            {
                var response = _repo.GetAllCustomerCollateralByLoanApplication(search.LoanApplicationId, search.IncludeNotAllowSharing);

                //Check for collateral verification status
                if (search.VerificationStatus)
                {
                    response = response.Where(x => x.CollateralVerificationStatus == search.VerificationStatus);
                }

                return(new CollateralCustomerRespObj
                {
                    CollateralCustomers = response,
                    Status = new APIResponseStatus {
                        IsSuccessful = true, Message = new APIResponseMessage {
                            FriendlyMessage = "Successful"
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new CollateralCustomerRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }
Пример #2
0
        public async Task <ActionResult <CollateralCustomerRespObj> > CalculateCurrentCustomerCollateralValue([FromQuery] CollateralCustomerSearchObj search)
        {
            try
            {
                var customerCollateral        = _repo.GetCollateralCustomer(search.CollateralCustomerId);
                var collateral                = _repo.GetCollateralType(customerCollateral.CollateralTypeId);
                var loanApplication           = _loanApplicationRepository.GetLoanApplication(search.LoanApplicationId);
                var allCollateralConsumptions = await _collateralCustomerConsumptionRepository
                                                .GetCollateralCustomerConsumptionByCollateralCustomerIdAsync(search.CollateralCustomerId);

                decimal totalConsumptionOnCollateral = 0;

                foreach (var coll in allCollateralConsumptions)
                {
                    totalConsumptionOnCollateral += coll.Amount;
                }

                var collateralValueWithHairCutConsidered = customerCollateral.CollateralValue;

                if (collateral.HairCut != 0 && collateral.HairCut != null)
                {
                    collateralValueWithHairCutConsidered = (customerCollateral.CollateralValue * (100 - collateral.HairCut.Value)) / 100;
                }

                var response = new CollateralCustomerConsumptionObj
                {
                    //ActualCollateralValue = customerCollateral.collateralValue,
                    Amount = 0,
                    CollateralCurrentAmount         = collateralValueWithHairCutConsidered - totalConsumptionOnCollateral,
                    CollateralCustomerId            = customerCollateral.CollateralCustomerId,
                    CollateralCustomerConsumptionId = search.collateralCustomerConsumptionId
                };

                if (search.collateralCustomerConsumptionId != 0)
                {
                    var consumption = await _collateralCustomerConsumptionRepository.GetCollateralCustomerConsumptionById(search.collateralCustomerConsumptionId);

                    response.ActualCollateralValue    = consumption.Amount;
                    response.CollateralCurrentAmount += consumption.Amount;
                }

                if (response != null)
                {
                    return(new CollateralCustomerRespObj
                    {
                        CollateralCustomerConsumption = response,
                        Status = new APIResponseStatus {
                            IsSuccessful = false, Message = new APIResponseMessage {
                                FriendlyMessage = "Successful"
                            }
                        }
                    });
                }
                return(new CollateralCustomerRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred"
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new CollateralCustomerRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }
Пример #3
0
        public async Task <ActionResult <CollateralCustomerRespObj> > GetCollateralSingleCustomer([FromQuery] CollateralCustomerSearchObj search)
        {
            try
            {
                if (search.CustomerId < 1)
                {
                    return(new CollateralCustomerRespObj
                    {
                        Status = new APIResponseStatus {
                            IsSuccessful = false, Message = new APIResponseMessage {
                                FriendlyMessage = "Customer Id is required"
                            }
                        }
                    });
                }

                var response = _repo.GetCollateralSingleCustomer(search.CustomerId);

                return(new CollateralCustomerRespObj
                {
                    CollateralCustomers = response,
                    Status = new APIResponseStatus {
                        IsSuccessful = true, Message = new APIResponseMessage {
                            FriendlyMessage = "Successful"
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new CollateralCustomerRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }