示例#1
0
        public async Task <ActionResult> DashBoardAsync(UserToReturnDto model)
        {
            HttpClient client = new HttpClient();

            //  string endpoint = apiBaseUrl + "api/account/register";
            var Response = await client.GetAsync("http://localhost:5000/api/admin/getusers");

            var responseBody = await Response.Content.ReadAsStringAsync();

            var responseObject = JsonConvert.DeserializeObject <IEnumerable <UserToReturnDto> >(responseBody);

            ViewBag.female = responseObject.Where(x => x.Gender.ToLower() == "female").Count();
            ViewBag.male   = responseObject.Where(x => x.Gender.ToLower() == "male").Count();

            var res = new UserList
            {
                AllUsers = responseObject,
                User     = model
            };

            var user = responseObject.ToList();

            ViewBag.IsLoggedIn = true;
            return(View(res));
        }
        public async Task GetUser_ShouldReturnUser()
        {
            // Arrange
            var userId    = 1;
            var firstname = "Jelena";
            var lastname  = "Ralevic";
            var user      = new PowerUser()
            {
                Id        = userId,
                Firstname = firstname,
                Lastname  = lastname
            };

            var userToReturnDto = new UserToReturnDto()
            {
                Id        = userId,
                Firstname = firstname,
                Lastname  = lastname
            };

            _unitOfWorkMock.Setup(x => x.Users.GetUserByIdWithAdditionalInformation(userId))
            .ReturnsAsync(user);

            _mapperMock.Setup(x => x.Map <UserToReturnDto>(It.IsAny <PowerUser>()))
            .Returns(userToReturnDto);
            // Act
            var result = await _sut.GetUser(userId);

            // Assert
            Assert.Equal(userId, result.Id);
            Assert.Equal(firstname, result.Firstname);
            Assert.Equal(lastname, result.Lastname);
        }
示例#3
0
        public async Task <IActionResult> EditUser(string id, UserToReturnDto user)
        {
            int userId = Convert.ToInt32(id);

            if (userId != user.Id)
            {
                return(BadRequest());
            }
            var userObj = _context.Users.FindAsync(userId);
            // _context.Entry(userChk).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(Ok(user));
        }
示例#4
0
        public async Task <ActionResult <List <Post> > > getPostsByCategorieTitle(string title)
        {
            List <PostToReturnDto> postToReturnDto   = new List <PostToReturnDto>();
            AuthorToReturnDto      authorToReturnDto = new AuthorToReturnDto();

            List <Post> posts = new List <Post>();

            posts = await _db.getPostsByCategorieTitle(title);

            foreach (var item in posts)
            {
                Author          author          = new Author();
                UserToReturnDto userToReturnDto = new UserToReturnDto();
                PostToReturnDto tempPost        = new PostToReturnDto();

                author = item.Author;
                authorToReturnDto.user = userToReturnDto;


                userToReturnDto.id       = item.Author.user.id;
                userToReturnDto.posts    = item.Author.user.posts;
                userToReturnDto.username = item.Author.user.username;

                authorToReturnDto.user   = userToReturnDto;
                authorToReturnDto.id     = item.authorId;
                authorToReturnDto.userId = item.Author.userId;

                tempPost.Author        = authorToReturnDto;
                tempPost.authorId      = item.authorId;
                tempPost.Categorie     = item.Categorie;
                tempPost.categorieId   = item.categorieId;
                tempPost.content       = item.content;
                tempPost.date          = item.date;
                tempPost.id            = item.id;
                tempPost.imageUrl      = item.imageUrl;
                tempPost.PostType      = item.PostType;
                tempPost.postTypeId    = item.postTypeId;
                tempPost.reactionSet   = item.reactionSet;
                tempPost.reactionSetId = item.reactionSetId;
                tempPost.title         = item.title;

                postToReturnDto.Add(tempPost);
            }

            return(Ok(postToReturnDto));
        }
示例#5
0
        public async Task <IActionResult> Login(UserDto userDto)
        {
            var user = await authRepositery.Login(userDto.UserName, userDto.Password);

            if (user == null)
            {
                return(Unauthorized());
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.UserId.ToString()),
                new Claim(ClaimTypes.Name, userDto.UserName)
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8
                                               .GetBytes(_configuration.GetSection("AppSettings:Token").Value));


            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                SigningCredentials = creds,
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1)
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            //var userToReturn  = _mapper.Map<UserToReturnDto>(user);
            UserToReturnDto userToReturnDto = new UserToReturnDto()
            {
                UserId   = user.UserId,
                Username = user.UserName
            };

            return(Ok(new
            {
                token = tokenHandler.WriteToken(token),
                userToReturnDto
            }));
        }
