public async Task <IActionResult> Buy([FromBody] BuyStockRequest buyStockRequest)
        {
            var buyStockResponse = new BuyStockResponse()
            {
                ValidationResult = new ValidationResult {
                    Success = true
                }
            };

            try
            {
                if (buyStockRequest == null ||
                    buyStockRequest.StockId == Guid.Empty ||
                    buyStockRequest.NoOfUnits <= 0)
                {
                    return(HandleBadRequest(buyStockRequest, buyStockResponse));
                }

                var saveResponse = await _tradeTxService.Buy(buyStockRequest.UserId, buyStockRequest.StockId, buyStockRequest.NoOfUnits);

                if (!saveResponse)
                {
                    return(HandleError(HttpStatusCode.BadRequest, buyStockRequest, buyStockResponse));
                }

                return(Ok(buyStockResponse));
            }
            catch (Exception ex)
            {
                return(HandleError(HttpStatusCode.InternalServerError, buyStockRequest, buyStockResponse, ex));
            }
        }
Пример #2
0
        public BuyStockResponse BuyStock(BuyStockRequest externalRequest)
        {
            Log(Logger.LogMessageType.Info, "->   -------------------- Comienza la ejecución del método Stock.BuyStock", Logger.LoggingLevelType.Medium);
            BuyStockRequestInternal internalRequest = new BuyStockRequestInternal()
            {
                SessionID  = externalRequest.Request.SessionID,
                Amount     = externalRequest.Request.Amount,
                DeviceType = externalRequest.Request.DeviceType
            };
            BuyStockResponseInternal internalResponse = BuyStockInternal(internalRequest);
            BuyStockResponse         externalResponse = new BuyStockResponse()
            {
                Response = new BuyStockResponseBody()
                {
                    ResponseCode    = internalResponse.ResponseCode,
                    ResponseMessage = internalResponse.ResponseMessage,
                    TransactionID   = internalResponse.TransactionID
                }
            };

            Log(Logger.LogMessageType.Info, "->   -------------------- Termina la ejecución del método Stock.BuyStock", Logger.LoggingLevelType.Medium);
            return(externalResponse);
        }