Пример #1
0
        public void AddUser()
        {
            //-- arrange
            var countBeforeAdd = _repository.GetUsers(_resourceParameters).Count;

            var user = new User
            {
                FirstName    = "fname",
                LastName     = "lname",
                EmailAddress = "email@users",
                Password     = "******"
            };

            //-- act
            _repository.AddUser(user);
            _repository.Save();

            var actual = _repository.GetUsers(_resourceParameters).Count;

            //-- assert
            Assert.AreEqual(countBeforeAdd + 1, actual);

            //-- clean up
            _repository.DeleteUser(user);
            _repository.Save();
        }
Пример #2
0
        public IActionResult GetUsers(
            [FromQuery] UsersResourceParameters usersResourceParameters,
            [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType)
        {
            var userEntities = _weblogDataRepository.GetUsers(usersResourceParameters);

            var usersToReturn = _mapper.Map <IEnumerable <UserDto> >(userEntities);

            Response.Headers.Add(PaginationHeader <User> .Get(userEntities));

            var includeLinks = MediaTypes.IncludeLinks(mediaType);

            if (!includeLinks)
            {
                return(Ok(usersToReturn));
            }

            var usersWithLinks = usersToReturn.Select(user =>
            {
                var links = CreateLinksForUser(user.UserId);

                return(new UserDtoWithLinks(user, links));
            });

            var resourceToReturn = new
            {
                users = usersWithLinks,
                links = LinksForCollection.Create(CreateUsersResourceUri,
                                                  Array.Empty <int>(),
                                                  usersResourceParameters,
                                                  userEntities.HasPrevious,
                                                  userEntities.HasNext)
            };

            return(Ok(resourceToReturn));
        }