public async Task <IActionResult> ModifyBalance([FromBody] UpdateBalanceRequestViewModel balanceViewModel) { try { var newValue = await userRepository.ChangeUserBalanceWith(balanceViewModel.Id, balanceViewModel.Value); return(Ok(newValue)); } catch (Exception) { return(Conflict(new ErrorResponseViewModel { Id = (int)ErrorResponseIds.InvalidBalance, Message = "Not enough money" })); } }
public async Task <ActionResult> Deposit(PaymentRequestViewModel paymentRequestViewModel) { try { var userId = User.Claims.Where(x => x.Type.Contains("primarysid")).Select(x => x).First().Value; var transaction = new TransactionRequestViewModel() { From = PaymentUserType.ExternalAccount.ToString(), To = PaymentUserType.Me.ToString(), UserId = userId, Validated = true, Value = paymentRequestViewModel.Value }; var ok = await _transactionService.AddTransaction(transaction); if (!ok) { return(View()); } var model = new UpdateBalanceRequestViewModel() { Value = paymentRequestViewModel.Value, Id = userId }; await _userService.ModifyBalance(model); return(RedirectToAction("Index", "Home")); } catch (Exception e) { ModelState.AddModelError("error", e.Message); return(View()); } }
public async Task <double> ModifyBalance(UpdateBalanceRequestViewModel updateBalanceRequestViewModel) { var url = $"{_configuration["UserServiceAPIUrl"]}/api/User/ModifyBalance"; try { var responseString = await HTTPRequestSender.PostAsync(url, updateBalanceRequestViewModel); var responseUser = JsonConvert.DeserializeObject <double>(responseString); return(responseUser); } catch (Exception e) { var errorResponse = JsonConvert.DeserializeObject <ErrorResponseViewModel>(e.Message); if (errorResponse.Id == (int)ErrorResponseIds.UserAlreadyExists) { throw new UserAlreadyExistsException(); } throw; } }