public SpectacledayViewModel(Spectacleday spectacleday, IBusinessLogic bl, IBusinessLogicAsync blAsync) { this.spectacleDay = spectacleday; this.blAsync = blAsync; this.bl = bl; Areas = new ObservableCollection<ScheduleAreaViewModel>(); }
public void SetUp() { transaction = new TransactionScope(); DALFactory factory = DALFactory.GetInstance(); db = factory.CreateDatabase(); dao = factory.CreateSpectacledayDAO(db); spectacleday1 = new Spectacleday { Id = 1, Day = new DateTime(1985, 11, 13) }; spectacleday2 = new Spectacleday { Id = 2, Day = new DateTime(2015, 12, 15) }; runDbCommands(db, new List<string> { "SET FOREIGN_KEY_CHECKS=0", "DELETE FROM `spectacleday`", "INSERT INTO `spectacleday` VALUES (1, '1985-11-13')", "INSERT INTO `spectacleday` VALUES (2, '2015-12-15')", "DELETE FROM `spectacleday_timeslot`", $"INSERT INTO `spectacleday_timeslot` VALUES (1, 1, 1)", $"INSERT INTO `spectacleday_timeslot` VALUES (2, 1, 2)" }); }
public IEnumerable<SpectacledayTimeSlot> GetForSpectacleDay(Spectacleday spectacleDay) { var result = new List<SpectacledayTimeSlot>(); var cmd = CreateSelectForSpectacleDayCommand(spectacleDay); using (IDataReader reader = db.ExecuteReader(cmd)) { while (reader.Read()) { result.Add(CreateSpectacleTimeslotFromReader(reader)); } } return result; }
public void MailToArtists(IEnumerable<Artist> artists, Spectacleday day, byte[] file) { using (SmtpClient smtpClientt = new SmtpClient(smtpServer, port)) using (MailMessage mailMessage = new MailMessage()) { try { artists.ToList().Where(artist => artist.Email != null).ToList().ForEach(artist => mailMessage.To.Add(artist.Email)); if (mailMessage.To.Count() <= 0) return; mailMessage.Body = CreateBody(day); mailMessage.From = mailAddress; Stream stream = new MemoryStream(file); Attachment attachment = new Attachment(stream, "Schedule.pdf"); mailMessage.Attachments.Add(attachment); smtpClientt.UseDefaultCredentials = false; smtpClientt.Credentials = new NetworkCredential(user, pwd); smtpClientt.Send(mailMessage); } catch (Exception e) { throw new BusinessLogicException("Mailt to Artists failed. " + e.Message); } } }
private DbCommand CreateSelectForSpectacleDayCommand(Spectacleday spectacleDay) { var cmd = db.CreateCommand(SQL_SELECT_FOR_SPECTACLEDAY); db.DefineParameter(cmd, "@SpectacleDayId", DbType.Int32, spectacleDay.Id); return cmd; }
public abstract byte[] CreatePdfScheduleForSpectacleDay(Spectacleday spectacleDay);
public abstract void UpdatePerformances(Spectacleday spectacleDay, IEnumerable<Performance> performances);
public abstract IEnumerable<SpectacledayTimeSlot> GetSpectacleDayTimeSlotsForSpectacleDay(Spectacleday day);
public List<Performance> GetPerformanesForSpetacleDay(Spectacleday day) { return bl.GetPerformanesForSpetacleDay(day).ToList(); }
public IEnumerable<Performance> GetForSpectacleDay(Spectacleday spectacleDay) { var result = new List<Performance>(); var cmd = CreateSelectForSpectacleDay(spectacleDay.Id); using (IDataReader reader = db.ExecuteReader(cmd)) { while (reader.Read()) { result.Add(CreatePerformanceFromReader(reader)); } return result; } }
public override byte[] CreatePdfScheduleForSpectacleDay(Spectacleday spectacleDay) { return pdf.MakeSpectacleSchedule(GetSpectacleDayTimeSlotsForSpectacleDay(spectacleDay), GetPerformanesForSpetacleDay(spectacleDay), GetAreas(), GetVenues(), GetTimeSlots(), GetArtists()); }
public override void UpdatePerformances(Spectacleday spectacleDay, IEnumerable<Performance> performances) { var tmp = performances.Where(p => p.Id != default(int) || p.ArtistId != default(int)); performances = tmp; if (performances.Count() <= 0) return; var oldPerformances = dalFactory.CreatePerformanceDAO(db).GetForSpectacleDay(spectacleDay); var performancesToDelete = performances.Where(p => p.ArtistId == default(int)); var performancesToCreate = performances.Where(p => p.Id == default(int)); var performancesToUpdate = performances.Where(p => p.Id != default(int) && p.ArtistId != default(int)); var tmpPerformances = MergePerformances(oldPerformances, performancesToDelete, performancesToCreate, performancesToUpdate); var valid = ValidateArtist(tmpPerformances); if (valid != null) throw new BusinessLogicException($"Artist {dalFactory.CreateArtistDAO(db).GetById(valid.ArtistId).Name} has already a performance scheduled."); valid = ValidateVenue(tmpPerformances); if (valid != null) throw new BusinessLogicException($"Venue {dalFactory.CreateArtistDAO(db).GetById(valid.ArtistId).Name} already scheduled."); valid = ValidatePause(tmpPerformances); if (valid != null) throw new BusinessLogicException($"Artist {dalFactory.CreateArtistDAO(db).GetById(valid.ArtistId).Name} has no time for a pause."); Update(performancesToDelete, performancesToCreate, performancesToUpdate); var artists = GetArtistsToNotify(oldPerformances, performancesToDelete, performancesToCreate, performancesToUpdate); MailPerformanceChangesToArtists(artists, performances, spectacleDay); performancesToDelete.ToList().ForEach(p => p.Id = default(int)); }
public void MailPerformanceChangesToArtists(IEnumerable<Artist> artists, IEnumerable<Performance> performances, Spectacleday day) { var file = CreatePdfScheduleForSpectacleDay(day); ms.MailToArtists(artists, day, file); }
public override IEnumerable<SpectacledayTimeSlot> GetSpectacleDayTimeSlotsForSpectacleDay(Spectacleday day) { var spectacleTS = dalFactory.CreateSpectacledayTimeSlotDAO(db).GetForSpectacleDay(day); var timeSlots = dalFactory.CreateTimeSlotDAO(db).GetAll(); foreach (var ts in spectacleTS) { ts.TimeSlot = timeSlots.Where(x => x.Id == ts.TimeSlotId).First(); } return spectacleTS; }
public override IEnumerable<Performance> GetPerformanesForSpetacleDay(Spectacleday day) { return dalFactory.CreatePerformanceDAO(db).GetForSpectacleDay(day); }
public abstract IEnumerable<Performance> GetPerformanesForSpetacleDay(Spectacleday day);
public Task<IEnumerable<Performance>> GetPerformanesForSpetacleDayAsync(Spectacleday day) { return Task.Run(() => GetPerformanesForSpetacleDay(day)); }
public List<SpectacledayTimeSlot> GetSpectacleDayTimeSlotsForSpectacleDay(Spectacleday day) { return bl.GetSpectacleDayTimeSlotsForSpectacleDay(day).ToList(); }
public Task<IEnumerable<SpectacledayTimeSlot>> GetSpectacleDayTimeSlotsForSpectacleDayAsync(Spectacleday day) { return Task.Run(() => GetSpectacleDayTimeSlotsForSpectacleDay(day)); }
public void UpdatePerformances(Spectacleday spectacleDay, List<Performance> performances) { bl.UpdatePerformances(spectacleDay, performances); }
public void UpdatePerformancesAsync(Spectacleday spectacleDay, IEnumerable<Performance> performances) { Task.Run(() => UpdatePerformances(spectacleDay, performances)); }
public byte[] CreatePdfScheduleForSpectacleDay(Spectacleday spectacleDay) { return bl.CreatePdfScheduleForSpectacleDay(spectacleDay); }
public Task<byte[]> CreatePdfScheduleForSpectacleDayAsync(Spectacleday spectacleDay) { return Task.Run(() => CreatePdfScheduleForSpectacleDay(spectacleDay)); }
public void SetUp() { spectacleday = new Spectacleday(); }
private string CreateBody(Spectacleday day) { return $"The Schedule for {day.Day} has been changed."; }
public static bool IsEqualTo(this Spectacleday s1, Spectacleday s2) { return s1.Id == s2.Id && s1.Day == s2.Day; }