public IActionResult Post([FromBody] UserDto newUserDto) { var currentUser = _loginService.GetCurrentUser(); if (currentUser == null && newUserDto.Role != UserRole.User) { return(BadRequest("One does not simply summon a king out of thin air, one must join the ranks as a peon first.")); } else if (currentUser != null && newUserDto.Role > currentUser.Role) { return(BadRequest("Cannot bestow a user with a more magnificent role than current user.")); } else if (emailRegex.IsMatch(newUserDto.Email) == false) { return(BadRequest("Invalid email address.")); } else if (_context.Users.FindByEmail(newUserDto.Email) != null) { return(BadRequest("A user already exists with that email address.")); } else { var newUser = new User() { Email = newUserDto.Email, FirstName = newUserDto.FirstName, LastName = newUserDto.LastName, Role = newUserDto.Role, }; newUser.SetPassword(newUserDto.Password); _context.Add(newUser); _context.SaveChanges(); _emailNotifier.SendUserdDetails(newUser.Email, newUser.FirstName, newUser.LastName, newUserDto.Password, newUser.Role.ToString()); return(Ok()); } }
public void GetsEntriesInRange() { DateTime dt1 = new DateTime(2020, 1, 15); DateTime dt2 = new DateTime(2020, 1, 16); DateTime dt3 = new DateTime(2020, 1, 17); DateTime dt4 = new DateTime(2020, 1, 18); DateTime dt5 = new DateTime(2020, 1, 19); _context.Add(new Entry() { Id = 1, Date = dt1, UserId = _regularUser1.Id }); _context.Add(new Entry() { Id = 2, Date = dt2, UserId = _regularUser1.Id }); _context.Add(new Entry() { Id = 3, Date = dt3, UserId = _regularUser1.Id }); _context.Add(new Entry() { Id = 4, Date = dt4, UserId = _regularUser1.Id }); _context.Add(new Entry() { Id = 5, Date = dt5, UserId = _regularUser1.Id }); _context.SaveChanges(); var res = ((_controller.Get(dt2, dt4, _regularUser1.Id) as OkObjectResult).Value as IEnumerable <EntryDTO>).ToArray(); Assert.AreEqual(3, res.Count()); Assert.AreEqual(1, res.Count(e => e.Id == 2)); //include from Assert.AreEqual(1, res.Count(e => e.Id == 3)); Assert.AreEqual(1, res.Count(e => e.Id == 4)); //include to }