public string ValidateFormalRemitRequestAndUpdateRemitRecord(RemitRequest remitRequest, RemitRecord remitRecord, UserArc userArc, String country) { string error = null; // check ToCurrency error = CheckCurrencyExistence(remitRequest); if (error != null) { return(error); } remitRecord.FeeType = remitRequest.FeeType; remitRecord.Fee = remitRequest.Fee; remitRecord.ToCurrencyId = remitRequest.ToCurrencyId; // check amount error = CheckIfAmountOutOfRange(userArc.UserId, remitRequest.FromAmount, "TW"); if (error != null) { return(error); } ExchangeRate applyExchangeRate = exchangeRateService.GetExchangeRateByCurrencyName(remitRequest.ToCurrency); remitRecord.FromAmount = remitRequest.FromAmount; remitRecord.ApplyExchangeRate = applyExchangeRate.Rate; remitRecord.FromCurrencyId = currencyService.GetCurrencyByCountry(country)[0].Id; // check Beneficiary error = CheckBenificiarExistence(remitRequest.BeneficiaryId); if (error != null) { return(error); } remitRecord.BeneficiaryId = remitRequest.BeneficiaryId; // check uploaded picture error = CheckPhotoFileExistence(userArc, remitRecord.RealTimePic); if (error != null) { return(error); } error = CheckSignatureFileExistence(userArc, remitRecord.ESignature); if (error != null) { return(error); } // check discount if (remitRequest.DiscountId != null) { error = CheckDiscountExistence(remitRequest); if (error != null) { return(error); } remitRecord.DiscountId = remitRequest.DiscountId; remitRecord.DiscountAmount = remitRequest.DiscountAmount; } remitRecord.TransactionStatus = (short)RemitTransactionStatusEnum.WaitingArcVerifying; return(error); }