public void RegistrarDefecto(int numero, EspecificacionDeDefecto especDe, string pie, DateTime now, Empleado empleado, TimeSpan?hora = null) { if (numero > 0) { Defecto defecto = new Defecto(especDe, pie, now, empleado, hora); Defectos.Add(defecto); } if (numero < 0) { if (hora != null) { if (hora > ((TimeSpan)hora).Add(TimeSpan.Parse("01:00"))) { var defecto = Defectos.ToList().LastOrDefault(d => d.EspecificacionDeDefecto.Equals(especDe) && d.Pie.ToString().Equals(pie) && (d.Hora.TimeOfDay >= hora || d.Hora.TimeOfDay < ((TimeSpan)hora).Add(TimeSpan.Parse("01:00")))); Defectos.Remove(defecto); } else { var defecto = Defectos.ToList().LastOrDefault(d => d.EspecificacionDeDefecto.Equals(especDe) && d.Pie.ToString().Equals(pie) && d.Hora.TimeOfDay >= hora && d.Hora.TimeOfDay < ((TimeSpan)hora).Add(TimeSpan.Parse("01:00"))); Defectos.Remove(defecto); } } else { var defecto = Defectos.ToList().LastOrDefault(d => d.EspecificacionDeDefecto.Equals(especDe) && d.Pie.ToString().Equals(pie)); Defectos.Remove(defecto); } } }