Exemplo n.º 1
0
        public IActionResult AddSignUp(User user, string password)
        {
            user.PassWord = BCrypt.Net.BCrypt.HashPassword(password);
            StackRepository repo = new StackRepository(_connectionString);

            repo.AddUser(user);
            return(Redirect("/home/index"));
        }
Exemplo n.º 2
0
        public IActionResult LikeQuestion(int questionId)
        {
            StackRepository repo  = new StackRepository(_connectionString);
            User            user  = repo.GetUserByEmail(User.Identity.Name);
            int             likes = repo.AddLikedQuestion(questionId, user.Id);

            return(Json(new { Likes = likes }));
        }
Exemplo n.º 3
0
        public IActionResult AddAnswer(Answer answer)
        {
            StackRepository repo = new StackRepository(_connectionString);

            answer.UserId = repo.GetUserByEmail(User.Identity.Name).Id;
            answer.Date   = DateTime.Now;
            repo.AddAnswer(answer);
            return(Redirect($"/home/viewquestion?questionid={answer.QuestionId}"));
        }
Exemplo n.º 4
0
        public IActionResult ViewQuestion(int questionId)
        {
            StackRepository   repo = new StackRepository(_connectionString);
            ViewQuestionModel vm   = new ViewQuestionModel();

            vm.Question = repo.GetQuestionById(questionId);
            vm.User     = repo.GetUserByEmail(User.Identity.Name);
            return(View(vm));
        }
Exemplo n.º 5
0
        public IActionResult Index()
        {
            StackRepository repo = new StackRepository(_connectionString);
            IndexViewModel  vm   = new IndexViewModel();

            vm.Questions = repo.GetQuestions();

            return(View(vm));
        }
Exemplo n.º 6
0
        public IActionResult AddQuestion(Question question, IEnumerable <string> tags)
        {
            StackRepository repo = new StackRepository(_connectionString);

            question.Date   = DateTime.Now;
            question.UserId = repo.GetUserByEmail(User.Identity.Name).Id;
            repo.AddQuestion(question);
            repo.AddQuestionTags(tags, question.Id);
            return(Redirect("/home/index"));
        }
Exemplo n.º 7
0
        public IActionResult AddLogIn(string email, string password, string returnUrl)
        {
            StackRepository repo = new StackRepository(_connectionString);
            User            user = repo.VerifyLogIn(email, password);

            if (user == null)
            {
                return(Redirect("/home/login"));
            }

            var claims = new List <Claim>
            {
                new Claim("user", email)
            };

            HttpContext.SignInAsync(new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies", "user", "role"))).Wait();
            if (!string.IsNullOrEmpty(returnUrl))
            {
                return(Redirect(returnUrl));
            }
            return(Redirect("/home/index"));
        }
        public void IndexListStacks()
        {
            // Arrange
            var halloweenStack = new Stack {
                Id = Guid.NewGuid()
            };
            var christmasStack = new Stack {
                Id = Guid.NewGuid()
            };

            var stacks = new List <Stack> {
                halloweenStack, christmasStack
            };

            StackRepository.Setup(x => x.FindAll()).Returns(stacks);

            // Act
            var actionResult = (ViewResultBase)HomeController.Index();
            List <StackOverviewViewModel> model = ((IEnumerable <StackOverviewViewModel>)actionResult.Model).ToList();

            // Assert
            model.Should().Contain(x => x.Id == halloweenStack.Id);
            model.Should().Contain(x => x.Id == christmasStack.Id);
        }