[ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Create(PostActorModel postActorModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Create", "actor");

                if (ModelState.IsValid)
                {
                    GetActorModel getActorModel = await _moviemindAPIService.PostModel <PostActorModel, GetActorModel>(postActorModel, "Actors");

                    //put in new relationships
                    foreach (Guid movieId in postActorModel.MovieIds)
                    {
                        await _moviemindAPIService.PostModel <PostActorMovieModel, GetActorMovieModel>(new PostActorMovieModel
                        {
                            ActorId = getActorModel.Id,
                            MovieId = movieId
                        }, "ActorMovies");
                    }

                    return(Redirect("/Actors/Details/" + getActorModel.Id.ToString()));
                }

                return(View(postActorModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(postActorModel)));
            }
        }
Exemple #2
0
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Create(PostReviewModel postReviewModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Guest", this.GetType().Name, "Create", "review");

                if (ModelState.IsValid)
                {
                    var userId = HttpContext.Session.GetString("_Id");
                    var user   = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users");

                    postReviewModel.UserId = user.Id;

                    GetReviewModel getReviewModel = await _moviemindAPIService.PostModel <PostReviewModel, GetReviewModel>(postReviewModel, "reviews");

                    return(Redirect("/Reviews/Details/" + getReviewModel.Id.ToString()));
                }

                return(View(postReviewModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(postReviewModel)));
            }
        }
Exemple #3
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)));
            }
        }
Exemple #4
0
        public async Task <IActionResult> ForgotPassword(ForgotPasswordModel forgotPasswordModel)
        {
            if (ModelState.IsValid)
            {
                ResetPasswordModel resetPasswordModel = await _moviemindAPIService.PostModel <ForgotPasswordModel, ResetPasswordModel>(forgotPasswordModel, "users/forgotpassword");

                return(View("ResetPassword", resetPasswordModel));
            }

            return(View(forgotPasswordModel));
        }
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Index(PostUserModel postUserModel, string rememberMe)
        {
            if (postUserModel.Password != postUserModel.ConfirmPassword)
            {
                ModelState.AddModelError("ConfirmPassword", _localizer["Passwords are not the same"]);
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (postUserModel.Roles == null)
                    {
                        postUserModel.Roles = new List <String>
                        {
                            "Guest"
                        };
                    }
                    else if (postUserModel.Roles.Count == 0)
                    {
                        postUserModel.Roles.Add("Guest");
                    }
                    // Send an API request to create the new user
                    GetUserModel getUserModel = await _moviemindAPIService.PostModel <PostUserModel, GetUserModel>(postUserModel, "users");

                    // When the user was successfully created send an API request to authenticate the new user
                    PostAuthenticateRequestModel postAuthenticateRequestModel = new PostAuthenticateRequestModel
                    {
                        UserName = postUserModel.UserName,
                        Password = postUserModel.Password,
                    };

                    PostAuthenticateResponseModel postAuthenticateResponseModel = await _moviemindAPIService.Authenticate(postAuthenticateRequestModel);

                    _stateManagementService.SetState(postAuthenticateResponseModel);

                    // Redirect to the home page
                    return(RedirectToRoute(new { action = "Index", controller = "Home" }));
                }
                catch (MovieMindException e)
                {
                    TempData["ApiError"] = e.Message;
                }
            }

            return(View(postUserModel));
        }
        public async Task <IActionResult> AddFollower(string followingId)
        {
            try
            {
                var userId = HttpContext.Session.GetString("_Id");
                var user   = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users");

                PostUserFollowerModel postUserFollowerModel = new PostUserFollowerModel
                {
                    FollowingId = Guid.Parse(followingId),
                    FollowerId  = user.Id
                };

                GetUserFollowerModel getUserFollowerModel = await _moviemindAPIService.PostModel <PostUserFollowerModel, GetUserFollowerModel>(postUserFollowerModel, "Userfollowers");

                return(Redirect("/Users/Details/" + followingId));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }