コード例 #1
0
        public User Create(RegisterUserPostDto userNew)
        {
            // TODO: how to store the user that added the expense as a field in Expense?
            User toAdd = RegisterUserPostDto.ToUser(userNew);

            context.Users.Add(toAdd);
            context.SaveChanges();
            context.Users.Attach(toAdd);

            UserRole role = new UserRole
            {
                Id   = 1,
                Name = RoleConstants.REGULAR
            };

            UserUserRole history = new UserUserRole
            {
                UserRole  = role,
                StartTime = DateTime.Now
            };

            List <UserUserRole> list = new List <UserUserRole>
            {
                history
            };

            context.UserRoles.Add(role);
            context.UserRoles.Attach(role);

            toAdd.UserUserRoles = list;

            context.SaveChanges();

            return(toAdd);
        }
コード例 #2
0
ファイル: RegisterValidator.cs プロジェクト: CodrutaH/lab6
        public ErrorsCollection Validate(RegisterUserPostDto registerUserPostDto, ExpensesDbContext context)
        {
            ErrorsCollection errorsCollection = new ErrorsCollection {
                Entity = nameof(RegisterUserPostDto)
            };
            User existing = context.Users.FirstOrDefault(u => u.Username == registerUserPostDto.Username);

            if (existing != null)
            {
                errorsCollection.ErrorMessages.Add($"The username {registerUserPostDto.Username} is already taken!");
            }
            if (registerUserPostDto.Password.Length < 6)
            {
                errorsCollection.ErrorMessages.Add("The password cannot be shorter than 6 characters!");
            }
            int numberOfDigits = 0;

            foreach (char c in registerUserPostDto.Password)
            {
                if (c >= '0' && c <= '9')
                {
                    numberOfDigits++;
                }
            }
            if (numberOfDigits < 2)
            {
                errorsCollection.ErrorMessages.Add("The password must contain at least two digits!");
            }
            if (errorsCollection.ErrorMessages.Count > 0)
            {
                return(errorsCollection);
            }
            return(null);
        }
コード例 #3
0
        public void DeleteShouldDeleteUser()
        {
            var options = new DbContextOptionsBuilder <ExpensesDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(DeleteShouldDeleteUser))
                          .Options;

            using (var context = new ExpensesDbContext(options))
            {
                var userService = new UserService(context, null, config);

                var newUser = new RegisterUserPostDto
                {
                    Email = "*****@*****.**",

                    FullName = "dana",
                    Password = "******",
                    Username = "******"
                };

                userService.Register(newUser);

                User addedUser = context.Users.Last();

                context.Entry(addedUser).State = EntityState.Detached;

                //var addedUser = context.Users.Where(u => u.Username == "alina3").FirstOrDefault();

                userService.Delete(addedUser.Id, User);

                int users = userService.GetAll().Count();

                Assert.Zero(users);
            }
        }
コード例 #4
0
ファイル: UserServiceTests.cs プロジェクト: CodrutaH/lab5
        public void AuthenticateShouldLoginAUser()
        {
            var options = new DbContextOptionsBuilder <ExpensesDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(AuthenticateShouldLoginAUser))
                          .Options;

            using (var context = new ExpensesDbContext(options))
            {
                var usersService = new UserService(context, config);
                var added        = new RegisterUserPostDto

                {
                    FullName = "codruta",
                    Username = "******",
                    Email    = "*****@*****.**",
                    Password = "******"
                };
                var result        = usersService.Register(added);
                var authenticated = new LoginPostDto
                {
                    Username = "******",
                    Password = "******"
                };
                var authresult = usersService.Authenticate(added.Username, added.Password);

                Assert.IsNotNull(authresult);
                Assert.AreEqual(1, authresult.Id);
                Assert.AreEqual(authenticated.Username, authresult.Username);
            }
        }
