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 <CreateCinemaResultModel> AddCinema(CinemaDomainModel newCinema) { var cinema = await _cinemasRepository.GetByCinemaName(newCinema.Name); var sameCinemaName = cinema.ToList(); if (sameCinemaName != null && sameCinemaName.Count > 0) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.CINEMA_SAME_NAME }); } 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(); CinemaDomainModel domainModel = new CinemaDomainModel() { Id = data.Id, Name = data.Name }; CreateCinemaResultModel cinemaResultModel = new CreateCinemaResultModel() { ErrorMessage = null, IsSuccessful = true, Cinema = domainModel }; return(cinemaResultModel); }
public async Task <CreateCinemaResultModel> AddCinemaWithAuditoriumsAndSeats(CreateCinemaDomainModel newCinema) { var checkName = await _cinemasRepository.GetByNameAsync(newCinema.CinemaName); if (checkName != null) { return(new CreateCinemaResultModel { ErrorMessage = Messages.CINEMA_SAME_NAME, IsSuccessful = false }); } Data.Cinema newCinemaToAdd = new Data.Cinema { Name = newCinema.CinemaName, Auditoriums = new List <Auditorium>() }; var listofAuditoriums = newCinema.listOfAuditoriums; foreach (var item in listofAuditoriums) { newCinemaToAdd.Auditoriums.Add(new Auditorium { Name = item.Name, Seats = new List <Seat>() }); var auditoriumName = newCinemaToAdd.Auditoriums.FirstOrDefault(x => x.Name.Equals(item.Name)).Name; for (int i = 1; i < item.SeatRows + 1; i++) { for (int j = 1; j < item.NumberOfSeats + 1; j++) { Seat seat = new Seat() { Row = i, Number = j }; newCinemaToAdd.Auditoriums.SingleOrDefault(x => x.Name.Equals(auditoriumName)).Seats.Add(seat); } } } Data.Cinema insertedCinema = _cinemasRepository.Insert(newCinemaToAdd); if (insertedCinema == null) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.CINEMA_CREATION_ERROR }); } _cinemasRepository.Save(); CreateCinemaResultModel createCinemaResultModel = new CreateCinemaResultModel { IsSuccessful = true, ErrorMessage = null, Cinema = new CinemaDomainModel { Id = insertedCinema.Id, Name = insertedCinema.Name, AuditoriumDomainModels = new List <AuditoriumDomainModel>() } }; foreach (var insertedAuditorium in insertedCinema.Auditoriums) { createCinemaResultModel.Cinema.AuditoriumDomainModels.Add(new AuditoriumDomainModel { CinemaId = insertedAuditorium.CinemaId, Id = insertedAuditorium.Id, Name = insertedAuditorium.Name }); } return(createCinemaResultModel); }
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); }
// CreateAuditorium(AuditoriumDomainModel domainModel, int numberOfRows, int numberOfSeats) public async Task <CreateCinemaResultModel> AddCinemaWithAuditorium(CreateCinemaWithAuditoriumModel newCinemaWithAuditorium) { var cinema = await _cinemasRepository.GetByCinemaName(newCinemaWithAuditorium.CinemaName); var sameCinemaName = cinema.ToList(); if (sameCinemaName != null && sameCinemaName.Count > 0) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.CINEMA_SAME_NAME }); } Data.Cinema cinemaToCreate = new Data.Cinema() { Name = newCinemaWithAuditorium.CinemaName }; var cinemaData = _cinemasRepository.Insert(cinemaToCreate); if (cinemaData == null) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.CINEMA_CREATION_ERROR }); } _cinemasRepository.Save(); AuditoriumDomainModel auditoriumToCreate = new AuditoriumDomainModel() { CinemaId = cinemaData.Id, Name = newCinemaWithAuditorium.AuditoriumName }; var auditoriumData = await _auditoriumService.CreateAuditorium(auditoriumToCreate, newCinemaWithAuditorium.NumberOfRows, newCinemaWithAuditorium.NumberOfColumns); if (auditoriumData == null) { return(new CreateCinemaResultModel { IsSuccessful = false, ErrorMessage = Messages.AUDITORIUM_CREATION_ERROR }); } List <AuditoriumDomainModel> auditoriumDomainModels = new List <AuditoriumDomainModel>(); auditoriumDomainModels.Add(auditoriumData.Auditorium); CinemaDomainModel createdCinema = new CinemaDomainModel() { Id = cinemaData.Id, Name = cinemaData.Name, AuditoriumsList = auditoriumDomainModels }; CreateCinemaResultModel cinemaResultModel = new CreateCinemaResultModel() { IsSuccessful = true, ErrorMessage = null, Cinema = createdCinema }; return(cinemaResultModel); }