public async Task <ActionResult <ResponseModel <string> > > MoneyDepositOperation(MoneyApproval model) { var response = new ResponseModel <string> () { ReponseName = nameof(MoneyDepositOperation) }; //*Create MoneyApprovalEntity var MoneyApproval = new MoneyApproval() { UserId = model.UserId, Type = ApprovalType.Deposit, Status = ApprovalStatus.Pending, Deposit = model.Deposit, Currency = model.Currency }; var moneyApprovalResponse = await _moneyApprovalService.CreateApprovalEntity(MoneyApproval); if (moneyApprovalResponse.Status.Value != ResponseStatus.Success.Value) { response.Status = moneyApprovalResponse.Status; response.Message = $"{nameof (MoneyDepositOperation)} was interrupted due to \"{moneyApprovalResponse.Message}\""; return(response); } response.Message = "Operation successfully submitted to admin for approval "; response.Status = ResponseStatus.Success; return(response); }
public async Task <ActionResult <ResponseModel <string> > > DepositConfirmOperation(MoneyApproval model) { var response = new ResponseModel <string> () { ReponseName = nameof(LoadConfirmOperation), Content = new List <string> () { } }; //* If admin approved, System'll be create product in related user if (model.Status.Value == ApprovalStatus.Approved.Value) { var userGetResponse = await _userService.GetUser(model.UserId); if (userGetResponse.Status.Value != ResponseStatus.Success.Value) { response.Status = userGetResponse.Status; response.Message = $"{nameof (DepositConfirmOperation)} was interrupted due to \"{userGetResponse.Message}\""; return(response); } User user = userGetResponse.Content[0]; #region Currency Operation CurrencyModel currencyModel = new CurrencyModel() { Amount = model.Deposit, From = model.Currency.Value, To = "TRY" }; double _deposit = await _currencyService.RequestCurrencyAPI(currencyModel); user.Credit += _deposit; //model.Deposit; #endregion var userResponse = await _userService.UpdateUser(user); if (userResponse.Status.Value != ResponseStatus.Success.Value) { response.Status = userResponse.Status; response.Message = $"{nameof (DepositConfirmOperation)} was interrupted due to \"{userResponse.Message}\""; return(response); } } //* Updating ApprovalEntity var moneyApproval = model; var moneyApprovalResponse = await _moneyApprovalService.UpdateApprovalEntity(moneyApproval); if (moneyApprovalResponse.Status.Value != ResponseStatus.Success.Value) { response.Status = moneyApprovalResponse.Status; response.Message = $"{nameof (DepositConfirmOperation)} was interrupted due to \"{moneyApprovalResponse.Message}\""; return(response); } response.Message = "Operation successfully submitted"; response.Status = ResponseStatus.Success; return(response); }