public override IMovilwayApiResponse PerformUtibaOperation(IMovilwayApiRequest requestObject, UMarketSCClient utibaClientProxy, String sessionID) { BuyStockRequestBody request = requestObject as BuyStockRequestBody; BuyStockResponseBody response = null; buyStockResponse utibaBuyStockResponse = utibaClientProxy.buyStock(new buyStock() { buyStockRequest = new buyStockRequestType() { sessionid = sessionID, wait = false, waitSpecified = true, amount = request.Amount, device_type = request.DeviceType, details = ("Bank: " + request.BankName ?? "NULL") + " - Fecha: " + (request.TransactionDate.ToShortDateString() ?? "NULL") + " - REF.: " + (request.TransactionReference ?? "NULL") } }); if (utibaBuyStockResponse != null) { response = new BuyStockResponseBody() { ResponseCode = Utils.BuildResponseCode(utibaBuyStockResponse.buyStockReturn.result, utibaBuyStockResponse.buyStockReturn.result_namespace), ResponseMessage = utibaBuyStockResponse.buyStockReturn.result_message, Fee = utibaBuyStockResponse.buyStockReturn.fee, TransactionID = utibaBuyStockResponse.buyStockReturn.transid }; } return(response); }
private BuyStockResponseInternal BuyStockInternal(BuyStockRequestInternal internalRequest) { Log(Logger.LogMessageType.Info, "-> -------------------- Comienza la ejecución del método Stock.BuyStockInternal", Logger.LoggingLevelType.Medium); BuyStockResponseInternal internalResponse = null; try { UMarketSCClient utibaClient = new UMarketSCClient(); buyStockResponse utibaBuyStockResponse = null; using (OperationContextScope scope = new OperationContextScope(utibaClient.InnerChannel)) { HttpRequestMessageProperty messageProperty = new HttpRequestMessageProperty(); messageProperty.Headers.Add(HttpRequestHeader.UserAgent, UserAgent); OperationContext.Current.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, messageProperty); Log(Logger.LogMessageType.Info, "-> -------------------- " + String.Format("Parámetros Recibidos Stock.BuyStockInternal: " + "SessionID={0}, DeviceType={1}, Amount={2}", internalRequest.SessionID, internalRequest.DeviceType, internalRequest.Amount), Logger.LoggingLevelType.Low); utibaBuyStockResponse = utibaClient.buyStock(new buyStock() { buyStockRequest = new buyStockRequestType() { sessionid = internalRequest.SessionID, amount = internalRequest.Amount, device_type = internalRequest.DeviceType } }); } if (utibaBuyStockResponse != null) { internalResponse = new BuyStockResponseInternal() { ResponseCode = utibaBuyStockResponse.buyStockReturn.result, ResponseMessage = utibaBuyStockResponse.buyStockReturn.result_message, Fee = utibaBuyStockResponse.buyStockReturn.fee, TransactionID = utibaBuyStockResponse.buyStockReturn.transid }; } Log(Logger.LogMessageType.Info, "-> -------------------- " + String.Format("Resultado Obtenido Stock.BuyStockInternal: ResponseCode={0}, ResponseMessage={1}, TransactionID={2}, " + "Fee={3}", internalResponse.ResponseCode, internalResponse.ResponseMessage, internalResponse.TransactionID, internalResponse.Fee), Logger.LoggingLevelType.Low); } catch (Exception ex) { Log(Logger.LogMessageType.Error, "Ocurrio una exception procesando el metodo Stock.BuyStockInternal, los detalles son: " + ex.ToString(), Logger.LoggingLevelType.Low); return(null); } Log(Logger.LogMessageType.Info, "-> -------------------- Termina la ejecución del método Stock.BuyStockInternal", Logger.LoggingLevelType.Medium); return(internalResponse); }