public ActionResult <MessageModel <RemitRecordDTO> > GetRemitRecordById([FromRoute, SwaggerParameter("交易紀錄id", Required = true)] long id) { var userId = long.Parse(User.FindFirstValue("id")); UserArc userArc = userService.GetUserArcById(userId); RemitRecord record = remitRecordService.GetRemitRecordById(id); if (record != null && record.UserId != userId) { return(Unauthorized(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.Unauthorized, Success = false, Msg = NOT_AUTHORIZED })); } List <ReceiveBank> banks = bankService.GetReceiveBanks(); ReceiveBank bank = banks.Find(bank => bank.Id == record.Beneficiary.ReceiveBankId); RemitRecordDTO remitRecordDTO = _mapper.Map <RemitRecordDTO>(record); remitRecordDTO.BankEnName = bank.EnName; remitRecordDTO.BankTwName = bank.TwName; remitRecordDTO.BankVietName = bank.VietName; return(Ok(new MessageModel <RemitRecordDTO>() { Data = remitRecordDTO })); }
public ActionResult <MessageModel <List <RemitRecordDTO> > > GetRemitRecords() { var userId = long.Parse(User.FindFirstValue("id")); List <RemitRecord> remitRecords = remitRecordService.GetRemitRecordsByUserId(userId); remitRecords.RemoveAll(remitRecord => remitRecord.TransactionStatus == (short)RemitTransactionStatusEnum.Draft); List <ReceiveBank> banks = bankService.GetReceiveBanks(); List <RemitRecordDTO> remitRecordDTOs = new List <RemitRecordDTO>(); foreach (RemitRecord record in remitRecords) { ReceiveBank bank = banks.Find(bank => bank.Id == record.Beneficiary.ReceiveBankId); RemitRecordDTO remitRecordDTO = _mapper.Map <RemitRecordDTO>(record); remitRecordDTO.BankEnName = bank.EnName; remitRecordDTO.BankTwName = bank.TwName; remitRecordDTO.BankVietName = bank.VietName; remitRecordDTOs.Add(remitRecordDTO); } return(Ok(new MessageModel <List <RemitRecordDTO> > { Data = remitRecordDTOs })); }
public ActionResult <MessageModel <RemitRecordDTO> > ApplyRemitRecord([FromBody] RemitRequest remitRequest, [FromRoute, SwaggerParameter("草稿匯款的id", Required = true)] int id) { if (!ModelState.IsValid) { return(BadRequest()); } // 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 remit RemitRecord record = remitRecordService.GetRemitRecordById(id); if (record == null || record.TransactionStatus != (short)RemitTransactionStatusEnum.Draft) { return(BadRequest(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = "This Draft Remit doesn't exit or wrong status" })); } string validationResult = helper.ValidateFormalRemitRequestAndUpdateRemitRecord(remitRequest, record, userArc, remitRequest.Country ?? "TW"); if (validationResult != null) { return(BadRequest(new MessageModel <RemitRecordDTO> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = validationResult })); } DateTime now = DateTime.UtcNow; RemitRecord modifiedRecord = remitRecordService.ModifyRemitRecord(record, now); RemitRecordDTO recordDTO = _mapper.Map <RemitRecordDTO>(modifiedRecord); // 系統掃ARC No. BackgroundJob.Enqueue(() => remitRecordService.SystemVerifyArcForRemitProcess(modifiedRecord, userId)); return(Ok(new MessageModel <RemitRecordDTO> { Data = recordDTO })); }