internal void ControlStatusIncidencia(Servicio servicio) { db = new DbCARS();//esto karina me dijo que podia List <Servicio> servicios = new List <Servicio>(); Incidencia incidencia = db.DbServicioDeIncidencia.Include("Incidencia").Include("Servicio").Where(si => si.Servicio.Id == servicio.Id).FirstOrDefault().Incidencia; incidencia = db.DbIncidencias.Include("Usuario").Include("Vehiculo").Where(i => i.Id == incidencia.Id).FirstOrDefault(); List <ServicioIncidencia> servicioDeIncidencia = db.DbServicioDeIncidencia.Include("Incidencia").Include("Servicio").Where(si => si.Incidencia.Id == incidencia.Id).ToList(); List <Servicio> cancelado = new List <Servicio>(); List <Servicio> terminado = new List <Servicio>(); foreach (var item in servicioDeIncidencia) { if (item.Servicio.Estado == TipoEstado.Cancelado) { cancelado.Add(item.Servicio); } if (item.Servicio.Estado == TipoEstado.Terminado) { terminado.Add(item.Servicio); } } if (cancelado.Count == servicioDeIncidencia.Count()) { incidencia.Estado = EstadoIncidencia.Cancelada; ModificarIncidencia(ref incidencia); } else if (terminado.Count + cancelado.Count == servicioDeIncidencia.Count()) { incidencia.Estado = EstadoIncidencia.Finalizada; ModificarIncidencia(ref incidencia); } else if (terminado.Count + cancelado.Count != servicioDeIncidencia.Count()) { if (incidencia.Estado != EstadoIncidencia.Procesando) { incidencia.Estado = EstadoIncidencia.Procesando; ModificarIncidencia(ref incidencia); } } }