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 <CreateCinemaResultModel> AddCinema(CinemaDomainModel newCinema) { Data.Cinema cinemaToCreate = new Data.Cinema() { Name = newCinema.Name }; var data = _cinemasRepository.Insert(cinemaToCreate); if (data == null) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.CINEMA_CREATION_ERROR }); } _cinemasRepository.Save(); CreateCinemaResultModel createCinemaResultModel = new CreateCinemaResultModel() { Cinema = new CinemaDomainModel { Id = data.Id, Name = data.Name }, IsSuccessful = true, ErrorMessage = null }; return(createCinemaResultModel); }
public async Task <CinemaDomainModel> CreateCinemaAsync(CinemaDomainModel cinemaDomainModel, int numOfSeats, int numOfRows, string auditoriumName) { var city = await _citiesRepository.GetByIdAsync(cinemaDomainModel.CityId); if (city == null) { return(null); } var cinemas = await _cinemasRepository.GetAll(); var cinemasInSameCity = cinemas.Where(c => c.CityId == cinemaDomainModel.CityId); foreach (var cin in cinemasInSameCity) { if (cin.Name == cinemaDomainModel.Name) { return(null); } } Data.Cinema newCinema = new Data.Cinema { Name = cinemaDomainModel.Name, CityId = cinemaDomainModel.CityId }; newCinema.Auditoriums = new List <Auditorium>(); Auditorium auditorium = new Auditorium { AuditName = auditoriumName }; auditorium.Seats = new List <Seat>(); for (int j = 1; j <= numOfRows; j++) { for (int k = 1; k <= numOfSeats; k++) { Seat seat = new Seat { Row = j, Number = k }; auditorium.Seats.Add(seat); } } newCinema.Auditoriums.Add(auditorium); Data.Cinema insertedCinema = _cinemasRepository.Insert(newCinema); if (insertedCinema == null) { return(null); } _cinemasRepository.Save(); if (insertedCinema == null) { return(null); } CinemaDomainModel cinemaModel = new CinemaDomainModel { Id = insertedCinema.Id, Name = insertedCinema.Name, CityId = insertedCinema.CityId, AuditoriumsList = new List <AuditoriumDomainModel>() }; foreach (var auditoriumInserted in insertedCinema.Auditoriums) { AuditoriumDomainModel modelAuditorium = new AuditoriumDomainModel { Id = auditoriumInserted.Id, CinemaId = insertedCinema.Id, Name = auditoriumInserted.AuditName, SeatsList = new List <SeatDomainModel>() }; foreach (var seat in auditoriumInserted.Seats) { modelAuditorium.SeatsList.Add(new SeatDomainModel { Id = seat.Id, AuditoriumId = auditoriumInserted.Id, Number = seat.Number, Row = seat.Row }); } cinemaModel.AuditoriumsList.Add(modelAuditorium); } return(cinemaModel); }