示例#1
0
 // method to add a music type, ensuring it is of the right Id
 public void AddMusicType(string musicTypeId, string musicTypeInfo)
 {
     using (var db = new EventsProjectContext())
     {
         if (musicTypeId.Length != 5)
         {
             throw new ArgumentException("ID must be exactly 5 characters long");
         }
         if (db.Musics.Where(m => m.MusicId == musicTypeId).FirstOrDefault() != null)
         {
             throw new ArgumentException("ID must be unique");
         }
         else
         {
             var newMusicType = new Music()
             {
                 EventTypeId = "MUSIC",
                 MusicId     = musicTypeId.ToUpper(),
                 Genre       = musicTypeInfo
             };
             db.Musics.Add(newMusicType);
             db.SaveChanges();
         }
     }
 }
示例#2
0
 // method to add sport type, and ensure it's of correct fromat
 public void AddSportType(string sportTypeId, string sportTypeInfo)
 {
     using (var db = new EventsProjectContext())
     {
         if (sportTypeId.Length != 5)
         {
             throw new ArgumentException("ID must be exactly 5 characters long");
         }
         if (db.Sports.Where(m => m.SportId == sportTypeId).FirstOrDefault() != null)
         {
             throw new ArgumentException("ID must be unique");
         }
         else
         {
             var newSportType = new Sport()
             {
                 EventTypeId = "Sport",
                 SportId     = sportTypeId.ToUpper(),
                 SportName   = sportTypeInfo
             };
             db.Sports.Add(newSportType);
             db.SaveChanges();
         }
     }
 }
示例#3
0
 public List <Venue> RetrieveVenues()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.Venues.ToList());
     }
 }
示例#4
0
 //// retrieving info from DB to populate GUI listboxes and combo boxes
 public List <EventType> RetrieveEventTypes()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.EventTypes.ToList());
     }
 }
示例#5
0
 public List <MusicEvent> RetrieveMusicEvents()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.MusicEvents.Where(me => me.MusicId == SelectedMusic.MusicId).ToList());
     }
 }
示例#6
0
 // method to create a new venue, ensuring the ID is 5 letters long and capacity is not negative
 public void CreateVenue(string newVenueId, string newVenueName, string newVenueCity, string newVenueCountry, int newVenueCapacity)
 {
     using (var db = new EventsProjectContext())
     {
         if (newVenueId.Length != 5)
         {
             throw new ArgumentException($"A VenueId needs to be exactly 5 characters long");
         }
         else if (newVenueCapacity < 0)
         {
             throw new ArgumentException($"A venue's capacity must not be negative");
         }
         else
         {
             var newVenue = new Venue()
             {
                 VenueId   = newVenueId.ToUpper(),
                 VenueName = newVenueName,
                 City      = newVenueCity,
                 Country   = newVenueCountry,
                 Capacity  = newVenueCapacity
             };
             db.Venues.Add(newVenue);
             db.SaveChanges();
         }
     }
 }
示例#7
0
 public List <Sport> RetrieveSports()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.Sports.ToList());
     }
 }
示例#8
0
 public List <Music> RetrieveMusic()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.Musics.ToList());
     }
 }
示例#9
0
 public List <SportEvent> RetrieveSportEvents()
 {
     using (var db = new EventsProjectContext())
     {
         return(db.SportEvents.Where(se => se.SportId == SelectedSport.SportId).ToList());
     }
 }
示例#10
0
 public void CreateVenueWithLowerCaseLettersTest()
 {
     using (var db = new EventsProjectContext())
     {
         _crudManager.CreateVenue("oldtr", "Old Trafford", "Manchester", "UK", 76000);
         Assert.AreEqual(db.Venues.Where(v => v.VenueId == "OLDTR").FirstOrDefault().VenueId, "OLDTR");
     }
 }
示例#11
0
 public void CreateVenueWithNegativeCapacityTest()
 {
     using (var db = new EventsProjectContext())
     {
         var ex = Assert.Throws <ArgumentException>(() => _crudManager.CreateVenue("OLDTR", "Old Trafford", "Manchester", "UK", -1));
         Assert.AreEqual(ex.Message, "A venue's capacity must not be negative");
     }
 }
示例#12
0
 public void CreateVenueWithVenueIDTooLongTest()
 {
     using (var db = new EventsProjectContext())
     {
         var ex = Assert.Throws <ArgumentException>(() => _crudManager.CreateVenue("OLDTRA", "Old Trafford", "Manchester", "UK", 76000));
         Assert.AreEqual(ex.Message, "A VenueId needs to be exactly 5 characters long");
     }
 }
