Ejemplo n.º 1
0
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Create(PostDirectorModel postDirectorModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Create", "director");


                if (ModelState.IsValid)
                {
                    GetDirectorModel getDirectorModel = await _moviemindAPIService.PostModel <PostDirectorModel, GetDirectorModel>(postDirectorModel, "Directors");

                    if (TempData["controller"] != null && TempData["action"] != null)
                    {
                        return(RedirectToRoute(new { action = TempData["action"], controller = TempData["controller"] }));
                    }

                    return(Redirect("Directors/Details/" + getDirectorModel.Id.ToString()));
                }

                return(View(postDirectorModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(postDirectorModel)));
            }
        }
Ejemplo n.º 2
0
        public async Task <GetDirectorModel> GetDirector(string id)
        {
            GetDirectorModel director = await _context.Directors
                                        .Select(x => new GetDirectorModel
            {
                Id          = x.Id,
                FirstName   = x.FirstName,
                LastName    = x.LastName,
                Birth       = x.Birth,
                Nationality = x.Nationality,
                Description = x.Description,
                Movies      = (from movie in _context.Movies
                               where movie.DirectorId == x.Id
                               select new GetMovieModel
                {
                    Id = movie.Id,
                    Name = movie.Name,
                    Description = movie.Description,
                    Duration = movie.Duration,
                    Year = movie.Year,
                    OverallRating = movie.OverallRating,
                    GenreId = movie.GenreId,
                    DirectorId = movie.DirectorId
                }).ToList()
            })
                                        .AsNoTracking()
                                        .FirstOrDefaultAsync(x => x.Id == Guid.Parse(id));

            if (director == null)
            {
                throw new EntityException("Director not found", this.GetType().Name, "GetDirector", "404");
            }

            return(director);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <GetDirectorModel> > PostDirector(PostDirectorModel postDirectorModel)
        {
            try
            {
                GetDirectorModel director = await _directorRepository.PostDirector(postDirectorModel);

                return(CreatedAtAction(nameof(GetDirector), new { id = director.Id }, director));
            }
            catch (DatabaseException e)
            {
                return(BadRequest(e.MovieMindError));
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Details(string id)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Guest", this.GetType().Name, "Details", "director");

                GetDirectorModel getDirectorModel = await _moviemindAPIService.GetModel <GetDirectorModel>(id, "Directors");

                return(View(getDirectorModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }
Ejemplo n.º 5
0
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Delete(string id, GetDirectorModel getDirectorModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Delete", "director");

                await _moviemindAPIService.DeleteModel(id, "Directors");

                return(RedirectToRoute(new { action = "Index", controller = "Directors" }));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(getDirectorModel)));
            }
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Edit(string id)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Edit", "director");

                GetDirectorModel getDirectorModel = await _moviemindAPIService.GetModel <GetDirectorModel>(id, "Directors");

                PutDirectorModel putDirectorModel = new PutDirectorModel
                {
                    FirstName   = getDirectorModel.FirstName,
                    LastName    = getDirectorModel.LastName,
                    Birth       = getDirectorModel.Birth,
                    Description = getDirectorModel.Description,
                    Nationality = getDirectorModel.Nationality
                };

                return(View(putDirectorModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }