Exemplo n.º 1
0
        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"
                }));
            }
        }
Exemplo n.º 2
0
        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());
            }
        }
Exemplo n.º 3
0
        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;
            }
        }