public IActionResult RequestServiceDT([FromQuery] int User, [FromQuery] string SKU, [FromQuery] string Reference)
        {
            //ID del servicio
            int service = 0;

            //Separamos el prefijo y el sku
            string[] values = ExtensionMethods.ExtSKU.SeparateSku(SKU);

            string sPrefix = values[0];

            string sSKU = values[1];

            //Indicamos que servicio utilizar
            switch (sPrefix)
            {
            case "DT":
                service = 1;
                break;

            case "TN":
                service = 2;
                break;
            }

            //Obtenemos algun identificador del usuario que este solicitando el servicio
            string UserId = User.ToString();

            // Clase en donde se realizaran las operaciones en la Base de datos
            var crud = new DbCrud(_context);

            //La transaccion actual que viajara a travez de todos los metodos del WS
            long currentTransaction = 0;

            var isTransactionActive = crud.CheckTransaction(User);

            if (isTransactionActive.estatus == true && isTransactionActive.transactionStatus == 0)
            {
                //Obtenemos la transaccion "vacia" del usuario
                currentTransaction = isTransactionActive.currentTransaction;
            }
            else if (isTransactionActive.estatus == false || isTransactionActive.transactionStatus != 0)
            {
                //Se crea el registro de la transaccion del usuario por defecto vacia
                //Esto para obtener el numero de transaccion actual de la solicitud
                //que se esta por procesar.
                var reg = crud.InsertInitialTransaction(User, SKU, Reference);

                //Validamos que se haya insertado el registro "vacio"
                if (!reg)
                {
                    return(Content("La solicitud no pudo ser procesada"));
                }
            }

            //Aqui es Donde guardaremos el resultado final de este Action Method
            string result = "";

            //Conseguimos las credenciales
            var cnx = _context.conexion_Configs.Find(service);


            //validamos que servicio va hacer solicitado
            if (sPrefix == "DT")
            {
                //Almacenamos dentro de un arreglo los datos importantes para ejecutar el WS
                string[] data =
                {
                    sSKU,
                    Reference,
                    currentTransaction.ToString(),
                    cnx.Usr,
                    cnx.Pwd,
                    cnx.CrypKey
                };

                //Mandamos los datos por el constructor
                Diestel.Clases.RequestActiveService request = new Diestel.Clases.RequestActiveService(data);

                //Guardamos el resultado del WS
                var x = request.RequestService();

                var isUpdateSucessful = crud.UpdateUserTransaction(currentTransaction);

                if (isUpdateSucessful)
                {
                    result = x.response;
                    var success = crud.UpdateTxTest(result, currentTransaction);
                    if (success)
                    {
                        return(Content(result));
                    }
                }
            }

            return(Content(result));
        }
        public IActionResult PayServiceDT()
        {
            try
            {
                var reader = new StreamReader(Request.Body);

                var body = reader.ReadToEnd();

                string jsonContent = body;

                var     root       = JArray.Parse(jsonContent);
                var     firstChild = JArray.Parse(root[0].ToString());
                dynamic fData      = JObject.Parse(firstChild[0].ToString());

                int    UserId     = fData.Usuario;
                string wSKU       = fData.SKU;
                string JReference = fData.Referencia;

                string[] values  = ExtensionMethods.ExtSKU.SeparateSku(wSKU);
                string   JPrefix = values[0];
                string   JSku    = values[1];


                int index = 0;

                switch (JPrefix)
                {
                case "DT":
                    index = 1;
                    break;

                case "TN":
                    index = 2;
                    break;
                }

                //La transaccion actual que viajara a travez de todos los metodos del WS
                long currentTransaction = 0;

                var crud = new DbCrud(_context);

                var isTransactionActive = crud.CheckTransaction(UserId);

                if (isTransactionActive.estatus == true && isTransactionActive.transactionStatus == 0)
                {
                    //Obtenemos la transaccion con "estatus 0" del usuario
                    currentTransaction = isTransactionActive.currentTransaction;
                }

                var dbconexion = _context.conexion_Configs.Find(index);

                if (JPrefix == "DT")
                {
                    List <cCampo> campos = null;

                    campos = JsonConvert.DeserializeObject <List <cCampo> >(root[1].ToString());


                    string[] data = new string[]
                    {
                        dbconexion.Usr,
                        dbconexion.Pwd,
                        dbconexion.CrypKey,
                        currentTransaction.ToString()
                    };


                    Diestel.Clases.PayServiceDiestel psd = new Diestel.Clases.PayServiceDiestel(data);

                    var pay = psd.PayService(campos);

                    if (pay.response != string.Empty && pay.status == 1)
                    {
                        return(Ok(pay.response));
                    }
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(Content(ex.ToString()));
            }
        }