Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public IActionResult Post([FromBody] Cinema cinema)
        {
            if (cinema == null)
            {
                return(BadRequest(new { status = "error", message = "You must supply a cinema information" }));
            }

            if (ModelState.IsValid)
            {
                var createdCinema = repo.Insert(cinema);
                if (createdCinema != null)
                {
                    return(Ok(new { status = "success", message = "A new cinema has been created", data = new { cinema = createdCinema } }));
                }
                else
                {
                    return(BadRequest(new { status = "fail", message = "Failed to create cinema" }));
                }
            }
            return(BadRequest(new {
                status = "fail",
                message = "Failed to create cinema due to errors",
                data = ModelState.Values.Select(v => v.Errors)
            }));
        }
Beispiel #4
0
        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);
        }