示例#1
0
        /// <summary>
        /// Este Método realiza la verificación del estatus de la API.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Enable/CheckStatus
        /// La petición no necesita parámetros.
        /// </summary>
        /// <returns>IActionResult Json con 1= Éxito en la transacción, 0=No exito</returns>       
        public IActionResult CheckStatus()
        {             

            try
            {

                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var BtEnableStatus = context.Enabled.FromSql("spGetEnableStatus").ToList();
                    bool stats = BtEnableStatus.ElementAt(0).IsActive;
                        if (stats)
                        {
                            return Ok("1"); //El estatus es Habilitado
                        }
                        else
                        {
                            return Ok("0"); // El estatus es Inhabilitado
                        }
                    }

                }
                catch
                {
                    return BadRequest("0"); //("No se ha podido llevar a cabo la transacción");
                }

        } //End CheckStatus
示例#2
0
        /// <Sumary>
        /// Este método se utiliza para obtener la lista completa de la tabla de monitoreo de transacciones.
        /// Para acceder a esta funcionalidad de la API, llamar: http://localhost:52766/api/Monitor/lista
        ///
        /// <Sumary/>
        /// <param name="ListaMonitor"></param>
        /// <returns>Json con la Lista de Actividades realizadas</returns>
        public IActionResult ListaMonitor()
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Lista Monitor");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var    ListaMonitoreo = context.Monitor.FromSql("spGetMonitoreo").ToList();
                        int    tamanio        = ListaMonitoreo.Count();
                        int    cntFor         = 0;
                        string ListaFinal     = "{ \"data\": [";
                        foreach (var item in ListaMonitoreo)
                        {
                            cntFor++;
                            ListaFinal = ListaFinal + "[\"" + item.MonitorId + "\",";
                            ListaFinal = ListaFinal + "\"" + item.Usuario + "\",";
                            ListaFinal = ListaFinal + "\"" + item.timestamp + "\",";
                            ListaFinal = ListaFinal + "\"" + item.Actividad + "\"]";

                            if (tamanio > cntFor)
                            {
                                ListaFinal = ListaFinal + ",";
                            }
                        }
                        ListaFinal = ListaFinal + "]}";


                        if (tamanio > 0)
                        {
                            return(Ok(ListaFinal));
                        }
                        else
                        {
                            return(BadRequest("No se encontraron Transacciones en la Lista de Monitoreo"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest("La solicitud de Lista de monitoreo no pudo llevarse a cabo, debido al error: " + e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#3
0
        [HttpPost("listaProveed")] // Para acceder a esta funcionalidad de la API, llamar: http://localhost:52766/api/proveedores/listaProveed

        public IActionResult ListaProveedores()
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            // Aquí ingresar la validación del Scheduler:
            bool validaciones;

            validaciones = new Validaciones().EjecutaValidacion(payload, "Lista Proveedores");
            if (validaciones)
            {
                // falta mandar a llamar la validación del TOKEN

                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var proveed = context.Proveedor.ToList();
                        return(Ok(proveed));
                    }
                } catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }
        }
示例#4
0
        /// <summary>
        /// Este Método realiza la activación de la API por completo.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Enable/Enable
        /// La petición debe contener una cadena con valor Usuario.
        /// "Usuario"
        /// </summary>
        /// <returns>IActionResult Json con 1= Éxito en la transacción, 0=No exito</returns>       
        public IActionResult Enable([FromBody] string usuario)
        {          
                try
                {

                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var BtEnableStatus = context.Enabled.FromSql("spInsEnableStatus @p0", usuario).ToList();
                        if (BtEnableStatus.Count > 0)
                        {
                            return Ok("1"); // Transacción exitosa
                        }
                        else
                        {
                            return BadRequest("0"); // Transacción no exitosa
                        }
                    }

                }
                catch
                {
                    return BadRequest("0"); //No se pudo llevar a cabo la transacción
                }
            
        } /*End Enable()*/
