public async Task <ActionResult <UserDTO> > PostUser(UserDTO user) { //if user logged in is authenticated if (_context.Users.Any(x => x.Email.Equals(user.Email))) { return(BadRequest()); } //create new user object var dbObject = new User() { Active = false, AmountOfLogins = 0, BirthId = GetHashedValue(user.BirthId), Email = user.Email, FirstName = user.FirstName, HasAdmin = user.HasAdmin, IsDeleted = false, Password = GetHashedValue(user.Password), SirName = user.SirName }; //save user to db _context.Users.Add(dbObject); await _context.SaveChangesAsync(); //return the new object with the new id return(CreatedAtAction("GetUser", new { id = user.Id }, UserDTO.Selector().Compile()(dbObject))); }
public async Task <ActionResult <UserDTO> > GetUser(int id) { var user = await _context.Users.FindAsync(id); //check if the user is found if (user == null || user.IsDeleted) { return(NotFound()); } //select only the needed fields for transfer as described in dto return(UserDTO.Selector().Compile()(user)); }
public async Task <ActionResult <IEnumerable <UserDTO> > > GetUsers() { //fetch all users var list = await _context.Users.Where(x => !x.IsDeleted).ToListAsync(); var dtoList = new List <UserDTO>(); //select only the needed fields for transfer as described in dto foreach (var user in list) { var dto = UserDTO.Selector().Compile()(user); dtoList.Add(dto); } //return dto list return(dtoList); }