Example #1
0
        public async Task <APIResponse> Post(CreateMovieDto createMovieDto)
        {
            try
            {
                if (createMovieDto.Image != null)
                {
                    string path = GetDefaultMoviePath();

                    using (var fileStream = new FileStream(path, FileMode.Create))
                    {
                        await createMovieDto.Image.CopyToAsync(fileStream);

                        createMovieDto.ImageURL = Path.GetRelativePath(_webHostEnvironment.WebRootPath, path);
                    }
                }

                var movie = _mapper.Map <Movie>(createMovieDto);

                _cinemaDbContext.Movies.Add(movie);
                await _cinemaDbContext.SaveChangesAsync();

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.Created, "Movie Created Successfully", movie));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #2
0
        public async Task <APIResponse> GetAll(string search, string sort = "desc", int pageNumber = 1, int pageSize = 5)
        {
            try
            {
                var data = _cinemaDbContext.Movies.Where(movie => string.IsNullOrEmpty(search) || movie.Name.Contains(search));

                data = data.Skip((pageNumber - 1) * pageSize).Take(pageSize);

                switch (sort)
                {
                case "desc":
                    return(APIResponse.GetAPIResponse(
                               (int)HttpStatusCode.OK,
                               string.Empty,
                               _mapper.Map <IReadOnlyList <GetAllMovieDto> >(await data.OrderByDescending(movie => movie.Rate).ToListAsync())));

                case "asc":
                    return(APIResponse.GetAPIResponse(
                               (int)HttpStatusCode.OK,
                               string.Empty,
                               _mapper.Map <IReadOnlyList <GetAllMovieDto> >(await data.OrderByDescending(movie => movie.Rate).ToListAsync())));

                default:
                    return(APIResponse.GetAPIResponse(
                               (int)HttpStatusCode.OK,
                               string.Empty,
                               _mapper.Map <IReadOnlyList <GetAllMovieDto> >(data)));
                }
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #3
0
        public async Task <APIResponse> Put(EditMovieDto editMovieDto)
        {
            try
            {
                var currentMovie = await _cinemaDbContext.Movies.FindAsync(editMovieDto.Id);

                if (editMovieDto.Image != null)
                {
                    string path = GetDefaultMoviePath();

                    using (var fileStream = new FileStream(path, FileMode.Create))
                    {
                        await editMovieDto.Image.CopyToAsync(fileStream);

                        editMovieDto.ImageURL = Path.GetRelativePath(_webHostEnvironment.WebRootPath, path);
                    }
                }

                _mapper.Map(editMovieDto, currentMovie);

                _cinemaDbContext.Movies.Update(currentMovie);
                await _cinemaDbContext.SaveChangesAsync();

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.OK, "Movie Updated Successfully", currentMovie));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #4
0
        public async Task <APIResponse> GetById(long id)
        {
            try
            {
                var currentReservation = await _cinemaDbContext.Reservation.FindAsync(id);

                var mappedData = _mapper.Map <ReservationDto>(currentReservation);

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.OK, string.Empty, mappedData));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #5
0
        public async Task <APIResponse> GetAll()
        {
            try
            {
                var data = await _cinemaDbContext.Movies.ToListAsync();

                var mappedData = _mapper.Map <IReadOnlyList <GetAllMovieDto> >(data);

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.OK, string.Empty, mappedData));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #6
0
        public async Task <APIResponse> Post(CreateReservationDto createReservationDto)
        {
            try
            {
                var reserv = _mapper.Map <Reservation>(createReservationDto);

                _cinemaDbContext.Reservation.Add(reserv);
                await _cinemaDbContext.SaveChangesAsync();

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.Created, "Reservation Created Successfully", reserv));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #7
0
        public async Task <APIResponse> Delete(long id)
        {
            try
            {
                var currentMovie = await _cinemaDbContext.Movies.FindAsync(id);

                _cinemaDbContext.Movies.Remove(currentMovie);

                await _cinemaDbContext.SaveChangesAsync();

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.OK, "Movie Deleted Successfully", null));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }
Example #8
0
        public async Task <APIResponse> GetAll()
        {
            try
            {
                var data = await _cinemaDbContext.Reservation
                           .Include(res => res.Movie)
                           .Include(us => us.User)
                           .ToListAsync();

                var mappedData = _mapper.Map <GetAllReservationDto>(data);

                return(APIResponse.GetAPIResponse((int)HttpStatusCode.OK, string.Empty, mappedData));
            }
            catch (Exception x)
            {
                return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null));
            }
        }