示例#13
0
 // method to remove a music event
 public void RemoveMusicEvent(int musicEventIDToRemove)
 {
     using (var db = new EventsProjectContext())
     {
         var musicEvent = db.MusicEvents.Where(me => me.MusicEventId == musicEventIDToRemove).FirstOrDefault();
         db.MusicEvents.Remove(musicEvent);
         db.SaveChanges();
     }
 }
 public void TearDown()
 {
     using (var db = new EventsProjectContext())
     {
         var badminton = db.Sports.Where(m => m.SportId == "BDMTN").FirstOrDefault();
         db.Sports.Remove(badminton);
         db.SaveChanges();
     }
 }
 public void TearDown()
 {
     using (var db = new EventsProjectContext())
     {
         var hipHop = db.Musics.Where(m => m.MusicId == "HPHOP").FirstOrDefault();
         db.Musics.Remove(hipHop);
         db.SaveChanges();
     }
 }
示例#16
0
 // method to remove a sport event
 public void RemoveSportEvent(int sportEventIDToRemove)
 {
     using (var db = new EventsProjectContext())
     {
         var sportEvent = db.SportEvents.Where(se => se.SportEventId == sportEventIDToRemove).FirstOrDefault();
         db.SportEvents.Remove(sportEvent);
         db.SaveChanges();
     }
 }
 public void AddMusicTypeTest()
 {
     using (var db = new EventsProjectContext())
     {
         var countBefore = db.Musics.Count();
         _crudManager.AddMusicType("HPHOP", "Hip Hop");
         var countAfter = db.Musics.Count();
         Assert.AreEqual(countBefore + 1, countAfter);
     }
 }
 public void AddSportTypeTest()
 {
     using (var db = new EventsProjectContext())
     {
         var countBefore = db.Sports.Count();
         _crudManager.AddSportType("BDMTN", "Badminton");
         var countAfter = db.Sports.Count();
         Assert.AreEqual(countBefore + 1, countAfter);
     }
 }
示例#19
0
 public void CreateVenueTest()
 {
     using (var db = new EventsProjectContext())
     {
         var venuesBefore = db.Venues.Count();
         _crudManager.CreateVenue("OLDTR", "Old Trafford", "Manchester", "UK", 76000);
         var venuesAfter = db.Venues.Count();
         Assert.AreEqual(venuesBefore + 1, venuesAfter);
     }
 }
示例#20
0
 public void CreateMusicEventTest()
 {
     using (var db = new EventsProjectContext())
     {
         var musicEventsBefore = db.MusicEvents.Count();
         _crudManager.AddMusicEvent("WMBLY", "_POP_", "Beyonce", new DateTime(2020, 11, 07, 20, 00, 00), 40000);
         var musicEventsAfter = db.MusicEvents.Count();
         Assert.AreEqual(musicEventsBefore + 1, musicEventsAfter);
         currentMusicEventId = db.MusicEvents.Where(me => me.Artist == "Beyonce").Select(me => me.MusicEventId).FirstOrDefault();
     }
 }
 public void CreateSportEventTest()
 {
     using (var db = new EventsProjectContext())
     {
         var sportEventsBefore = db.SportEvents.Count();
         _crudManager.AddSportEvent("WMBLY", "FTBAL", "Aston Villa vs Chelsea", new DateTime(2020, 11, 07, 20, 00, 00), 40000);
         var sportEventsAfter = db.SportEvents.Count();
         Assert.AreEqual(sportEventsBefore + 1, sportEventsAfter);
         currentSportEventId = db.SportEvents.Where(me => me.Fixture == "Aston Villa vs Chelsea").Select(me => me.SportEventId).FirstOrDefault();
     }
 }
 public void TearDown()
 {
     if (currentSportEventId != null)
     {
         using (var db = new EventsProjectContext())
         {
             var selectedSportEvent = db.SportEvents.Where(se => se.SportEventId == currentSportEventId).FirstOrDefault();
             db.SportEvents.Remove(selectedSportEvent);
             db.SaveChanges();
         }
     }
 }
示例#23
0
 public void SellMusicTickets(int numberOfTickets, string venue, MusicEvent musicEvent)
 {
     using (var db = new EventsProjectContext())
     {
         var whichEvent = db.MusicEvents.Where(se => se.MusicEventId == musicEvent.MusicEventId).FirstOrDefault();
         var whichVenue = db.Venues.Where(v => v.VenueName == venue).FirstOrDefault();
         if (whichEvent.TicketsSold + numberOfTickets <= whichVenue.Capacity)
         {
             whichEvent.TicketsSold += numberOfTickets;
             db.SaveChanges();
         }
         else
         {
             throw new ArgumentException($"Ticket sales cannot exceed the events capacity");
         }
     }
 }
 private void PopulateTextBoxes()
 {
     if (_crudManager.SelectedSportEvent != null)
     {
         using (var db = new EventsProjectContext())
         {
             var sportEvent = _crudManager.SelectedSportEvent;
             FixtureInfo.Text     = sportEvent.Fixture;
             VenueInfo.Text       = db.Venues.Where(v => v.VenueId == sportEvent.VenueId).Select(v => v.VenueName).FirstOrDefault();
             CityInfo.Text        = db.Venues.Where(v => v.VenueId == sportEvent.VenueId).Select(v => v.City).FirstOrDefault();
             CountryInfo.Text     = db.Venues.Where(v => v.VenueId == sportEvent.VenueId).Select(v => v.Country).FirstOrDefault();
             CapacityInfo.Text    = db.Venues.Where(v => v.VenueId == sportEvent.VenueId).Select(v => v.Capacity).FirstOrDefault().ToString();
             DateInfo.Text        = sportEvent.dateTime.ToShortDateString();
             TimeInfo.Text        = sportEvent.dateTime.ToShortTimeString();
             TicketsSoldInfo.Text = sportEvent.TicketsSold.ToString();
         }
     }
 }
