public static CodificacionEquipo ConsultarCodificacionEquipo(int id) { CodificacionEquipo objeto = new CodificacionEquipo(); try { objeto = db.ConsultarCodificacionEquipo(id).FirstOrDefault(); return(objeto); } catch (Exception) { return(objeto); } }
public static RespuestaTransaccion ActualizarCodificacionEquipo(CodificacionEquipo objeto, List <DetalleCodificacionEquipo> detalles) { using (var transaction = db.Database.BeginTransaction()) { try { var equiposDuplicados = detalles.GroupBy(x => x.EquipoID).Any(g => g.Count() > 1); var detallesIDs = detalles.Select(s => s.IDDetalleCodificacionEquipo).ToList(); var detallesFactura = detalles.Select(s => s.Factura).ToList(); var detallesSerieEquipo = detalles.Select(s => s.SerieEquipo).ToList(); bool facturaRegistrada = db.DetalleCodificacionEquipo.Any(s => detallesFactura.Contains(s.Factura) && !detallesIDs.Contains(s.IDDetalleCodificacionEquipo)); bool serieEquipo = db.DetalleCodificacionEquipo.Any(s => detallesSerieEquipo.Contains(s.SerieEquipo) && !detallesIDs.Contains(s.IDDetalleCodificacionEquipo)); if (equiposDuplicados) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeEquiposRepetidos } } ; //Si la factura ya se encuentra en el sistema if (facturaRegistrada) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeFacturaRepetida } } ; if (serieEquipo) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeSerieEquipoRepetida } } ; // assume Entity base class have an Id property for all items var entity = db.CodificacionEquipo.Find(objeto.IDCodificacionEquipo); if (entity == null) { return(new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida }); } db.Entry(entity).CurrentValues.SetValues(objeto); db.SaveChanges(); int fechaIngresoID = objeto.IDCodificacionEquipo; #region Actualizar Detalles // Limpiar primero los detalles anteriores var detallesAnteriores = db.DetalleCodificacionEquipo.Where(s => s.CodificacionEquipoID == fechaIngresoID).ToList(); foreach (var item in detallesAnteriores) { db.DetalleCodificacionEquipo.Remove(item); db.SaveChanges(); } //Registrar nuevos detalles foreach (var item in detalles) { item.CodificacionEquipoID = fechaIngresoID; db.DetalleCodificacionEquipo.Add(item); db.SaveChanges(); } #endregion transaction.Commit(); return(new RespuestaTransaccion { Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa }); } catch (Exception ex) { transaction.Rollback(); return(new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString() }); } } }
public static RespuestaTransaccion CrearCodificacionEquipo(CodificacionEquipo objeto, List <DetalleCodificacionEquipo> detalles) { using (var transaction = db.Database.BeginTransaction()) { try { var equiposDuplicados = detalles.GroupBy(x => x.EquipoID).Any(g => g.Count() > 1); var detallesFactura = detalles.Select(s => s.Factura).ToList(); var detallesSerieEquipo = detalles.Select(s => s.SerieEquipo).ToList(); bool facturaRegistrada = db.DetalleCodificacionEquipo.Any(s => detallesFactura.Contains(s.Factura)); bool serieEquipo = db.DetalleCodificacionEquipo.Any(s => detallesSerieEquipo.Contains(s.SerieEquipo)); if (equiposDuplicados) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeEquiposRepetidos } } ; //Si la factura ya se encuentra en el sistema if (facturaRegistrada) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeFacturaRepetida } } ; if (serieEquipo) { return new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeSerieEquipoRepetida } } ; db.CodificacionEquipo.Add(objeto); db.SaveChanges(); int CodificacionEquipoID = objeto.IDCodificacionEquipo; foreach (var item in detalles) { item.CodificacionEquipoID = CodificacionEquipoID; db.DetalleCodificacionEquipo.Add(item); db.SaveChanges(); } transaction.Commit(); return(new RespuestaTransaccion { Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa }); } catch (Exception ex) { transaction.Rollback(); return(new RespuestaTransaccion { Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString() }); } } }