コード例 #5
0
        //[HttpPost]
        public IActionResult Register([FromBody] RegisterUserPostDto registerModel)
        {
            var user = userService.Register(registerModel);

            if (user == null)
            {
                return(BadRequest(user));
            }
            return(Ok());
        }
コード例 #6
0
        public IActionResult Post([FromBody] RegisterUserPostDto userNew)
        {
            var user = userService.Create(userNew);

            if (user == null)
            {
                return(BadRequest(user));
            }
            return(Ok());
        }
コード例 #7
0
ファイル: UsersController.cs プロジェクト: CodrutaH/lab-4
        //[HttpPost]
        public IActionResult Register([FromBody] RegisterUserPostDto registerModel)
        {
            var user = _userService.Register(registerModel);

            if (user == null)
            {
                return(BadRequest(new { ErrorMessage = "Username already exists." }));
            }
            return(Ok(user));
        }
コード例 #8
0
        public GetUserDto Register(RegisterUserPostDto register)
        {
            User existing = context.Users.FirstOrDefault(u => u.Username == register.Username);

            if (existing != null)
            {
                return(null);
            }
            User user = new User
            {
                Email     = register.Email,
                FullName  = register.FullName,
                Password  = ComputeSha256Hash(register.Password),
                Username  = register.Username,
                CreatedAt = DateTime.Now
            };

            context.Users.Add(user);
            context.SaveChanges();
            context.Users.Attach(user);

            UserRole role = new UserRole
            {
                Id   = 1,
                Name = RoleConstants.REGULAR
            };

            UserUserRole history = new UserUserRole
            {
                UserRole  = role,
                StartTime = DateTime.Now
            };

            List <UserUserRole> list = new List <UserUserRole>
            {
                history
            };

            context.UserRoles.Add(role);
            context.UserRoles.Attach(role);

            user.UserUserRoles = list;

            context.SaveChanges();

            return(Authenticate(register.Username, register.Password));
        }
コード例 #9
0
        public GetUserDto Register(RegisterUserPostDto registerInfo)
        {
            User existing = context.Users.FirstOrDefault(u => u.Username == registerInfo.Username);

            if (existing != null)
            {
                return(null);
            }

            context.Users.Add(new User
            {
                FullName = registerInfo.FullName,
                Email    = registerInfo.Email,
                Username = registerInfo.Username,
                Password = ComputeSha256Hash(registerInfo.Password)
            });
            context.SaveChanges();
            return(Authenticate(registerInfo.Username, registerInfo.Password));
        }
コード例 #10
0
        public void ValidRegisterShouldCreateNewUser()
        {
            var options = new DbContextOptionsBuilder <ExpensesDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(ValidRegisterShouldCreateNewUser))// "ValidRegisterShouldCreateNewUser")
                          .Options;

            using (var context = new ExpensesDbContext(options))
            {
                var usersService = new UserService(context, null, config);
                var added        = new RegisterUserPostDto
                {
                    FullName = "fdsfsdfs",
                    Username = "******",
                    Email    = "[email protected]",
                    Password = "******",
                };
                var result = usersService.Register(added);

                Assert.IsNotNull(result);
            }
        }
コード例 #11
0
ファイル: UserServiceTests.cs プロジェクト: CodrutaH/lab-4
        public void GetAllShouldReturnAllUser()
        {
            var options = new DbContextOptionsBuilder <ExpensesDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(GetAllShouldReturnAllUser))
                          .Options;

            using (var context = new ExpensesDbContext(options))
            {
                var usersService = new UserService(context, config);
                var added1       = new RegisterUserPostDto

                {
                    FullName = "codruta1",

                    Email    = "*****@*****.**",
                    Username = "******",
                    Password = "******"
                };
                var added2 = new RegisterUserPostDto

                {
                    FullName = "codruta3",

                    Email    = "*****@*****.**",
                    Username = "******",

                    Password = "******"
                };

                usersService.Register(added1);
                usersService.Register(added2);

                int numberOfElements = usersService.GetAll().Count();

                Assert.NotZero(numberOfElements);
            }
        }