Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }