/// <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
/// <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 */ }
[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")); } }
/// <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()*/
/// <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 */ }
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); } } }
/// <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 */ }
/// <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 */ }
/// <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 */ }
/// <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 */ }
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")); }
/// <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
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); } }
/// <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 */ }
/// <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 */ }
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); } } } }