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 } } }); } }
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 } } }); } }
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 } } }); } }