public bool Conflicts(ShowtimeGroupEntry other, int movieLength) { SetInterval(); other.SetInterval(); if (Interval.Add(new TimeSpan(0, movieLength, 0)) > other.Interval && RoomID == other.RoomID) { return(true); } return(false); }
public void UpdateData(ShowtimeGroupEntry showtimeGroupEntry, int duration) { if (StartTime == showtimeGroupEntry.StartTime && RoomID == showtimeGroupEntry.RoomID && ExperienceID == showtimeGroupEntry.ExperienceID) { return; } StartTime = showtimeGroupEntry.StartTime; RoomID = showtimeGroupEntry.RoomID; ExperienceID = showtimeGroupEntry.ExperienceID; foreach (Showtime showtime in Showtimes) { showtime.StartTime = showtime.StartTime.Date + TimeSpan.Parse(StartTime); showtime.EndTime = showtime.StartTime.AddMinutes(duration); showtime.RoomID = RoomID; showtime.ExperienceID = ExperienceID; } }
private void UpdateGroupEntries(ShowtimeGroup updatedGroup) { List <ShowtimeGroupEntry> entriesToDelete = ShowtimeGroupEntries .Where(e => !updatedGroup.ShowtimeGroupEntries.Any(ue => (e.StartTime == ue.StartTime && e.RoomID == ue.RoomID && e.ExperienceID == ue.ExperienceID) || (e.ShowtimeGroupEntryID == ue.ShowtimeGroupEntryID))) .ToList(); List <ShowtimeGroupEntry> entriesToCreate = updatedGroup.ShowtimeGroupEntries .Where(ue => !ShowtimeGroupEntries.Any(e => (e.StartTime == ue.StartTime && e.RoomID == ue.RoomID && e.ExperienceID == ue.ExperienceID) || (e.ShowtimeGroupEntryID == ue.ShowtimeGroupEntryID))) .ToList(); foreach (ShowtimeGroupEntry entry in entriesToDelete) { ShowtimeGroupEntries.Remove(entry); } foreach (ShowtimeGroupEntry entry in ShowtimeGroupEntries) { ShowtimeGroupEntry updatedEntry = updatedGroup.ShowtimeGroupEntries .Where(e => e.ShowtimeGroupEntryID == entry.ShowtimeGroupEntryID) .SingleOrDefault(); if (updatedEntry != null) { entry.UpdateData(updatedEntry, Movie.Duration); } } foreach (ShowtimeGroupEntry entry in entriesToCreate) { entry.GenerateShowtimes(Movie, FromDate, ToDate); ShowtimeGroupEntries.Add(entry); } }