private void AddOrUpdate(Actividad actividad) { Actividad act = Actividades.FirstOrDefault(x => x.Id == actividad.Id); if (act != null) { act = actividad; } else { Actividades.Add(actividad); } }
private void MoverActividades(Actividad actividad) { Actividad actividadBloqueadora = Actividades.FirstOrDefault(x => x.Finalizada == false && x.FechaInicio == actividad.FechaInicio && x.FechaFin == actividad.FechaFin); if (actividadBloqueadora == null) { return; } List <Actividad> actividadesMover = Actividades.Where(x => x.Finalizada == false && x.FechaInicio >= x.FechaInicio).ToList(); long milisegundosMover = actividad.GetDuracionActividad().Ticks; foreach (var actividadMover in actividadesMover) { actividadMover.FechaInicio = actividadMover.FechaInicio.AddTicks(milisegundosMover); actividadMover.FechaFin = actividadMover.FechaFin.AddTicks(milisegundosMover); } }
public void IntentarGuardarActividad(Actividad actividad, bool forzar = false) { if (actividad == null) { throw new ArgumentException("La actividad a agregar no debe ser nula"); } bool horarioDisponible = HorarioDisponible(actividad.FechaInicio, actividad.FechaFin); if (horarioDisponible == false && forzar == false) { throw new EntityException("La actividad no se puede agregar porque no hay espacio en la agenda del usuario"); } if (forzar) { MoverActividades(actividad); } this.AddOrUpdate(actividad); }