public IHttpActionResult Postfilms(FILMS film)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _unitOfWork.FilmsRepository.Insert(film);

            try
            {
                _unitOfWork.Save();
            }
            catch (DbUpdateException)
            {
                if (_unitOfWork.FilmsRepository.Exists(film.ID_FILM))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            catch (DataException)
            {
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }

            return(Created("/api/films/" + film.ID_FILM, film));
        }
        public IHttpActionResult Putfilms(decimal id, FILMS filmToUpdate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != filmToUpdate.ID_FILM)
            {
                return(BadRequest());
            }

            _unitOfWork.FilmsRepository.Update(filmToUpdate);

            try
            {
                _unitOfWork.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!filmsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            catch
            {
                return(StatusCode(HttpStatusCode.InternalServerError));

                throw;
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public FilmsDTO GetfilmsById(decimal id)
        {
            FILMS Film = _unitOfWork.FilmsRepository.GetById(id);

            if (Film == null)
            {
                return(new FilmsDTO());
            }
            FilmsDTO FilmDTO = new FilmsDTO
            {
                IdFilm        = Film.ID_FILM,
                Title         = Film.NAME,
                Duration      = Film.DURATION,
                Plot          = Film.PLOT,
                PosterUrl     = Film.POSTER_URL,
                ReleaseDate   = Film.RELEASE_DATE,
                ScreeningDate = Film.SCREENINGS.Select(y => y.SCREENING_DATE.ToString() + " " + y.THEATERS.NAME),
                Actors        = string.Join(",", Film.FILM_ACTOR.Select(y => y.ID_ACTOR)),
                Genres        = String.Join(",", Film.FILM_GENRE.Select(y => y.ID_GENRE))
            };

            return(FilmDTO);
        }