public IActionResult Get()
        {
            var cinemas = repo.GetAll();

            return(Ok(new {
                status = "success",
                message = $"Found {cinemas.Count()}",
                data = new { cinemas = cinemas }
            }));
        }
Exemple #2
0
        public async Task <IEnumerable <CinemaDomainModel> > GetAllAsync()
        {
            var data = await _cinemasRepository.GetAll();

            if (data == null)
            {
                return(null);
            }

            List <CinemaDomainModel> result = new List <CinemaDomainModel>();
            CinemaDomainModel        model;

            foreach (var item in data)
            {
                model = new CinemaDomainModel
                {
                    Id   = item.Id,
                    Name = item.Name
                };
                result.Add(model);
            }

            return(result);
        }
Exemple #3
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);
        }