public ActionResult <MessageModel <RemitRecordDTO> > CreateDraftRemitRecord([FromBody] DraftRemitRequest draftRemitRequest) { if (!ModelState.IsValid) { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); return(BadRequest(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = string.Join(",", errors) })); } // KYC passed? var userId = long.Parse(User.FindFirstValue("id")); UserArc userArc = userService.GetUserArcById(userId); if (!helper.CheckIfKYCPassed(userArc)) { return(BadRequest(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = KYC_NOT_PASSED })); } // Get draft RemitRecord draftRemitRecord = remitRecordService.GetDraftRemitRecordByUserArc(userArc); if (draftRemitRecord != null) { remitRecordService.DeleteRmitRecord(draftRemitRecord); } draftRemitRecord = new RemitRecord(); string error = helper.CheckAndSetDraftRemitProperty(userArc, draftRemitRecord, draftRemitRequest, draftRemitRequest.Country ?? "TW"); if (error != null) { return(BadRequest(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = error })); } draftRemitRecord = remitRecordService.CreateRemitRecordByUserArc(userArc, draftRemitRecord, PayeeTypeEnum.Bank); return(Ok(new MessageModel <RemitRecordDTO> { Data = _mapper.Map <RemitRecordDTO>(draftRemitRecord) })); }
public string CheckAndSetDraftRemitProperty(UserArc userArc, RemitRecord remitRecord, DraftRemitRequest draftRemitRequest, String country) { string error = null; if (draftRemitRequest.FromAmount != null) { error = CheckIfAmountOutOfRange(userArc.UserId, (int)draftRemitRequest.FromAmount, country); if (error != null) { return(error); } remitRecord.FromAmount = (double)draftRemitRequest.FromAmount; } if (draftRemitRequest.BeneficiaryId != null) { error = CheckBenificiarExistence((int)draftRemitRequest.BeneficiaryId); if (error != null) { return(error); } remitRecord.BeneficiaryId = draftRemitRequest.BeneficiaryId; } if (draftRemitRequest.DiscountId != null) { error = CheckDiscountExistence((int)draftRemitRequest.DiscountId); if (error != null) { return(error); } remitRecord.DiscountId = draftRemitRequest.DiscountId; } if (draftRemitRequest.ToCurrencyId != null) { error = CheckCurrencyExistence((int)draftRemitRequest.ToCurrencyId); if (error != null) { return(error); } remitRecord.ToCurrencyId = draftRemitRequest.ToCurrencyId; } return(null); }