示例#6
0
        public async Task Post_Login_returnsJWTTokenAndUserObject()
        {
            // Arrange
            var testUsername = "******";
            var dbContext    = DbContextMocker.GetLandmarkingContext(nameof(Post_Login_returnsJWTTokenAndUserObject));
            var repository   = new AuthRepository(dbContext);
            var mapper       = IMapperMocker.getMapper();
            var iConfig      = IConfigMocker.getIconfiguration();
            var controller   = new AuthController(repository, mapper, iConfig);

            var userLogin = new UserLoginDto()
            {
                Username = testUsername,
                Password = "******"
            };

            // Act
            var response = await controller.Login(userLogin);

            // Assert
            var OkObjectResult = Assert.IsType <OkObjectResult>(response);

            //// retrieve & convert anonymous response object with Reflection
            dynamic         responseObject     = OkObjectResult.Value;
            var             tokenProperty      = responseObject.GetType().GetProperty("token");
            string          encodedToken       = tokenProperty.GetValue(responseObject, null);
            var             userObjectProperty = responseObject.GetType().GetProperty("userObject");
            UserToReturnDto userObject         = userObjectProperty.GetValue(responseObject, null);


            Assert.Equal(testUsername.ToLower(), userObject.Username);

            // decode verifyJWT
            var decodedToken = new JwtSecurityToken(encodedToken);
            var jwtUsername  = decodedToken.Claims.First(claim => claim.Type == "unique_name").Value;

            Assert.Equal(testUsername.ToLower(), jwtUsername);

            //cleanup
            dbContext.Dispose();
        }
示例#7
0
        private IActionResult ShapeResultAsync(IQueryable <ApplicationUser> result)
        {
            var usersToReturn = new List <UserToReturnDto>();

            foreach (var item in result)
            {
                var user = new UserToReturnDto
                {
                    LastName    = item.LastName,
                    FirstName   = item.FirstName,
                    Email       = item.Email,
                    Gender      = item.Gender,
                    DateCreated = item.DateCreated,
                };


                usersToReturn.Add(user);
            }

            return(Ok(usersToReturn));
        }
示例#8
0
        public async Task <IActionResult> GetActionResultAsync(UserToLoginDto model)
        {
            if (ModelState.IsValid)
            {
                var result = await _userManager.FindByEmailAsync(model.Email);

                if (result != null)
                {
                    var dto = new UserToReturnDto
                    {
                        FirstName   = result.FirstName,
                        LastName    = result.LastName,
                        Gender      = result.Gender,
                        Email       = result.Email,
                        DateCreated = result.DateCreated
                    };
                    return(Ok(dto));
                }
            }

            return(BadRequest("Incorrect User Input"));
        }
示例#9
0
        public async Task <IActionResult> Login(UserToLoginDto model)
        {
            //if (!ModelState.IsValid)
            //    return BadRequest(ModelState);

            var user = _userManager.Users.FirstOrDefault(x => x.Email == model.Email);

            if (user == null)
            {
                return(Unauthorized());
            }

            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, isPersistent : model.RememberMe, false);

            if (!result.Succeeded)
            {
                return(Unauthorized("Invalid credentials"));
            }

            if (result.Succeeded)
            {
                var role = await _userManager.GetRolesAsync(user);

                var userReturn = new UserToReturnDto
                {
                    FirstName   = user.FirstName,
                    LastName    = user.LastName,
                    Email       = user.Email,
                    DateCreated = user.DateCreated,
                    Role        = role.ToList(),
                    Gender      = user.Gender,
                };
                return(Ok(userReturn));
            }
            return(BadRequest());
        }
示例#10
0
        public async Task GetAllUsers_ShouldReturnTwo()
        {
            // Arrange
            var firstUserId          = 1;
            var firstUserName        = "******";
            var firstUserLastName    = "Nikic";
            var secondUserId         = 1;
            var secondUserName       = "******";
            var secondUserLastName   = "Nikic";
            ICollection <User> users = new List <User>();

            var firstUser = new PowerUser()
            {
                Id        = firstUserId,
                Firstname = firstUserName,
                Lastname  = firstUserLastName
            };

            var secondUser = new PowerUser()
            {
                Id        = secondUserId,
                Firstname = secondUserName,
                Lastname  = secondUserLastName
            };

            users.Add(firstUser);
            users.Add(secondUser);

            ICollection <UserToReturnDto> userToReturnDtos = new List <UserToReturnDto>();
            var firstUserToReturnDto = new UserToReturnDto()
            {
                Id        = firstUserId,
                Firstname = firstUserName,
                Lastname  = firstUserLastName
            };

            var secondUserToReturnDto = new UserToReturnDto()
            {
                Id        = secondUserId,
                Firstname = secondUserName,
                Lastname  = secondUserLastName
            };

            userToReturnDtos.Add(firstUserToReturnDto);
            userToReturnDtos.Add(secondUserToReturnDto);

            _unitOfWorkMock.Setup(x => x.Users.GetUsers())
            .ReturnsAsync(users);

            _mapperMock.Setup(x =>
                              x.Map <ICollection <UserToReturnDto> >
                                  (users))
            .Returns(userToReturnDtos);

            // Act
            var response = await _sut.GetAllUsers();

            // Assert
            var firstUserFromList  = response.FirstOrDefault(x => x.Id == firstUserToReturnDto.Id);
            var secondUserFromList = response.FirstOrDefault(x => x.Id == secondUserToReturnDto.Id);

            Assert.Equal(firstUserToReturnDto.Id, firstUserFromList.Id);
            Assert.Equal(firstUserToReturnDto.Firstname, firstUserFromList.Firstname);
            Assert.Equal(firstUserToReturnDto.Lastname, firstUserFromList.Lastname);
            Assert.Equal(secondUserToReturnDto.Id, secondUserFromList.Id);
            Assert.Equal(secondUserToReturnDto.Firstname, secondUserFromList.Firstname);
            Assert.Equal(secondUserToReturnDto.Lastname, secondUserFromList.Lastname);
        }