"gatewayGK/ComandosGkPruebas/AddItemRequestCmdGKTest.cs" did not exist on "56f10e15e5b0b07cadf2a108c33cba432b23c295"
Commit 56f10e15 authored by bsarmiento31's avatar bsarmiento31
Browse files

Initial commit

parents
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using EvaPOS_API_FRAME.DTO.Intercambio;
using System.Globalization;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa solicitudes del primer item agregado.
/// </summary>
public class AddItemRequestCmdGk : IComando
{
public string Referencia { get; set; } = "scsns:AddItem";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddItemRequest Request { get; private set; }
/// <summary>
/// Procesa y responde ReportStatusEventsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddItemRequestCmdGk ejecutado. AddItemRequest : {AddItemRequest}", Request.RequestID);
//int requestIdGuardado = RequestIdGuardado();
POSBCStatusEvent posbcStatus = null;
//Variables para manejar las respuestas de error - (item con peso, no se encuentra el item,item requiere cantidad)
AddItemResponseError addItemResponseError = null;
Respuestas respuesta = null;
Venta venta = null;
//Variables del adaptador de entrada - addItem
int requestId = Request.RequestID;
long barCode = 0;
int quantity = Request.ItemIdentifier.Quantity == 0 ? 1 : Request.ItemIdentifier.Quantity;
bool cancelItem = Request.ItemIdentifier.VoidFlag;
double peso = Request.ItemIdentifier.ScaleWeight;
//Logica para validar el valor del codigo de barras
//Si es un item de busqueda o imagen, trae el valor KeyedItemID, si es escaneado trae barcode
if (Request.ItemIdentifier.BarCode != null)
barCode = Request.ItemIdentifier.BarCode.ScanDataLabel;
else
barCode = Request.ItemIdentifier.KeyedItemID;
/*
Aqui se arma la solicitud para Smart POS, recuperando datos del Entorno.
*/
string tomarNombreCorto = "";
//Valores que se mandan en chec
var date = DateTime.Now.ToString("dd/MM/yyyy");
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.AMDesignator = "AM";
culture.DateTimeFormat.PMDesignator = "PM";
var time = DateTime.Now.ToString("hh:mm tt", culture);
TransactionStatusEvent transactionStatusEvent = new TransactionStatusEvent(1, TipoMensaje.Event, requestId, "TRANSACTION_START", 1, "regularSale", "sales", date, time);
POSReceiptEvent pOSReceiptEvent = new POSReceiptEvent(1, TipoMensaje.Event, requestId, "Customer", 0, "Body", requestId, 1, "center", "LineItem", "ItemSale", "1234" + " " + "Producto" + " " + "1" + " " + 3200, "Add");
POSReceiptEventHeaderResponse posReceiptEventHeader = new POSReceiptEventHeaderResponse(1, TipoMensaje.Event, requestId);
TotalsEventResponse totalEvent = new TotalsEventResponse(1, TipoMensaje.Event, requestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
AddItemResponse itemResponse = new AddItemResponse(1, TipoMensaje.Resp, requestId, tomarNombreCorto, "false", "false", "true", "1234", "ScannedItemCode", "3200", 1, "3200", 0, "0.00", 0, 1, 0, "unit", "false", 0, "false", "false", "true", "true");
respuesta = new Respuestas { transactionStatusEvent, posReceiptEventHeader, pOSReceiptEvent, totalEvent, itemResponse };
return (respuesta);
}
public IComando CreaCopia()
{
return (AddItemRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase addItemRequestDTO)
{
Request = (AddItemRequest)addItemRequestDTO;
}
}
}
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using RestSharp;
using RestSharp.Authenticators;
using SCOGateway.POSGk;
using GatewaySCO;
namespace SCOGateway.POSGkPruebas
{
public class InitializeRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:Initialize";
/// <summary>
/// DTO con solicitud.
/// </summary>
public InitializeRequestDTO Request { get; private set; }
/// <summary>
/// Url servicio autenticación Gk.
/// </summary>
public const string UrlAuthenticate = ConstantesGK.UrlBaseMaqueta + "/com.gk_software.pos.api.service.security.AuthenticationService/authenticate";
/// <summary>
/// Procesa y responde InitializeRequest.
/// </summary>
public Respuestas Ejecutar()
{
int terminalNumber = Request.TerminalNumber;
Log.Debug("Cmd InitializeRequestCmd ejecutado - Gk pruebas. Request id: {id}, terminal: {terminal}, recovery: {recovery}", Request.OperatorID, Request.TerminalNumber, Request.Recovery);
// Contactar Smart POS Gk.
var client = new RestClient(UrlAuthenticate);
var request = new RestRequest(UrlAuthenticate, Method.Post);
var datosAutenticacion = new AutenticationReq { LoginName = "usuario", Password = "12345" };
request.AddJsonBody(datosAutenticacion);
// Ejecuta invocación sincrónica, deserializando respuesta según el tipo indicado en la invocación del Post<T>.
var autenticacionResp = client.Post<AuthenticateResp>(request) ?? throw new ApplicationException("Servicio POST 'Authenticate' retorna nulos.");
Log.Debug($"GkPruebas: Autenticate - POST - response {autenticacionResp}");
// Salvar el token de autenticación y demás datos.
Entorno<EntornoGK>.Instancia.getDatos().RealmId = autenticacionResp.RealmId;
Entorno<EntornoGK>.Instancia.getDatos().ExpirationCountDays = autenticacionResp.ExpirationCountDays;
// Respuestas a SCO.
var posbcStatus1 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "CONNECTING_TO_POS", "Connecting to POS system");
var posbcStatus2 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "CONNECTED_TO_POS", "Connected to POS system");
var posbcStatus3 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "POS_RESOURCES_INITIALIZED", "POS Resources Initialized");
var inicializacionOk = new InitializeResponse(1, TipoMensaje.Resp, terminalNumber);
return (new Respuestas { posbcStatus1, posbcStatus2, posbcStatus3,inicializacionOk });
}
public IComando CreaCopia()
{
return (InitializeRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase initializeRequestDTO)
{
Request = (InitializeRequestDTO)initializeRequestDTO;
}
}
}
\ No newline at end of file
using EvaPOS_API_FRAME.Comandos;
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using gatewayGK.POSGk;
using RestSharp;
using SCOGateway.POSGk;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gatewayGK.ComandosGkPruebas
{
public class SubtotalCmdGK : IComando
{
public string Referencia { get; set; } = "scsns:GetTotals";
/// <summary>
/// DTO con solicitud.
/// </summary>
public GetTotalsRequest Request { get; private set; }
/// <summary>
/// Procesa y responde GetTotalsRequest.
/// </summary>
///
public const string UrlSubtotal = ConstantesGK.UrlBaseMaqueta + "/com.gk_software.pos.api.service.subtotal.SubtotalService/processSubtotalCalculation";
/// <summary>
/// Url servicio subtotal Gk.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd GetTotalsRequestDTO ejecutado. GetTotalsRequest : {GetTotalsRequest}", Request.RequestID);
GetTotalsResponse getTotalsResponse = null;
POSReceiptEventResponse pOSReceiptEvent = null;
TotalsEventResponse totalEvent = null;
int RequestId = Request.RequestID;
var total = new RestClient(UrlSubtotal);
var request = new RestRequest(UrlSubtotal, Method.Post);
var datosTotal = new SubtotalReq { PricePositionLimit = 1000 };
request.AddJsonBody(datosTotal);
// Ejecuta invocación sincrónica, deserializando respuesta según el tipo indicado en la invocación del Post<T>.
var subtotalResp = total.Post<SubTotalResp>(request) ?? throw new ApplicationException("Servicio POST 'Subtotal' retorna nulos.");
Log.Debug($"GkPruebas: Respuesta Cliente - POST - response {subtotalResp}");
pOSReceiptEvent = new POSReceiptEventResponse(1, TipoMensaje.Event, RequestId, RequestId, "3200", "3200");
totalEvent = new TotalsEventResponse(1, TipoMensaje.Event, RequestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
getTotalsResponse = new GetTotalsResponse(1, TipoMensaje.Resp, RequestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
return (new Respuestas { pOSReceiptEvent, totalEvent, getTotalsResponse });
}
public IComando CreaCopia()
{
return (GetTotalsRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase getTotalsRequestDTO)
{
Request = (GetTotalsRequest)getTotalsRequestDTO;
}
}
}
using EvaPOS_API_FRAME.Comandos;
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.Suspend;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using gatewayGK.POSGk;
using gatewayGK.RespuestasXML.Suspend;
using RestSharp;
using SCOGateway.POSGk;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gatewayGK.ComandosGkPruebas
{
///<summary>
/// Comando para suspender transacción
/// </summary>
public class SuspendTransactionCmdGK : IComando
{
public string Referencia { get; set; } = "scsns:Suspend";
/// <summary>
/// DTO con solicitud.
/// </summary>
public SuspendTransactionRequest Request { get; private set; }
/// <summary>
/// Procesa y responde SuspendTransactionRequest.
/// </summary>
public const string UrlSuspend = ConstantesGK.UrlBaseMaqueta + "/com.gk_software.pos.api.service.transaction.PosTransactionService/suspendTransaction";
/// <summary>
/// Url servicio subtotal Gk.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd SuspendTransactionRequesttCmd ejecutado. SuspendTransactionRequest : {SuspendTransactionRequest}", Request.RequestID);
int requestId = Request.RequestID;
Respuestas respuesta = null;
var suspend = new RestClient(UrlSuspend);
var request = new RestRequest(UrlSuspend, Method.Post);
var suspendDatos = new SuspendTransactionReq { SuspendNumber = "1234", BarCodePrefix = "1234"};
request.AddJsonBody(suspendDatos);
// Ejecuta invocación sincrónica, deserializando respuesta según el tipo indicado en la invocación del Post<T>.
var suspenderResp = suspend.Post<SuspendTransactionResp>(request) ?? throw new ApplicationException("Servicio POST 'Suspender' retorna nulos.");
Log.Debug($"GkPruebas: Respuesta Cliente - POST - response {suspenderResp}");
if ( suspenderResp != null)
{
var suspendTransaction = new SuspendTransactionResponse(1, TipoMensaje.Resp, requestId);
respuesta = new Respuestas { suspendTransaction };
}
else
{
var suspendTransaction = new SuspendTransactionResponseError(1, TipoMensaje.Resp, requestId, "No se puede realizar la suspension", "APPLICATION_NOT_IN_PROPER_STATE: TRANSACTION_NOT_ACTIVE");
respuesta = new Respuestas { suspendTransaction };
}
return respuesta;
}
public IComando CreaCopia()
{
return (SuspendTransactionRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase suspendTransactionRequest)
{
Request = (SuspendTransactionRequest)suspendTransactionRequest;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.RestriccionEdad;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Comando para la construcción de la logica "Restricción de edad"
/// </summary>
public class AddCustomerBirthdateCmd : IComando
{
public string Referencia { get; set; } = "scsns:AddCustomerBirthdate";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddCustomerBirthdateRequest Request { get; private set; }
/// <summary>
/// Procesa y responde AddCustomerBirthdateRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddCustomerBirthdateRequestCmd ejecutado. AddCustomerBirthdateRequest : {AddCustomerBirthdateRequest}", Request.RequestID);
int requestId = Request.RequestID;
var addCustomerBirthdate = new AddCustomerBirthdateResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { addCustomerBirthdate });
}
public IComando CreaCopia()
{
return (AddCustomerBirthdateCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase addCustomerBirthdateRequest)
{
Request = (AddCustomerBirthdateRequest)addCustomerBirthdateRequest;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.DTO.Intercambio;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.AddCustomer;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
/// <summary>
/// Comando para agregar un cliente
/// </summary>
public class AddCustomerCmd : IComando
{
public string Referencia { get; set; } = "scsns:AddCustomer";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddCustomerRequest Request { get; set; }
/// <summary>
/// Procesa y responde AddCustomerRequest.
/// </summary>
///
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddCustomerRequestCmd ejecutado. AddCustomerRequest : {AddCustomerRequest}", Request.RequestID);
int requestId = Request.RequestID;
Respuestas respuesta = null;
AddCustomerResponse addCustomer = null;
AddCustomerResponseNoEncontrado addCustomerNotFound = null;
TransactionStatusEvent transactionStatusEvent = null;
POSReceiptEventHeaderResponse posReceiptEventHeader = null;
POSReceiptEvent pOSReceiptEvent = null;
var date = DateTime.Now.ToString("dd/MM/yyyy");
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.AMDesignator = "AM";
culture.DateTimeFormat.PMDesignator = "PM";
var time = DateTime.Now.ToString("hh:mm tt", culture);
string idCliente = Request.CustomerIdentifier.CustomerID;
transactionStatusEvent = new TransactionStatusEvent(1, TipoMensaje.Event, requestId, "TRANSACTION_START", 1, "regularSale", "sales", date, time);
pOSReceiptEvent = new POSReceiptEvent(1, TipoMensaje.Event, requestId, "Customer", 0, "Body", requestId, 1, "center", "LineItem", "ItemSale", "Cliente:" + " " + "Brayan", "Add");
posReceiptEventHeader = new POSReceiptEventHeaderResponse(1, TipoMensaje.Event, requestId);
addCustomer = new AddCustomerResponse(1, TipoMensaje.Resp, requestId, "123456", "Brayan", 1234);
respuesta = new Respuestas { transactionStatusEvent, posReceiptEventHeader, pOSReceiptEvent, addCustomer };
return respuesta;
}
public IComando CreaCopia()
{
return (AddCustomerCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase addCustomerRequest)
{
Request = (AddCustomerRequest)addCustomerRequest;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EvaPOS_API_FRAME.DTO.Intercambio;
using System.Collections;
using System.Xml.Linq;
using System.Globalization;
using System.IO;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa solicitudes del primer item agregado.
/// </summary>
public class AddItemRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:AddItem";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddItemRequest Request { get; private set; }
/// <summary>
/// Procesa y responde ReportStatusEventsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddItemRequestDTO ejecutado. AddItemRequest : {AddItemRequest}", Request.RequestID);
//int requestIdGuardado = RequestIdGuardado();
POSBCStatusEvent posbcStatus = null;
TransactionStatusEvent transactionStatusEvent = null;
POSReceiptEventHeaderResponse posReceiptEventHeader = null;
POSReceiptEvent pOSReceiptEvent = null;
TotalsEventResponse totalEvent = null;
AddItemResponse itemResponse = null;
//Variables para manejar las respuestas de error - (item con peso, no se encuentra el item,item requiere cantidad)
AddItemResponseError addItemResponseError = null;
Respuestas respuesta = null;
Venta venta = null;
//Variables del adaptador de entrada - addItem
int requestId = Request.RequestID;
long barCode = 0;
int quantity = Request.ItemIdentifier.Quantity == 0 ? 1 : Request.ItemIdentifier.Quantity;
bool cancelItem = Request.ItemIdentifier.VoidFlag;
double peso = Request.ItemIdentifier.ScaleWeight;
//Logica para validar el valor del codigo de barras
//Si es un item de busqueda o imagen, trae el valor KeyedItemID, si es escaneado trae barcode
if (Request.ItemIdentifier.BarCode != null)
barCode = Request.ItemIdentifier.BarCode.ScanDataLabel;
else
barCode = Request.ItemIdentifier.KeyedItemID;
string tomarNombreCorto = "";
//Valores que se mandan en chec
var date = DateTime.Now.ToString("dd/MM/yyyy");
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.AMDesignator = "AM";
culture.DateTimeFormat.PMDesignator = "PM";
var time = DateTime.Now.ToString("hh:mm tt", culture);
transactionStatusEvent = new TransactionStatusEvent(1, TipoMensaje.Event, requestId, "TRANSACTION_START", 1, "regularSale", "sales", date, time);
pOSReceiptEvent = new POSReceiptEvent(1, TipoMensaje.Event, requestId, "Customer", 0, "Body", requestId, 1, "center", "LineItem", "ItemSale", "1234" + " " + "Producto" + " " + "1" + " " + 3200, "Add");
posReceiptEventHeader = new POSReceiptEventHeaderResponse(1, TipoMensaje.Event, requestId);
totalEvent = new TotalsEventResponse(1, TipoMensaje.Event, requestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
itemResponse = new AddItemResponse(1, TipoMensaje.Resp, requestId, tomarNombreCorto, "false", "false", "true", "1234", "ScannedItemCode", "3200", 1, "3200", 0, "0.00", 0, 1, 0, "unit", "false", 0, "false", "false", "true", "true");
respuesta = new Respuestas { transactionStatusEvent, posReceiptEventHeader, pOSReceiptEvent, totalEvent, itemResponse };
return (respuesta);
}
public IComando CreaCopia()
{
return (AddItemRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase addItemRequestDTO)
{
Request = (AddItemRequest)addItemRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa el salto del empaque del producto
/// </summary>
public class AddReceiptLinesRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:AddReceiptLines";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddReceiptLinesRequest Request { get; private set; }
/// <summary>
/// Procesa y responde ReportStatusEventsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddReceiptLinesRequestCmd ejecutado. AddReceiptLinesRequest : {AddReceiptLinesRequest}", Request.RequestID);
int requestId = Request.RequestID;
var addReceiptLinesResponse =new AddReceiptLinesResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { addReceiptLinesResponse });
}
public IComando CreaCopia()
{
return (AddReceiptLinesRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase addReceiptLinesRequest)
{
Request = (AddReceiptLinesRequest)addReceiptLinesRequest;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.DTO.Intercambio;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.CancelDatafono;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using System.Net.Http;
using System.IO;
using System.Text;
using System.Security.Cryptography;
using EvaPOS_API_FRAME.RespuestasXML.Printer;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa solicitudes del pago con tarjeta de debito
/// </summary>
public class AddTenderDebitCmd : IComando
{
public string Referencia { get; set; } = "scsns:AddTender";
/// <summary>
/// DTO con solicitud.
/// </summary>
public AddTenderRequest Request { get; private set; }
/// <summary>
/// Procesa y responde eventos del pago con tarjeta de debito
/// </summary>
public Respuestas Ejecutar()
{
//instanciar xml de respuestas
TransactionStatusEvent transactionStatusEvent = null;
POSReceiptEventDebit posbcEvent1 = null;
POSReceiptEvent posbcEvent3 = null;
POSReceiptEvent posbcEvent4 = null;
TotalsEventResponse totalEvent = null;
AddTenderDebitResponse addTender = null;
AddTenderResponseError cancelActionResponse = null;
POSBCStatusEventPrinterSingle posbcStatusPrinter = null;
Log.Debug("Cmd AddTenderDebitDTO ejecutado. AddTenderDebit : {AddTenderDebit}", Request.RequestID);
int requestId = Request.RequestID;
ReportStatusEventsRequestCmd reportStatusEventsRequestCmd = new ReportStatusEventsRequestCmd();
AddItemRequestCmd addItemRequestCmd = new AddItemRequestCmd();
Respuestas respuestasChec = null;
// Ingresamos al Datafono y realizamos la transaccion
var date = DateTime.Now.ToString("MM/dd/yyyy");
//GuardarId(requestId);
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.AMDesignator = "AM";
culture.DateTimeFormat.PMDesignator = "PM";
var time = DateTime.Now.ToString("hh:mm tt", culture);
posbcEvent3 = new POSReceiptEvent(1, TipoMensaje.Event, requestId, "Customer", 0, "Trailer", requestId, 1, "center", "Trailer", "WorkstationInfo", date + time, "Add");
posbcEvent4 = new POSReceiptEvent(1, TipoMensaje.Event, requestId, "Customer", 0, "Trailer", requestId, 1, "center", "Trailer", "WorkstationInfo", date + time, "Add");
posbcEvent1 = new POSReceiptEventDebit(1, TipoMensaje.Event, requestId, date + time);
totalEvent = new TotalsEventResponse(1, TipoMensaje.Event, requestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 5200, 0, "0.00", "0.00");
transactionStatusEvent = new TransactionStatusEvent(1, TipoMensaje.Event, requestId, "TRANSACTION_END", 1, "regularSale", "sales", date, time);
addTender = new AddTenderDebitResponse(1, TipoMensaje.Resp, requestId, "false", "false", "false", "3200", "debit", "true", "9999", -1, 00350383, 350384, 0, "false", "approved", "false");
respuestasChec = new Respuestas { posbcEvent3, posbcEvent4, posbcEvent1, totalEvent, transactionStatusEvent, addTender };
return respuestasChec;
}
public IComando CreaCopia()
{
return (AddTenderDebitCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase AddTenderRequestDebitDTO)
{
Request = (AddTenderRequest)AddTenderRequestDebitDTO;
}
}
}
using EvaPOS_API_FRAME.RespuestasXML.CancelDatafono;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static EvaPOS_API_FRAME.DTO.CancelActionDTO;
namespace EvaPOS_API_FRAME.Comandos
{
/// <summary>
/// Comando para cancelar acción en el Datafóno
/// </summary>
public class CancelActionCmd : IComando
{
public string Referencia { get; set; } = "scsns:CancelAction";
/// <summary>
/// DTO con la solicitud de referencia.
/// </summary>
public CancelActionRequest Request { get; private set; }
/// <summary>
/// Procesa y responde el evento Request.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd CancelActionCmd ejecutado. CancelAction : {CancelActionRequest}", Request.RequestID);
int requestId = Request.RequestID;
CancelActionResponse cancelActionResponse = new CancelActionResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { cancelActionResponse });
}
public IComando CreaCopia()
{
return (CancelActionCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase CancelActionDTO)
{
Request = (CancelActionRequest)CancelActionDTO;
}
}
}
using EvaPosSrvDTO;
using EvaPosSrvResp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
/// <summary>
/// Comando para procesar situaciones de error.
/// </summary>
public class ErrorCmd : IComando
{
/// <summary>
/// Referencia del mensaje.
/// </summary>
public string Referencia { get; set; } = "error";
/// <summary>
/// Campo ErrorDTO
/// </summary>
public ErrorDTO? Error { get; private set; }
/// <summary>
/// Constructor desde un DTO con mensaje de texto.
/// </summary>
public Respuestas Ejecutar()
{
if (Error == null)
Error = new ErrorDTO(1, TipoMensaje.Event, "Mensaje de error no inicializado.");
return (new Respuestas { new RespuestaGenerica(Error.Texto) });
}
/// <summary>
/// Retorna copia del comando.
/// </summary>
public IComando CreaCopia()
{
return (ErrorCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase errorDTO)
{
Error = (ErrorDTO)errorDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.DTO.Intercambio;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EvaPOS_API_FRAME.Comandos;
using System.Xml.Linq;
using System.Globalization;
using System.IO;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Comando que procesa el estado de pagar venta
/// </summary>
public class GetTotalsRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:GetTotals";
/// <summary>
/// DTO con solicitud.
/// </summary>
public GetTotalsRequest Request { get; private set; }
/// <summary>
/// Procesa y responde GetTotalsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd GetTotalsRequestDTO ejecutado. GetTotalsRequest : {GetTotalsRequest}", Request.RequestID);
GetTotalsResponse getTotalsResponse = null;
POSReceiptEventResponse pOSReceiptEvent = null;
TotalsEventResponse totalEvent = null;
int RequestId = Request.RequestID;
AddItemRequestCmd addItemRequestCmd = new AddItemRequestCmd();
pOSReceiptEvent = new POSReceiptEventResponse(1, TipoMensaje.Event, RequestId, RequestId, "3200", "3200");
totalEvent = new TotalsEventResponse(1, TipoMensaje.Event, RequestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
getTotalsResponse = new GetTotalsResponse(1, TipoMensaje.Resp, RequestId, "3200", "3200", "3200", "3200", "0.00", "0.00", "0.00", "0.00", "0.00", 1, 0, "0.00", "0.00");
return (new Respuestas { pOSReceiptEvent,totalEvent, getTotalsResponse });
}
public IComando CreaCopia()
{
return (GetTotalsRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase getTotalsRequestDTO)
{
Request = (GetTotalsRequest)getTotalsRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO.Intercambio;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.Printer;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
namespace EvaPOS_API_FRAME.Comandos
{
/// <summary>
/// Procesa solicitudes de InitializeRequest.
/// </summary>
public class InitializeRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:Initialize";
/// <summary>
/// DTO con solicitud.
/// </summary>
public InitializeRequestDTO Request { get; private set; }
/// <summary>
/// Procesa y responde InitializeRequest.
/// </summary>
public Respuestas Ejecutar()
{
int terminalNumber = Request.TerminalNumber;
Log.Debug("Cmd InitializeRequestCmd ejecutado. Request id: {id}, terminal: {terminal}, recovery: {recovery}", Request.OperatorID, Request.TerminalNumber, Request.Recovery);
var posbcStatus1 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "CONNECTING_TO_POS", "Connecting to POS system");
var posbcStatus2 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "CONNECTED_TO_POS", "Connected to POS system");
var posbcStatus3 = new POSBCStatusEvent(1, TipoMensaje.Event, "INFO", "POS_RESOURCES_INITIALIZED", "POS Resources Initialized");
var inicializacionOk = new InitializeResponse(1, TipoMensaje.Resp, terminalNumber);
return (new Respuestas { posbcStatus1, posbcStatus2, posbcStatus3,inicializacionOk });
}
public IComando CreaCopia()
{
return (InitializeRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase initializeRequestDTO)
{
Request = (InitializeRequestDTO)initializeRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.Printer;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Comando que procesa las solicitudes de la impresora
///</summary>
public class PrintCurrentReceiptsRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:PrintCurrentReceipts";
/// <summary>
/// DTO con solicitud.
/// </summary>
public PrintCurrentReceiptsRequest Request { get; private set; }
/// <summary>
/// Procesa y responde eventos de la impresora dependiendo al id
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd PrintCurrentReceiptsRequesDTO ejecutado. PrintCurrentReceiptsReques : {PrintCurrentReceiptsReques}", Request.RequestID);
int requestId = Request.RequestID;
var posbcEventPrinter = new POSBCStatusEventPrinter(1, TipoMensaje.Event, "INFO", "PRINTING", "Printing Job", 1, 1);
var printCurrentReceipts = new PrintCurrentReceiptsResponse(1,TipoMensaje.Resp, requestId);
return (new Respuestas { posbcEventPrinter, printCurrentReceipts });
}
public IComando CreaCopia()
{
return (PrintCurrentReceiptsRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase printCurrentReceiptsRequestDTO)
{
Request = (PrintCurrentReceiptsRequest)printCurrentReceiptsRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
/// <summary>
/// Procesa solicitudes de QueryStatusRequest.
/// </summary>
public class QueryStatusRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:QueryStatus";
/// <summary>
/// DTO con solicitud.
/// </summary>
public QueryStatusRequestDTO Request { get; private set; }
/// <summary>
/// Procesa y responde QueryStatusRequest.
/// </summary>
public Respuestas Ejecutar()
{
//Mirar las tildes que hay problema con el chec
var date = DateTime.Now.ToString("dd MM yyyy");
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.AMDesignator = "AM";
culture.DateTimeFormat.PMDesignator = "PM";
var time = DateTime.Now.ToString("hh:mm tt", culture);
Log.Debug("Cmd QueryStatusRequesttDTO ejecutado. QueryStatusRequest : {QueryStatusRequest}", Request.QueryStatusRequest);
var queryStatusResponse = new QueryStatusResponse(1, TipoMensaje.Resp, 2, "NOT_IN_TRANSACTION", 4, 2, 2067, "Toshiba Store Integrator Application Extension Facility version: 4.2.2067 Built: Jun 08, 2021 06:49 PM (SI.base.wyvern )", "28 de abril de 2023 05:31:35 PM COT",2, false);
return (new Respuestas { queryStatusResponse });
}
public IComando CreaCopia()
{
return (QueryStatusRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase queryStatusRequestDTO)
{
Request = (QueryStatusRequestDTO)queryStatusRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static EvaPOS_API_FRAME.DTO.RemoveReceiptLinesDTO;
namespace EvaPOS_API_FRAME.Comandos
{
public class RemoveReceiptLinesCmd : IComando
{
/// <summary>
/// Comando que procesa la solicitud de CHEC "Saltar a la bolsa"
/// </summary>
public string Referencia { get; set; } = "scsns:RemoveReceiptLines";
/// <summary>
/// DTO con solicitud.
/// </summary>
public RemoveReceiptLinesRequest Request { get; private set; }
/// <summary>
/// Procesa y responde ReportStatusEventsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd AddReceiptLinesRequestCmd ejecutado. AddReceiptLinesRequest : {AddReceiptLinesRequest}", Request.RequestID);
int requestId = Request.RequestID;
var removeReceiptLinesResponse = new RemoveReceiptLinesResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { removeReceiptLinesResponse });
}
public IComando CreaCopia()
{
return (RemoveReceiptLinesCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase removeReceiptLinesRequest)
{
Request = (RemoveReceiptLinesRequest)removeReceiptLinesRequest;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EvaPOS_API_FRAME.RespuestasXML;
using System.IO;
using EvaPOS_API_FRAME.DTO.Intercambio;
using EvaPOS_API_FRAME.RespuestasXML.Printer;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa solicitudes de ReportStatusEventsRequest.
/// </summary>
public class ReportStatusEventsRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:ReportStatusEvents";
/// <summary>
/// DTO con solicitud.
/// </summary>
public ReportStatusEventsRequestDTO Request { get; private set; }
/// <summary>
/// Procesa y responde ReportStatusEventsRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd ReportStatusEventsRequestDTO ejecutado. ReportStatusEventsRequest : {ReportStatusEventsRequest}", Request.RequestID);
POSBCStatusEventPrinterSingle posbcStatusPrinter = null;
int requestId = Request.RequestID;
var ReportStatusEventsResponse = new ReportStatusEventsResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { ReportStatusEventsResponse });
}
public IComando CreaCopia()
{
return (ReportStatusEventsRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase reportStatusEventsRequestDTO)
{
Request = (ReportStatusEventsRequestDTO)reportStatusEventsRequestDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.Reprint;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa el comando cuando se va a reimprimir una transacción
/// </summary>
public class ReprintReceiptsCmd : IComando
{
public string Referencia { get; set; } = "scsns:ReprintReceipts";
/// <summary>
/// DTO con solicitud.
/// </summary>
public ReprintReceiptsRequestDTO Request { get; private set; }
/// <summary>
/// Procesa y responde del evento reimprimir.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd ReprintReceiptsRequestDTO ejecutado. ReprintReceiptsRequest : {ReprintReceiptsRequest}", Request.RequestID);
ReprintReceiptsResponse reprintReceipts = null;
int requestId = Request.RequestID;
reprintReceipts = new ReprintReceiptsResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { reprintReceipts });
}
public IComando CreaCopia()
{
return (ReprintReceiptsCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase reprintReceiptsDTO)
{
Request = (ReprintReceiptsRequestDTO)reprintReceiptsDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML;
using EvaPOS_API_FRAME.RespuestasXML.Printer;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Procesa solicitudes del SignOff
/// </summary>
public class SignOffResponseCmd: IComando
{
public string Referencia { get; set; } = "scsns:SignOff";
/// <summary>
/// DTO con solicitud.
/// </summary>
public SignOffRequestDTO Request { get; private set; }
/// <summary>
/// Procesa y responde SignOffRequest.
/// </summary>
public Respuestas Ejecutar()
{
Log.Debug("Cmd SignOffRequestDTO ejecutado. SignOffRequest : {SignOffRequest}", Request.OperadorID);
string requestId = Request.OperadorID;
var signOffResponse = new SignOffResponse(1, TipoMensaje.Resp, requestId);
return (new Respuestas { signOffResponse });
}
public IComando CreaCopia()
{
return (SignOffResponseCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase signOffResponseDTO)
{
Request = (SignOffRequestDTO)signOffResponseDTO;
}
}
}
using EvaPOS_API_FRAME.DTO;
using EvaPOS_API_FRAME.RespuestasXML.Suspend;
using EvaPosSrvDTO;
using EvaPosSrvResp;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvaPOS_API_FRAME.Comandos
{
///<summary>
/// Comando para suspender transacción
/// </summary>
public class SuspendTransactionRequestCmd : IComando
{
public string Referencia { get; set; } = "scsns:Suspend";
/// <summary>
/// DTO con solicitud.
/// </summary>
public SuspendTransactionRequest Request { get; private set; }
/// <summary>
/// Procesa y responde SuspendTransactionRequest.
/// </summary>
///
public Respuestas Ejecutar()
{
Log.Debug("Cmd SuspendTransactionRequesttCmd ejecutado. SuspendTransactionRequest : {SuspendTransactionRequest}", Request.RequestID);
int requestId = Request.RequestID;
var suspendTransaction = new SuspendTransactionResponseError(1, TipoMensaje.Resp, requestId, "No se puede realizar la suspension", "APPLICATION_NOT_IN_PROPER_STATE: TRANSACTION_NOT_ACTIVE");
return (new Respuestas { suspendTransaction });
}
public IComando CreaCopia()
{
return (SuspendTransactionRequestCmd)this.MemberwiseClone();
}
public void CargaDTO(DTOBase suspendTransactionRequest)
{
Request = (SuspendTransactionRequest)suspendTransactionRequest;
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment