public async Task <CinemaDomainModel> DeleteCinema(int cinemaId) { var deletedAuditoriums = await _auditoriumService.DeleteAuditoriumsByCinemaId(cinemaId); if (deletedAuditoriums == null) { return(null); } var deletedCinema = _cinemasRepository.Delete(cinemaId); if (deletedCinema == null) { return(null); } _cinemasRepository.Save(); CinemaDomainModel result = new CinemaDomainModel { Id = deletedCinema.Id, Name = deletedCinema.Name }; return(result); }
public async Task <CinemaDomainModel> DeleteCinema(int id) { var data = _cinemasRepository.Delete(id); if (data == null) { return(null); } _cinemasRepository.Save(); CinemaDomainModel domainModel = new CinemaDomainModel { Id = data.Id, Name = data.Name }; return(domainModel); }
public async Task <CreateCinemaResultModel> DeleteCinema(int id) { var existingCinema = await _cinemasRepository.GetByIdAsync(id); var auditoriumsInCinema = _auditoriumService.GetAllOfSpecificCinema(id); if (existingCinema == null) { CreateCinemaResultModel errorModel = new CreateCinemaResultModel { ErrorMessage = Messages.CINEMA_DOES_NOT_EXIST, IsSuccessful = false }; return(errorModel); } foreach (var item in auditoriumsInCinema) { var existingAuditorium = await _auditoriumsRepository.GetByIdAsync(item.Id); if (existingAuditorium == null) { return(new CreateCinemaResultModel { ErrorMessage = Messages.AUDITORIUM_DOES_NOT_EXIST, IsSuccessful = false }); } var projectionsInAuditorium = _projectionsRepository.GetAllOfSpecificAuditorium(item.Id); if (projectionsInAuditorium != null) { foreach (var projection in projectionsInAuditorium) { if (projection.DateTime > DateTime.Now) { return(new CreateCinemaResultModel { ErrorMessage = Messages.PROJECTION_IN_FUTURE, IsSuccessful = false, Cinema = new CinemaDomainModel { Id = existingCinema.Id, Name = existingCinema.Name } }); } _projectionsRepository.Delete(projection.Id); await _ticketService.DeleteTicketFromProjection(projection.Id); } } var seatsInAuditorium = _seatsRepository.GetAllOfSpecificAuditorium(item.Id); if (seatsInAuditorium != null) { foreach (var seat in seatsInAuditorium) { _seatsRepository.Delete(seat.Id); } } var deleteVariable = _auditoriumsRepository.Delete(item.Id); AuditoriumResultModel auditoriumModel = new AuditoriumResultModel { ErrorMessage = null, IsSuccessful = true, Auditorium = new AuditoriumDomainModel { CinemaId = existingAuditorium.CinemaId, Id = existingAuditorium.Id, Name = existingAuditorium.Name } }; if (!auditoriumModel.IsSuccessful) { CreateCinemaResultModel errorModel = new CreateCinemaResultModel { ErrorMessage = Messages.CINEMA_DELETION_ERROR, IsSuccessful = false, Cinema = new CinemaDomainModel { Id = existingCinema.Id, Name = existingCinema.Name } }; return(errorModel); } } var data = _cinemasRepository.Delete(id); _cinemasRepository.Save(); CreateCinemaResultModel domainModel = new CreateCinemaResultModel { ErrorMessage = null, IsSuccessful = true, Cinema = new CinemaDomainModel { Id = existingCinema.Id, Name = existingCinema.Name } }; return(domainModel); }
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); }