示例#25
0
        public void TearDown()
        {
            using (var db = new EventsProjectContext())
            {
                var selectedVenue =
                    from v in db.Venues
                    where v.VenueId == "OLDTR"
                    select v;


                foreach (var c in selectedVenue)
                {
                    db.Venues.Remove(c);
                }

                db.SaveChanges();
            }
        }
 public void CannotSellTicketsOverCapacityTest()
 {
     using (var db = new EventsProjectContext())
     {
         var newEvent = new MusicEvent()
         {
             VenueId     = "WMBLY",
             MusicId     = "_POP_",
             Artist      = "A",
             dateTime    = new DateTime(2020, 11, 20, 20, 00, 00),
             TicketsSold = 90000
         };
         db.MusicEvents.Add(newEvent);
         db.SaveChanges();
         var ex = Assert.Throws <ArgumentException>(() => _crudManager.SellMusicTickets(100, "Wembley Stadium", newEvent));
         Assert.AreEqual(ex.Message, "Ticket sales cannot exceed the events capacity");
         currentMusicEventId = db.MusicEvents.Where(me => me.Artist == "A").Select(me => me.MusicEventId).FirstOrDefault();
     }
 }
示例#27
0
 // method to remove a venue
 public void RemoveVenue(string venueIdToRemove)
 {
     using (var db = new EventsProjectContext())
     {
         var venue       = db.Venues.Where(v => v.VenueId == venueIdToRemove).FirstOrDefault();
         var sportEvents = db.SportEvents.Where(v => v.VenueId == venueIdToRemove).ToList();
         var musicEvents = db.MusicEvents.Where(v => v.VenueId == venueIdToRemove).ToList();
         foreach (var ev in sportEvents)
         {
             db.SportEvents.Remove(ev);
         }
         foreach (var ev in musicEvents)
         {
             db.MusicEvents.Remove(ev);
         }
         db.Venues.RemoveRange(venue);
         db.SaveChanges();
     }
 }
示例#28
0
 public void EditVenueNameTest()
 {
     using (var db = new EventsProjectContext())
     {
         var newVenue = new Venue()
         {
             VenueId   = "OLDTR",
             VenueName = "Old Trafford",
             City      = "Manchester",
             Country   = "UK",
             Capacity  = 76000
         };
         db.Venues.Add(newVenue);
         db.SaveChanges();
         _crudManager.EditVenue("OLDTR", "New Trafford", "Manchester", "UK", 76000);
         var testVenueName = db.Venues.Where(v => v.VenueId == "OLDTR").Select(s => new { s.VenueName }).FirstOrDefault();
         Assert.AreEqual(testVenueName.VenueName, "New Trafford");
     }
 }
示例#29
0
 // method to edit a venue, ensuring certain parameters are met
 public void EditVenue(string venueId, string newVenueName, string newVenueCity, string newVenueCountry, int newVenueCapacity)
 {
     using (var db = new EventsProjectContext())
     {
         SelectedVenue = db.Venues.Where(v => v.VenueId == venueId).FirstOrDefault();
         if (newVenueCapacity < 0)
         {
             throw new ArgumentException($"A venue's capacity must not be negative");
         }
         else
         {
             SelectedVenue.VenueName = newVenueName;
             SelectedVenue.City      = newVenueCity;
             SelectedVenue.Country   = newVenueCountry;
             SelectedVenue.Capacity  = newVenueCapacity;
             db.SaveChanges();
         }
     }
 }
示例#30
0
 public void DeleteVenueTest()
 {
     using (var db = new EventsProjectContext())
     {
         var newVenue = new Venue()
         {
             VenueId   = "OLDTR",
             VenueName = "Old Trafford",
             City      = "Manchester",
             Country   = "UK",
             Capacity  = 76000
         };
         db.Venues.Add(newVenue);
         db.SaveChanges();
         var oldCount = db.Venues.Count();
         _crudManager.RemoveVenue("OLDTR");
         var newCount = db.Venues.Count();
         Assert.AreEqual(oldCount - 1, newCount);
     }
 }