public async Task <CinemaDomainModel> GetCinemaByIdAsync(int id) { var data = await _cinemasRepository.GetByIdAsync(id); if (data == null) { return(null); } CinemaDomainModel domainModel = new CinemaDomainModel { Id = data.Id, Name = data.Name }; return(domainModel); }
public async Task <CreateAuditoriumResultModel> CreateAuditorium(AuditoriumDomainModel domainModel, int numberOfRows, int numberOfSeats) { var cinema = await _cinemasRepository.GetByIdAsync(domainModel.CinemaId); if (cinema == null) { return(new CreateAuditoriumResultModel { IsSuccessful = false, ErrorMessage = Messages.AUDITORIUM_UNVALID_CINEMAID }); } var auditorium = await _auditoriumsRepository.GetByAuditName(domainModel.Name, domainModel.CinemaId); var sameAuditoriumName = auditorium.ToList(); if (sameAuditoriumName != null && sameAuditoriumName.Count > 0) { return(new CreateAuditoriumResultModel { IsSuccessful = false, ErrorMessage = Messages.AUDITORIUM_SAME_NAME }); } Auditorium newAuditorium = new Auditorium { Name = domainModel.Name, CinemaId = domainModel.CinemaId, }; newAuditorium.Seats = new List <Seat>(); for (int i = 1; i <= numberOfRows; i++) { for (int j = 1; j <= numberOfSeats; j++) { Seat newSeat = new Seat() { Row = i, Number = j }; newAuditorium.Seats.Add(newSeat); } } Auditorium insertedAuditorium = _auditoriumsRepository.Insert(newAuditorium); if (insertedAuditorium == null) { return(new CreateAuditoriumResultModel { IsSuccessful = false, ErrorMessage = Messages.AUDITORIUM_CREATION_ERROR }); } CreateAuditoriumResultModel resultModel = new CreateAuditoriumResultModel { IsSuccessful = true, ErrorMessage = null, Auditorium = new AuditoriumDomainModel { Id = insertedAuditorium.Id, Name = insertedAuditorium.Name, CinemaId = insertedAuditorium.CinemaId, SeatsList = new List <SeatDomainModel>() } }; foreach (var item in insertedAuditorium.Seats) { resultModel.Auditorium.SeatsList.Add(new SeatDomainModel { AuditoriumId = insertedAuditorium.Id, Id = item.Id, Number = item.Number, Row = item.Row }); } return(resultModel); }
public async Task <CinemaDomainModel> DeleteCinemaAsync(int id) { var cinema = await _cinemasRepository.GetByIdAsync(id); if (cinema == null) { return(null); } var allAuditoriums = await _auditoriumsRepository.GetAll(); if (allAuditoriums == null) { return(null); } var auditoriumsInCinema = allAuditoriums.Where(a => a.CinemaId == id); var seats = await _seatsRepository.GetAll(); foreach (var auditorium in auditoriumsInCinema) { seats = seats.Where(s => s.AuditoriumId == auditorium.Id); foreach (var seat in seats) { if (seat.ReservationSeats.Any()) { return(null); } _seatsRepository.Delete(seat.Id); } _auditoriumsRepository.Delete(auditorium.Id); } CinemaDomainModel cinemaModel = new CinemaDomainModel { Id = cinema.Id, Name = cinema.Name, CityId = cinema.CityId, AuditoriumsList = cinema.Auditoriums.Select(a => new AuditoriumDomainModel { Id = a.Id, CinemaId = a.CinemaId, Name = a.AuditName, SeatsList = a.Seats.Select(s => new SeatDomainModel { Id = s.Id, AuditoriumId = s.AuditoriumId, Number = s.Number, Row = s.Row }) .ToList() }) .ToList() }; _cinemasRepository.Delete(cinema.Id); _cinemasRepository.Save(); return(cinemaModel); }