public TMEventDto GetTMEvent(int id) { TMEvent tmevent = _tmeventRepository.GetById(id); return(ConvertToDto(tmevent, GetTMEventAreaByEvent(id), GetTMEventSeatByEvent(id))); }
public int RemoveTMEvent(int id) { if (GetTMEventSeatByEvent(id).Where(s => s.State == SeatState.Busy).ToList().Count == 0) { _tmeventRepository.Remove(id); TMEvent obj = _tmeventRepository.GetById(id); return(obj == null ? 1 : 0); } return(0); }
public TMEventStatus CreateTMEvent(TMEventDto obj) { TMEvent obje = ConvertToEntity(obj); TMEventStatus result = IsValid(obje); if (result == TMEventStatus.Success) { obje = _tmeventRepository.Create(obje); obj.Id = obje.Id; } return(result); }
private TMEventStatus IsValid(TMEvent obj) { if (obj.StartEvent < DateTime.Now.Date) { return(TMEventStatus.DateInPast); } if (obj.EndEvent < obj.StartEvent) { return(TMEventStatus.DateWrongOrder); } if (_tmeventRepository.GetAll().Where(item => item.TMLayoutId == obj.TMLayoutId && obj.StartEvent >= item.StartEvent && obj.StartEvent <= item.EndEvent).Where(e => e.Id != obj.Id).ToList().Count > 0) { return(TMEventStatus.SameByDateObj); } return(TMEventStatus.Success); }
private static TMEventDto ConvertToDto(TMEvent obj, List <TMEventAreaDto> areas, List <TMEventSeatDto> seats) { if (obj == null) { return(null); } return(new TMEventDto { Id = obj.Id, Description = obj.Description, EndEvent = obj.EndEvent, Img = obj.Img, Name = obj.Name, StartEvent = obj.StartEvent, TMLayoutId = obj.TMLayoutId, AllSeats = seats.Count, BusySeats = seats.Where(s => s.State == SeatState.Busy).ToList().Count, MiddlePriceBySeat = areas.Count > 0 ? areas.Sum(a => a.Price) / areas.Count : 0, }); }
public TMEventStatus UpdateTMEvent(TMEventDto obj) { TMEvent obje = ConvertToEntity(obj); TMEventStatus result = IsValid(obje); // check on busy seats TMEventDto current = GetTMEvent(obj.Id); if (current.TMLayoutId != obj.TMLayoutId && GetTMEventSeatByEvent(obj.Id).Where(s => s.State == SeatState.Busy).ToList().Count > 0) { result = TMEventStatus.BusySeatsExists; } if (result == TMEventStatus.Success) { _tmeventRepository.Update(obje); } return(result); }
public void CreateEventTest() { // arange var venueRepository = new VenueRepositoryEF(_context); var layoutRepository = new TMLayoutRepositoryEF(_context); var areaRepository = new AreaRepositoryEF(_context); var seatRepository = new SeatRepositoryEF(_context); var eventRepository = new TMEventRepositoryEF(_context); var eventAreaRepository = new TMEventAreaRepositoryEF(_context); var eventSeatRepository = new TMEventSeatRepositoryEF(_context); Venue venue = venueRepository.Create( new Venue { Description = "some v desc2", Address = "some address2", Lenght = 5, Weidth = 5 }); TMLayout layout = layoutRepository.Create(new TMLayout { Description = "some desc2", VenueId = venue.Id }); List <Area> areas = new List <Area>(); areas.Add(areaRepository.Create( new Area { Description = "area12", CoordX = 0, CoordY = 0, TMLayoutId = layout.Id })); areas.Add(areaRepository.Create( new Area { Description = "area22", CoordX = 0, CoordY = 1, TMLayoutId = layout.Id })); List <Seat> seats = new List <Seat>(); for (int i = 1; i < venue.Lenght + 1; i++) { areas.ForEach(a => seats.Add(seatRepository.Create(new Seat { Number = i, Row = 1, AreaId = a.Id }))); } // act TMEvent tmevent = eventRepository.Create( new TMEvent { Name = "big event22", Description = "some event desc22", TMLayoutId = layout.Id, StartEvent = DateTime.Now.Date.AddDays(3), EndEvent = DateTime.Now.Date.AddDays(4), }); List <TMEventArea> tmeventareas = eventAreaRepository.GetAll().Where(a => a.TMEventId == tmevent.Id).ToList(); List <TMEventSeat> tmeventseats = eventSeatRepository.GetAll(). Where(s => tmeventareas.Any(a => a.Id == s.TMEventAreaId)).ToList(); TMEvent tmeventFromDB = eventRepository.GetById(tmevent.Id); eventRepository.Remove(tmevent.Id); // delete tested data seats.ForEach(s => seatRepository.Remove(s.Id)); areas.ForEach(a => areaRepository.Remove(a.Id)); layoutRepository.Remove(layout.Id); venueRepository.Remove(venue.Id); // assert tmevent.Should().BeEquivalentTo(tmeventFromDB); areas.ToList().Count.Should().Be(tmeventareas.Count); tmeventareas.ForEach(ta => ta.Id = 0); areas.ForEach(ta => ta.Id = 0); tmeventareas.Should().BeEquivalentTo(areas, options => options.ExcludingMissingMembers()); seats.Count.Should().Be(tmeventseats.Count); tmeventseats.ForEach(ta => ta.Id = 0); seats.ForEach(ta => ta.Id = 0); tmeventseats.Should().BeEquivalentTo(seats, options => options.ExcludingMissingMembers()); }
public void UpdateEventLocalFieldsTest() { // arange var venueRepository = new VenueRepositoryEF(_context); var layoutRepository = new TMLayoutRepositoryEF(_context); var areaRepository = new AreaRepositoryEF(_context); var seatRepository = new SeatRepositoryEF(_context); var eventRepository = new TMEventRepositoryEF(_context); Venue venue = venueRepository.Create( new Venue { Description = "some v desc2", Address = "some address2", Lenght = 5, Weidth = 5 }); TMLayout layout = layoutRepository.Create(new TMLayout { Description = "some desc2", VenueId = venue.Id }); List <Area> areas = new List <Area>(); areas.Add(areaRepository.Create( new Area { Description = "area12", CoordX = 0, CoordY = 0, TMLayoutId = layout.Id })); areas.Add(areaRepository.Create( new Area { Description = "area22", CoordX = 0, CoordY = 1, TMLayoutId = layout.Id })); List <Seat> seats = new List <Seat>(); for (int i = 1; i < venue.Lenght + 1; i++) { areas.ForEach(a => seats.Add(seatRepository.Create(new Seat { Number = i, Row = 1, AreaId = a.Id }))); } TMEvent tmevent = eventRepository.Create( new TMEvent { Name = "big event22", Description = "some event desc22", TMLayoutId = layout.Id, StartEvent = DateTime.Now.Date.AddDays(3), EndEvent = DateTime.Now.Date.AddDays(4), }); // was some second create // act tmevent.Description = "new desc"; tmevent.StartEvent = DateTime.Now.Date.AddDays(5); tmevent.EndEvent = DateTime.Now.Date.AddDays(6); eventRepository.Update(tmevent); TMEvent tmeventFromDB = eventRepository.GetById(tmevent.Id); // delete tested data seats.ForEach(s => seatRepository.Remove(s.Id)); areas.ForEach(a => areaRepository.Remove(a.Id)); eventRepository.Remove(tmevent.Id); layoutRepository.Remove(layout.Id); venueRepository.Remove(venue.Id); // assert tmevent.Should().BeEquivalentTo(tmeventFromDB); }