示例#5
0
        /// <summary>
        /// Este Método registra nuevas horas de Inicio y Fin para la Utilización del API.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Scheduler/UpdSchedule
        /// La petición debe contener Hora de Inicio, Hora de Fin y Usuario que solicita.
        /// El formato de la petición debe ser el siguiente:
        /// {"HoraInicio": "05:00:00",  "HoraFin": "05:00:00",	"usr": "******" }
        /// </summary>
        /// <returns>IActionResult Json con respuesta de éxito o error</returns>
        public IActionResult ActualizaHorario([FromBody] SchedulerJson horario)
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "UpdSchedule");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        TimeSpan hrIn = TimeSpan.Parse(horario.HoraInicio);
                        TimeSpan hrFn = TimeSpan.Parse(horario.HoraFin);
                        var      Sch  = context.Scheduler.FromSql("spInsSchedule @p0, @p1, @p2",
                                                                  hrIn, hrFn, horario.usr).ToList();
                        string horarioInicio = Sch.ElementAt(0).horainicio.ToString();
                        string horarioFin    = Sch.ElementAt(0).horaFin.ToString();


                        if (Sch.Count > 0)
                        {
                            return(Ok("La nueva hora de Inicio es: " + horarioInicio + " y la nueva hora de Finalización es: " + horarioFin));
                        }
                        else
                        {
                            return(BadRequest("No se encontró ningún horario establecido"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#6
0
        public bool CheckAvailability()
        {
            using (var context = new Oxxo2.DataAccess.OxxoContext())
            {
                var  BtEnableStatus = context.Enabled.FromSql("spGetEnableStatus").ToList();
                bool isActive       = bool.Parse(BtEnableStatus.ElementAt(0).IsActive.ToString());

                if (isActive)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
示例#7
0
        /// <summary>
        /// Este Método devuelve la hora de Inicio y Fin en que se encuentra habilitada la API.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Scheduler/GetSchedule
        /// La petición no debe contener ningún parámetro
        /// </summary>
        /// <returns>IActionResult Json con ---------------</returns>
        public IActionResult ObtenHorario()
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Get Schedule");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var    Sch           = context.Scheduler.FromSql("spGetSchedule").ToList();
                        string horarioInicio = Sch.ElementAt(0).horainicio.ToString();
                        string horarioFin    = Sch.ElementAt(0).horaFin.ToString();

                        if (Sch.Count > 0)
                        {
                            return(Ok("La hora de Inicio es: " + horarioInicio + " y la hora de Finalización es: " + horarioFin));
                        }
                        else
                        {
                            return(BadRequest("No se encontró ningún horario establecido"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#8
0
        /// <Sumary>
        /// Este método se utiliza para obtener la lista de productos de un proveedor en específico.
        /// Para acceder a esta funcionalidad de la API, llamar: http://localhost:52766/api/productos/listaProductos
        /// Para llamar a este método, se deberá enviar un Json desde el body request del tipo:
        /// { "ProveedorId": 2   }
        /// <Sumary/>
        /// <param name="ListaProductos"></param>
        /// <returns>Json con la Lista de Productos del proveedor Especificado en Parámetros</returns>
        //
        public IActionResult ListaProductos([FromBody] Proveedores proveed)
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Lista Productos");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var productos = context.Producto.FromSql("spGetProdByProveed @p0", proveed.ProveedorId).ToList();
                        if (productos.Count > 0)
                        {
                            return(Ok(productos));
                        }
                        else
                        {
                            return(BadRequest("No se encontraron Productos del Proveedor Seleccionado"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#9
0
        /// <Sumary>
        /// Este método se utiliza para obtener la lista de transacciones por Usuario
        /// Para acceder a esta funcionalidad de la API, llamar: http://localhost:52766/api/Monitor/lista
        ///
        /// <Sumary/>
        /// <param name="MonitorUsr"></param>
        /// <returns>Json con la Lista de Actividades realizadas</returns>
        public IActionResult MonitorUsr([FromBody] Monitoreo usr)
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Monitor Usr");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var ListaMonitoreo = context.Monitor.FromSql("spGetEncabezadoInventario @p0", usr.Usuario).ToList();
                        if (ListaMonitoreo.Count > 0)
                        {
                            return(Ok(ListaMonitoreo));
                        }
                        else
                        {
                            return(BadRequest("No se encontraron Transacciones en la Lista de Monitoreo"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest("La solicitud de Lista de monitoreo no pudo llevarse a cabo, debido al error: " + e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#10
0
        /// <summary>

        /// Este Método devuelve una lista completa de los Inventarios incompletos registrados en el sistema,
        /// para que el usuario pueda acceder a estos y realizar las modificaciones necesarias para continuar con el inventario.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Inventario/InventIncompleto
        /// La petición no debe contener ningún parámetro
        /// </summary>
        /// <returns>IActionResult Json con la Lista de Inventarios con Estatus Incompleto</returns>
        public IActionResult ListInventIncompleto()
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Lista Inventario Incompleto");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var InventIncompleto = context.Inventario.FromSql("spGetListaInventarioIncompleto2").ToList();
                        if (InventIncompleto.Count > 0)
                        {
                            return(Ok(InventIncompleto));
                        }
                        else
                        {
                            return(BadRequest("No se encontraron Inventarios sin Completar"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#11
0
        public IActionResult Token()
        {
            var header = Request.Headers["Authorization"];

            if (header.ToString().StartsWith("Basic"))
            {
                var credValue      = header.ToString().Substring("Basic ".Length).Trim();
                var userAndPassEnc = Encoding.UTF8.GetString(Convert.FromBase64String(credValue)); //(user:pass)
                var userAndPass    = userAndPassEnc.Split(":");

                using (var context = new Oxxo2.DataAccess.OxxoContext())
                {
                    var users = context.Usuario.ToList();
                    foreach (var user in users)
                    {
                        if (userAndPass[0] == user.Usuario && userAndPass[1] == user.contrasenia)
                        {
                            var claimsdata = new[] { new Claim(ClaimTypes.Name, user.Usuario) };
                            var key        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("asdlasfkasflasjfkasfjlasjfkasfaldsjfalfakjsdf"));//La llave no debe ir aquí, sino en el archivo de configuración, lo ponemos aquí únicamente para fines de desarrollo.
                            var signInCred = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
                            var token      = new JwtSecurityToken(
                                issuer: "mysite.com",
                                audience: "mysite.com",
                                expires: DateTime.Now.AddMinutes(100),
                                claims: claimsdata,
                                signingCredentials: signInCred
                                );

                            var tokenString = new JwtSecurityTokenHandler().WriteToken(token);

                            return(Ok(tokenString));
                        }
                    }
                    //return View();
                    return(BadRequest("The user wasn't found in the Database"));
                }
            }
            return(BadRequest("Wrong Request"));
        }
示例#12
0
        /// <summary>
        /// Este Método realiza la Desactivación de la API por completo.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Enable/Disable
        /// La petición deberá contener una cadena con el Valor de Usuario.
        /// "Usuario"
        /// </summary>
        /// <returns>IActionResult Json con 1= Éxito en la transacción, 0=No exito</returns>       
        public IActionResult Disable([FromBody] string usuario)
        {
            var header = Request.Headers["Authorization"].ToString();
            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload = ArrHeader[1].ToString();


            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "DisableAPI");
            if (valida)
            {
                try
                {

                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        var BtEnableStatus = context.Enabled.FromSql("spInsDisableStatus @p0", usuario).ToList();
                       
                        if (BtEnableStatus.Count > 0)
                        {
                            return Ok("1"); // ("La actualización se realizó correctamente");
                        }
                        else
                        {
                            return BadRequest("0"); //("No se ha llevado a cabo la actualización");
                        }
                    }

                }
                catch
                {
                    return BadRequest("0"); //("No se ha podido llevar a cabo la transacción");
                }
            }
            return BadRequest("0"); //("Petición No válida");
        } //End Disable
示例#13
0
        public bool EjecutaValidacion(string TokenCredential, string actividad)
        {
            try
            {
                // Validar Enable Status
                Boolean EnableVal;
                EnableVal = new EnableStats().CheckAvailability();

                if (!EnableVal)
                {
                    return(false);
                }

                // Validar Scheduling
                bool timerVal;
                timerVal = new Scheduler().Valida();

                if (!timerVal)
                {
                    return(false);
                }

                // Validar Permisos Usuario
                bool AuthUsr;
                AuthUsr = new Autorizacion().ValidaPermisos("admin"); // Aquí se pasa el usuario

                if (!AuthUsr)
                {
                    return(false);
                }

                //  Validación General

                if (EnableVal && timerVal && AuthUsr)
                {
                    try
                    {
                        using (var context = new Oxxo2.DataAccess.OxxoContext())
                        {
                            // Registro en Bitácora
                            var bitacora = context.Monitor.FromSql("spInsbtMonitor @p0, @p1", TokenCredential, actividad).ToList();
                        }
                    }
                    catch
                    {
                        return(false);
                    }

                    return(true);
                }
                else
                {
                    //Incluir aquí el Insert para la Bitácora
                    return(false);
                }
            }
            catch (Exception e)
            {
                return(false);
            }
        }
示例#14
0
        /// <Sumary>
        /// Este método se utiliza para registrar un Inventario:
        /// - Nuevo con productos seleccionados
        /// - Con o sin productos
        /// - Finalizado o No finalizado
        /// Para acceder a esta funcionalidad de la API, llamar: http://localhost:52766/api/Inventario/submitInventory
        /// Para llamar a este método, se deberá enviar un Json desde el body request del tipo:
        //        Nuevo Inventario solo encabezado:
        //{ "InventarioNombre": "Nuevo Inventario Guardar Sin Finalizar", "FolioGoma": "NuevoInvSF001", "Finalizado":false, "InvId": -1 }
        //    Nuevo Inventario con Productos No Finalizado:
        //{ "InventarioNombre": "InventarioFinalizadoDesdeLaApi9", "FolioGoma": "INV-IAPI-009", "Finalizado":false, "InvId": -1,
        //"ListaDeProductos":[
        //       {"id": 9, "descripcion": "Descripción del producto 9","proveedorId": 3,  "existencia": 500},
        //       {"id": 19,	"descripcion": "Descripción del producto 19",	"proveedorId": 2, "existencia": 250}]	}
        //Nuevo Inventario con productos Finalizado:
        //{ "InventarioNombre": "InventarioFinalizadoDesdeLaApi9", "FolioGoma": "INV-IAPI-009", "Finalizado":true, "InvId": -1,
        //"ListaDeProductos":[
        //       {"id": 9, "descripcion": "Descripción del producto 9","proveedorId": 3,  "existencia": 500},
        //       {"id": 19,	"descripcion": "Descripción del producto 19",	"proveedorId": 2, "existencia": 250}] }
        //Modificacion de inventario(solo datos) sin finalizar:
        //{ "InventarioNombre": "Inventario modificado desde API", "FolioGoma": "INV-IAPI-555", "Finalizado":false, "InvId": 62 }
        //Modificación de inventario(solo datos) Finalizado:
        //{ "InventarioNombre": "Inventario modificado desde API", "FolioGoma": "INV-IAPI-555", "Finalizado":true,"InvId": 62 }
        //Modif de inventario con producto sin finalizar:
        //{ "InventarioNombre": "Inventario Actualizado", "FolioGoma": "INV-IAPI-009", "Finalizado":false, "InvId": 61,
        // "ListaDeProductos":[
        //       {"id": 9, "descripcion": "Descripción del producto 9","proveedorId": 3,  "existencia": 500},
        //       {"id": 19,	"descripcion": "Descripción del producto 19",	"proveedorId": 2, "existencia": 250}]	}
        //Modif de Inventario con producto Finalizado:
        //{ "InventarioNombre": "Inventario Actualizado", "FolioGoma": "INV-IAPI-009", "Finalizado":true, "InvId": 61,
        //"ListaDeProductos":[
        //       {"id": 9, "descripcion": "Descripción del producto 9","proveedorId": 3,  "existencia": 500},
        //       {"id": 19,	"descripcion": "Descripción del producto 19",	"proveedorId": 2, "existencia": 250}]	}
        /// <Sumary/>
        /// <param name="Submit"></param>
        /// <returns>Mensaje de Error y Exito</returns>
        public IActionResult Submit([FromBody] InventarioJson item)
        {
            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();
            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "SubmitInventory");
            if (valida)
            {
                bool finalizado = item.Finalizado;
                int  InvId      = item.InvId;



                if (InvId <= 0) //Es un Inventario Nuevo
                {
                    try
                    {
                        using (var context = new Oxxo2.DataAccess.OxxoContext())
                        {
                            // Registro Inventario
                            var Inventario = context.Inventario.FromSql("spInsInventario @p0, @p1", item.InventarioNombre, item.FolioGoma).ToList();
                            context.SaveChanges();
                            //Si se guardó como finalizado, se finaliza el inventario
                            if (finalizado)
                            {
                                int idInv = Inventario.ElementAt(0).InventarioId;
                                Inventario = context.Inventario.FromSql("spUpdFinalizaInventario @p0", idInv).ToList();
                            }

                            //Si tiene Productos, se realiza el Registro de productos
                            if (item.ListaDeProductos != null)
                            {
                                IEnumerable <SubListaProductosJson> Lista = item.ListaDeProductos;
                                foreach (var producto in Lista)
                                {
                                    var ProductsInvent = context.InventarioProducto.FromSql("spInsProdInventario @p0, @p1, @p2", producto.id, Inventario.ElementAt(0).InventarioId, producto.proveedorId).ToList();
                                }
                            }
                            //Aquí se deberá regresar el algunos valores del Inventario registrado, para mostrarlos en la APP.
                            //return Ok("El inventario con Id:  " + Inventario.ElementAt(0).InventarioId.ToString() + " Fue registrado");
                            return(Ok(Inventario));
                        }
                    }
                    catch (Exception e)
                    {
                        return(BadRequest("No se registró en la B.D" + e));
                    }
                }
                else
                {
                    //Aquí se va a llamar el registro de modificacion de inventarios
                    try
                    {
                        using (var context = new Oxxo2.DataAccess.OxxoContext())
                        {
                            // Actualización de datos del Inventario
                            var Inventario = context.Inventario.FromSql("spUpdInventario @p0, @p1, @p2", InvId, item.InventarioNombre, item.FolioGoma).ToList();
                            context.SaveChanges();
                            //Si se guardó como finalizado, se finaliza el inventario
                            if (finalizado)
                            {
                                Inventario = context.Inventario.FromSql("spUpdFinalizaInventario @p0", InvId).ToList();
                            }

                            //Si tiene Productos, se realiza el Registro de productos
                            if (item.ListaDeProductos != null)
                            {
                                //primero elimino todos los  productos del Inventario
                                var delProdInv = context.Inventario.FromSql("spDelProductosInv @p0", InvId).ToList();

                                IEnumerable <SubListaProductosJson> Lista = item.ListaDeProductos;
                                foreach (var producto in Lista)
                                {
                                    var ProductsInvent = context.InventarioProducto.FromSql("spInsProdInventario @p0, @p1, @p2", producto.id, Inventario.ElementAt(0).InventarioId, producto.proveedorId).ToList();
                                }
                            }
                            //Aquí se deberá regresar el algunos valores del Inventario registrado, para mostrarlos en la APP.
                            return(Ok("El inventario con Id:  " + Inventario.ElementAt(0).InventarioId.ToString() + " Fue actualizado"));
                            //return (Inventario);
                        }
                    }
                    catch (Exception e)
                    {
                        return(BadRequest("No se registró en la B.D" + e));
                    }
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#15
0
        /// <summary>
        /// Este Método devuelve los datos del inventario incompleto seleccionado
        /// Además devuelve la lista de Productos del proveedor asociado.
        /// Además devuelve una bandera por cada producto, dónde indica Si este fue seleccionado o no.
        /// para que el usuario pueda acceder a estos y realizar las modificaciones necesarias para continuar con el inventario.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Inventario/modifInvent
        /// La petición debe contener un Json el id del Inventario.
        /// </summary>
        /// <returns>IActionResult Json con la Lista de Inventarios con Estatus Incompleto</returns>
        public IActionResult ModificaInventario([FromBody] InventarioJson InventModif)
        {
            /*Declaracion de variables*/
            //int InvId = InventModif.InvId;
            string InvNombre;
            string InvFolio;


            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Lista Inventario Incompleto");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        //Tomo los datos del Inventario del Id que recibo como parámetro:
                        var InventIncompleto = context.Inventario.FromSql("spGetInventarioById @p0", InventModif.InvId).ToList();

                        //Si el inventario existe:
                        if (InventIncompleto.Count > 0)
                        {
                            InvNombre = InventIncompleto.ElementAt(0).InventarioNombre.ToString();
                            InvFolio  = InventIncompleto.ElementAt(0).Folio_Goma.ToString();

                            // Hacer procedimiento que regrese la lista de ProductosInventario por Id de Inventario
                            var ProductosInventario = context.InventarioProducto.FromSql("spGetProdInventIncompleto @p0", InventModif.InvId).ToList();

                            if (ProductosInventario.Count <= 0) //Este if es para los Inventarios que NO tienen producto
                            {
                                InventarioJson Respuesta = new InventarioJson
                                {
                                    InvId            = InventModif.InvId,
                                    InventarioNombre = InvNombre,
                                    FolioGoma        = InvFolio
                                };

                                return(Ok(Respuesta));
                            }
                            else // Este else corresponde a los inventarios que Si tienen productos
                            {
                                int IdProveed = ProductosInventario.ElementAt(0).ProveedorId; // Aquí guardo el ID del proveedor si existe


                                //foreach (var producto in ListaProductos)
                                //{
                                //    SubListaProductosJson SubListaProductosRespuesta = new SubListaProductosJson();
                                //    SubListaProductosRespuesta.selected = false;
                                //    foreach (var selected in ProductosInventario)
                                //    {
                                //        if (producto.ProductoId == selected.ProductoId)
                                //        {
                                //            SubListaProductosRespuesta.selected = true;
                                //        }

                                //    }

                                //    SubListaProductosRespuesta.id = producto.ProductoId;
                                //    SubListaProductosRespuesta.descripcion = producto.productoDescr;
                                //    SubListaProductosRespuesta.proveedorId = producto.ProveedorId;
                                //    SubListaProductosRespuesta.existencia = 0;


                                //    List<SubListaProductosJson> list = new List<SubListaProductosJson>
                                //    {
                                //        SubListaProductosRespuesta
                                //    };
                                //}

                                var ListaProductos = context.Producto.FromSql("spGetProdByProveed @p0", IdProveed).ToList();

                                InventarioJson InventarioRespuesta = new InventarioJson
                                {
                                    InvId            = InventModif.InvId,
                                    InventarioNombre = InvNombre,
                                    FolioGoma        = InvFolio,
                                    ListaDeProductos = new List <SubListaProductosJson>()
                                };

                                foreach (var item in ListaProductos)
                                {
                                    var exists = false;
                                    foreach (var flag in ProductosInventario)
                                    {
                                        if (flag.ProductoId == item.ProductoId)
                                        {
                                            exists = true;
                                        }
                                    }

                                    SubListaProductosJson sublista = new SubListaProductosJson
                                    {
                                        id          = item.ProductoId,
                                        descripcion = item.productoDescr,
                                        proveedorId = IdProveed,
                                        existencia  = 0,
                                        selected    = exists
                                    };


                                    InventarioRespuesta.ListaDeProductos.Add((SubListaProductosJson)sublista);
                                }



                                // si el resultado no está vacía, acompleto la lista con los demás productos del proveedor.
                                return(Ok(InventarioRespuesta));
                            }
                        }
                        else
                        {
                            return(BadRequest("No se encontró el inventario solicitado"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }
示例#16
0
        public bool Valida()
        {
            string HoraPeticion = DateTime.Now.ToString("hh:mm:ss");
            var    hour         = DateTime.Now.Hour.ToString();
            var    min          = DateTime.Now.Minute.ToString();
            var    sec          = DateTime.Now.Second.ToString();

            hour = FixTime(hour);
            min  = FixTime(min);
            sec  = FixTime(sec);
            var horario = Int32.Parse(hour + min + sec); // Obtenemos el horario en formato Militar


            using (var context = new Oxxo2.DataAccess.OxxoContext())
            {
                // Schedulers horario = new Schedulers();

                var    Sch           = context.Scheduler.FromSql("spGetSchedule").ToList(); // Consultamos mediante SP el Schedule activo más reciente
                string horarioInicio = Sch.ElementAt(0).horainicio.ToString();
                string horarioFin    = Sch.ElementAt(0).horaFin.ToString();

                var hora_ini       = horarioInicio.Split(':').First();
                var min_ini        = horarioInicio.Split(':').ElementAt(1);
                var seg_ini        = horarioInicio.Split(':').ElementAt(2);
                var horario_inicio = Int32.Parse(hora_ini + min_ini + seg_ini); // Horario Militar (Inicio)

                var hora_fin    = horarioFin.Split(':').First();
                var min_fin     = horarioFin.Split(':').ElementAt(1);
                var seg_fin     = horarioFin.Split(':').ElementAt(2);
                var horario_fin = Int32.Parse(hora_fin + min_fin + seg_fin); //Horario Militar(Fin)

                if (horario_inicio == horario_fin)
                {
                    //pasa de corrido porque significa que las 24 horas son validas.
                    return(true);
                }
                else if (horario_inicio < horario_fin)
                {
                    //aqui estamos en el mismo día:
                    if (horario >= horario_inicio && horario <= horario_fin)
                    {
                        //aqui pasa porque el horario cae dentro del rango
                        return(true);
                    }
                    else
                    {
                        // aqui no pasa porque cae fuera del rango
                        return(false);
                    }
                }
                else
                {
                    //aqui estamos en dia siguiente
                    if ((horario <= horario_inicio && horario <= horario_fin) || (horario >= horario_inicio && horario >= horario_fin))
                    {
                        //aqui cae dentro del rango y pasa
                        return(true);
                    }
                    else
                    {
                        //aqui cae fuera del rango y no pasa
                        return(true);
                    }
                }
            }
        }