public async Task <Invitation> AddInvitation(InvitationViewModel viewModel, int groupOwnerId) { var invitedUser = userService.GetByEmail(viewModel.Email); if (invitedUser == null) { // TODO: Error handling. Throw exception maybe? return(null); } var existingInvitation = context.Invitations.FirstOrDefault(i => i.GroupOwnerId == groupOwnerId && i.InvitedUserId == invitedUser.Id); if (existingInvitation != null) { return(existingInvitation); } var invitation = new Invitation { GroupOwnerId = groupOwnerId }; invitedUser.PendingPassiveInvitations.Add(invitation); await context.SaveChangesAsync(); return(invitation); }
public async Task <IActionResult> PutLaundryTemplate([FromRoute] int id, [FromBody] LaundryTemplate laundryTemplate) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != laundryTemplate.Id) { return(BadRequest()); } _context.Entry(laundryTemplate).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LaundryTemplateExists(id)) { return(NotFound()); } else { throw; } } return(Ok(laundryTemplate)); }
public async Task <User> Register(RegisterViewModel viewModel) { var user = new User { UserName = viewModel.Username, Email = viewModel.Email, PasswordHash = passwordHasher.HashPassword(null, viewModel.Password) }; await context.Users.AddAsync(user); await context.SaveChangesAsync(); return(user); }