Exemplo n.º 1
0
 public async Task Update(int id, Domain.User.User user)
 {
     string query = "UPDATE users " +
                    "SET name = @Name, surname = @Surname, email = @Email, phonenumber = @Phonenumber " +
                    $"WHERE id = {id}";
     await _dbConnection.ExecuteAsync(query, user);
 }
        public void ConvertToDatabaseTypeTest()
        {
            var domainUser = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var domainTask = new Domain.Task.Task {
                Id   = Guid.NewGuid(),
                Name = "test",
                Time = DateTime.Now,
                User = domainUser
            };

            var userMapper = new Mock <IUserDatabaseMapper>();

            var mapper = new TaskDatabaseMapper(userMapper.Object);

            var result = mapper.ConvertToDatabaseType(domainTask);

            Assert.AreEqual(domainTask.Id, result.Id);
            Assert.AreEqual(domainTask.Name, result.Name);
            Assert.AreEqual(domainTask.Time, result.Time);
            Assert.AreEqual(domainTask.User.Id, result.UserId);
        }
Exemplo n.º 3
0
        public void GetBrokenRulesMissingFirstNameAndAddressCountryTest()
        {
            var user = new Domain.User.User
            {
                Id        = Guid.NewGuid(),
                FirstName = null,
                LastName  = "test",
                Address   = new Domain.Address.Address
                {
                    Country     = null,
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var mockAddressValidator = new Mock <IValidator <Domain.Address.Address> >();

            mockAddressValidator.Setup(x => x.GetBrokenRules(user.Address)).Returns(new List <BusinessRule> {
                AddressBusinessRules.AddressCountryRequired
            });

            var validator = new UserValidator(new List <ISpecification <Domain.User.User> > {
                new UserNameRequired()
            }, mockAddressValidator.Object);

            var broken = validator.GetBrokenRules(user);

            Assert.IsTrue(broken.Any());
            Assert.AreEqual(1, broken.Count());
            Assert.AreEqual(UserBusinessRules.UserNameRequired.Description, broken.First().Description);
        }
Exemplo n.º 4
0
        public void ConvertToDTOTest()
        {
            var user = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var mapper = new UserDtoMapper();

            var result = mapper.ConvertToDTO(user);

            Assert.AreEqual(user.Id, result.Id);
            Assert.AreEqual(user.FirstName, result.FirstName);
            Assert.AreEqual(user.LastName, result.LastName);
            Assert.AreEqual(user.Address.Country, result.Country);
            Assert.AreEqual(user.Address.City, result.City);
            Assert.AreEqual(user.Address.Street, result.Street);
            Assert.AreEqual(user.Address.HouseNumber, result.HouseNumber);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Register([FromBody] RegisterModel userDto)
        {
            // map dto to entity
            var user = new Domain.User.User
            {
                UserName     = userDto.Username,
                EmailAddress = userDto.Email,
                UserProfile  = new Domain.User.UserProfile
                {
                    FirstName = userDto.FirstName,
                    LastName  = userDto.LastName,
                    Address   = $"94, Bideford Road, Ruislip",
                    City      = "London",
                },
                UserRoleId = 1
            };

            try
            {
                var userInfo = await _userService.CreateAsync(user, userDto.Password);

                return(new OkObjectResult(userInfo));
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
Exemplo n.º 6
0
        public void CreateUser_Returns_Correct_Response()
        {
            var user = new Domain.User.User("Name", "Email", DateTime.UtcNow);

            Assert.Equal("Email", user.UserEmail);
            Assert.Equal("Name", user.UserName);
        }
Exemplo n.º 7
0
        public async Task <int> CreateUser(CreatUser createUser)
        {
            var user = new Domain.User.User(createUser.UserName, createUser.Email, createUser.Password, createUser.Code);
            int Id   = await _userRepository.AddUser(user);

            return(Id);
        }
Exemplo n.º 8
0
        public void ConvertToDTOTest()
        {
            var user = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country = "UK"
                }
            };

            var task = new Domain.Task.Task {
                Id   = Guid.NewGuid(),
                Name = "test",
                Time = DateTime.Now,
                User = user
            };

            var mapper = new TaskDtoMapper();

            var result = mapper.ConvertToDTO(task);

            Assert.AreEqual(task.Id, result.Id);
            Assert.AreEqual(task.Name, result.Name);
            Assert.AreEqual(task.Time, result.Time);
            Assert.AreEqual(user.Id, result.UserId);
            Assert.AreEqual(user.FirstName, result.UserFirstName);
            Assert.AreEqual(user.LastName, result.UserLastName);
        }
Exemplo n.º 9
0
        public void DeleteUserTest()
        {
            var testGuid = Guid.NewGuid();

            var usersRequest = new DeleteUserRequest(testGuid);

            var expectedUser = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country = "UK"
                }
            };

            var mockUow = new Mock <IUnitOfWork>();

            var mockRepo = new Mock <IUserRepository>();

            mockRepo.Setup(x => x.Delete(expectedUser));
            mockRepo.Setup(x => x.FindBy(usersRequest.Id)).Returns(expectedUser);

            var mockMapper = new Mock <IUserDtoMapper>();

            var mockValidator = new Mock <IValidator <Domain.User.User> >();

            var service = new UserService(mockUow.Object, mockRepo.Object, mockMapper.Object, mockValidator.Object);

            var response = service.DeleteUser(usersRequest);

            Assert.IsTrue(response.Result);
            Assert.IsNull(response.Exception);
            mockRepo.Verify(x => x.Delete(expectedUser), Times.Once);
            mockUow.Verify(x => x.Commit(), Times.Once);
        }
Exemplo n.º 10
0
        public void UpdateUserTest()
        {
            var testGuid = Guid.NewGuid();

            var userRequest = new UpdateUserRequest(testGuid)
            {
                UserProperties = new UserEditDTO {
                    FirstName   = "test2",
                    LastName    = "test2",
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var expectedUser = new Domain.User.User {
                Id        = testGuid,
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var expectedUpdatedUser = expectedUser;

            expectedUpdatedUser.FirstName = userRequest.UserProperties.FirstName;
            expectedUpdatedUser.LastName  = userRequest.UserProperties.LastName;

            var mockUow = new Mock <IUnitOfWork>();

            var mockRepo = new Mock <IUserRepository>();

            mockRepo.Setup(x => x.Update(expectedUser));
            mockRepo.Setup(x => x.FindBy(userRequest.Id)).Returns(expectedUser);

            var mockMapper = new Mock <IUserDtoMapper>();

            mockMapper.Setup(x => x.PopulateDomainObject(expectedUser, userRequest.UserProperties))
            .Returns(expectedUpdatedUser);

            var mockValidator = new Mock <IValidator <Domain.User.User> >();

            mockValidator.Setup(x => x.GetBrokenRules(expectedUser)).Returns(new List <BusinessRule>());

            var service = new UserService(mockUow.Object, mockRepo.Object, mockMapper.Object, mockValidator.Object);

            var response = service.UpdateUser(userRequest);

            Assert.IsTrue(response.Result);
            Assert.IsNull(response.Exception);
            Assert.AreEqual(userRequest.UserProperties.FirstName, expectedUpdatedUser.FirstName);
            Assert.AreEqual(userRequest.UserProperties.LastName, expectedUpdatedUser.LastName);
            mockRepo.Verify(x => x.Update(expectedUser), Times.Once);
            mockUow.Verify(x => x.Commit(), Times.Once);
        }
Exemplo n.º 11
0
        public bool UpdateUser(int userID, Domain.User.User newUser)
        {
            bool isFound = true;

            try
            {
                var oldUser = _appDbContext.Users.FirstOrDefault(user => user.UserID == userID);
                if (oldUser == null)
                {
                    isFound = false;
                }

                oldUser.Name         = newUser.Name;
                oldUser.EmailID      = newUser.EmailID;
                oldUser.IsAdmin      = newUser.IsAdmin;
                oldUser.MobileNumber = newUser.MobileNumber;

                _appDbContext.SaveChanges();

                return(isFound);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
Exemplo n.º 12
0
        public void GetBrokenRulesValidAddressTest()
        {
            var user = new Domain.User.User
            {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Domain.Address.Address
                {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var mockAddressValidator = new Mock <IValidator <Domain.Address.Address> >();

            mockAddressValidator.Setup(x => x.GetBrokenRules(user.Address)).Returns(new List <BusinessRule>());

            var validator = new UserValidator(new List <ISpecification <Domain.User.User> >(),
                                              mockAddressValidator.Object);

            var broken = validator.GetBrokenRules(user);

            Assert.IsTrue(!broken.Any());
        }
Exemplo n.º 13
0
        public void ConvertToDTOMutipleTest()
        {
            var user1 = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var user2 = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test2",
                LastName  = "test2",
                Address   = new Address {
                    Country     = "US",
                    City        = "New York",
                    Street      = "Test street",
                    HouseNumber = "123"
                }
            };

            var users = new List <Domain.User.User> {
                user1,
                user2
            };

            var mapper = new UserDtoMapper();

            var results = mapper.ConvertToDTO(users);

            Assert.AreEqual(2, results.Count());


            var firstDto = results.First();

            Assert.AreEqual(user1.Id, firstDto.Id);
            Assert.AreEqual(user1.FirstName, firstDto.FirstName);
            Assert.AreEqual(user1.LastName, firstDto.LastName);
            Assert.AreEqual(user1.Address.Country, firstDto.Country);
            Assert.AreEqual(user1.Address.City, firstDto.City);
            Assert.AreEqual(user1.Address.Street, firstDto.Street);
            Assert.AreEqual(user1.Address.HouseNumber, firstDto.HouseNumber);


            var lastDto = results.Last();

            Assert.AreEqual(user2.Id, lastDto.Id);
            Assert.AreEqual(user2.FirstName, lastDto.FirstName);
            Assert.AreEqual(user2.LastName, lastDto.LastName);
            Assert.AreEqual(user2.Address.Country, lastDto.Country);
            Assert.AreEqual(user2.Address.City, lastDto.City);
            Assert.AreEqual(user2.Address.Street, lastDto.Street);
            Assert.AreEqual(user2.Address.HouseNumber, lastDto.HouseNumber);
        }
Exemplo n.º 14
0
        public void CreateUser_Returns_Correct_Response()
        {
            var user = new Domain.User.User("Name", "*****@*****.**", Gender.Male, DateTime.UtcNow);

            Assert.Equal(Gender.Male, user.Gender);
            Assert.Equal("*****@*****.**", user.Email);
            Assert.Equal("Name", user.UserName);
        }
Exemplo n.º 15
0
        public async Task <Domain.User.User> CreateUser(CreateUser createUser)
        {
            var user = new Domain.User.User(createUser.UserName, createUser.Email, createUser.Password, createUser.Gender, createUser.BirthDate);

            user.Id = await _userRepository.AddUser(user);

            return(user);
        }
Exemplo n.º 16
0
        public void ConvertToDTOMutipleTest()
        {
            var user = new Domain.User.User
            {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Address
                {
                    Country = "UK"
                }
            };

            var task1 = new Domain.Task.Task
            {
                Id   = Guid.NewGuid(),
                Name = "test",
                Time = DateTime.Now,
                User = user
            };

            var task2 = new Domain.Task.Task
            {
                Id   = Guid.NewGuid(),
                Name = "test2",
                Time = DateTime.Now,
                User = user
            };

            var tasks = new List <Domain.Task.Task> {
                task1,
                task2
            };

            var mapper = new TaskDtoMapper();

            var results = mapper.ConvertToDTO(tasks);

            Assert.AreEqual(2, results.Count());


            var firstDto = results.First();

            Assert.AreEqual(task1.Name, firstDto.Name);
            Assert.AreEqual(task1.Time, firstDto.Time);
            Assert.AreEqual(task1.User.Id, firstDto.UserId);
            Assert.AreEqual(task1.User.FirstName, firstDto.UserFirstName);
            Assert.AreEqual(task1.User.LastName, firstDto.UserLastName);


            var lastDto = results.Last();

            Assert.AreEqual(task2.Name, lastDto.Name);
            Assert.AreEqual(task2.Time, lastDto.Time);
            Assert.AreEqual(task2.User.Id, lastDto.UserId);
            Assert.AreEqual(task2.User.FirstName, lastDto.UserFirstName);
            Assert.AreEqual(task2.User.LastName, lastDto.UserLastName);
        }
Exemplo n.º 17
0
        private void ThrowExceptionIfUserIsInvalid(Domain.User.User newUser)
        {
            var brokenRules = new BusinessRuleCollection(_userValidator.GetBrokenRules(newUser));

            if (brokenRules.HasRules())
            {
                throw new ValidationException(brokenRules.GetRulesSummary());
            }
        }
Exemplo n.º 18
0
        public async Task EditUser(Domain.User.User user)
        {
            var editUser = await _context.User.FirstOrDefaultAsync(x => x.UserId == user.Id);

            editUser.UserName  = user.UserName;
            editUser.Email     = user.Email;
            editUser.Gender    = user.Gender;
            editUser.BirthDate = user.BirthDate;
            await _context.SaveChangesAsync();
        }
Exemplo n.º 19
0
 public void AddUser(Domain.User.User user)
 {
     try
     {
         _userRepository.AddUser(user);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
Exemplo n.º 20
0
 public bool UpdateUser(int userID, Domain.User.User newUser)
 {
     try
     {
         return(_userRepository.UpdateUser(userID, newUser));
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
Exemplo n.º 21
0
        public void AddPictureLocationToUser(string userId, string imgpath)
        {
            Domain.User.User user = this.GetUser(userId);
            if (user == null)
            {
                throw new ArgumentException("User not found.");
            }

            user.ProfilePictureLocation = imgpath;
            _userRepository.UpdateUser(user);
        }
Exemplo n.º 22
0
        public void AddIdeaToUser(Idea idea, string userId)
        {
            Domain.User.User user = this.GetUser(userId);
            if (user == null)
            {
                throw new ArgumentException("User not found.");
            }

            idea.CreatedBy = user;
            user.Ideas.Add(idea);
            _userRepository.UpdateUser(user);
        }
        public async Task SyncNameToAuth0Async(Domain.User.User internalUser, CancellationToken cancellationToken = default)
        {
            var client = await _auth0ManagementApiClientCreator.GetClient(cancellationToken);

            var request = new UserUpdateRequest
            {
                Connection = _environmentSettings.Auth0.Connection,
                FirstName  = internalUser.GivenName,
                LastName   = $"{internalUser.MiddleName} {internalUser.FamilyName}".Trim()
            };
            await client.Users.UpdateAsync(internalUser.Id.ToString(), request, cancellationToken);
        }
Exemplo n.º 24
0
        public void AddAnswerToUser(Answer answer, string userId)
        {
            Domain.User.User user = this.GetUser(userId);
            if (user == null)
            {
                throw new ArgumentException("User not found.");
            }

            answer.User = user;
            user.Answers.Add(answer);
            _userRepository.UpdateUser(user);
        }
Exemplo n.º 25
0
        public async Task <Domain.User.User> CreateAsync(Domain.User.User model)
        {
            if (model != null)
            {
                await this.userContext.AddAsync(new UserMapper(model).Destination);

                await this.userContext.SaveChangesAsync();

                return(model);
            }
            throw new ArgumentException("Model is null");
        }
Exemplo n.º 26
0
 public DbModels.User ConvertToDatabaseType(Domain.User.User domainType)
 {
     return(new DbModels.User {
         Id = domainType.Id,
         FirstName = domainType.FirstName,
         LastName = domainType.LastName,
         Country = domainType.Address.Country,
         City = domainType.Address.City,
         Street = domainType.Address.Street,
         HouseNumber = domainType.Address.HouseNumber
     });
 }
Exemplo n.º 27
0
        public void AddCommentToUser(Comment comment, string userId)
        {
            Domain.User.User user = GetUser(userId);
            if (user == null)
            {
                throw new ArgumentException("User not found.");
            }

            comment.User = user;
            user.Comments.Add(comment);
            _userRepository.UpdateUser(user);
        }
Exemplo n.º 28
0
 public void AddUser(Domain.User.User user)
 {
     try
     {
         user.Status = "Inactive";
         _appDbContext.Users.Add(user);
         _appDbContext.SaveChanges();
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
Exemplo n.º 29
0
 public UserDTO ConvertToDTO(Domain.User.User user)
 {
     return(new UserDTO
     {
         Id = user.Id,
         FirstName = user.FirstName,
         LastName = user.LastName,
         Country = user.Address?.Country,
         City = user.Address?.City,
         Street = user.Address?.Street,
         HouseNumber = user.Address?.HouseNumber
     });
 }
        public async Task SyncEmailToAuth0Async(Domain.User.User internalUser, CancellationToken cancellationToken = default)
        {
            var client = await _auth0ManagementApiClientCreator.GetClient(cancellationToken);

            var request = new UserUpdateRequest
            {
                Connection    = _environmentSettings.Auth0.Connection,
                Email         = internalUser.Email,
                EmailVerified = false,
                VerifyEmail   = true
            };
            await client.Users.UpdateAsync(internalUser.Id.ToString(), request, cancellationToken);
        }