public bool DeclineInvitation(InvitationRequestModel invitation) { var invite = _projectUserRepository.GetByPredicate(i => i.ProjectId == invitation.ProjectId && i.UserId == _userId).First(); return(_projectUserRepository.Remove(invite)); }
public bool AcceptInvitation(InvitationRequestModel invitation) { var invite = _projectUserRepository.GetByPredicate(i => i.ProjectId == invitation.ProjectId && i.UserId == _userId).FirstOrDefault(); if (invite == null) { return(false); } invite.IsAccepted = true; _projectUserRepository.SaveChanges(); return(true); }
public async Task <IActionResult> Post(InvitationRequestModel model) { var invitee = await this.Context.Students .AsNoTracking() .FirstOrDefaultAsync(s => s.Id == model.InviteeId); if (invitee == null) { return(this.NotFound()); } var inviteRoom = await this.Context.Rooms .AsNoTracking() .Include(r => r.CurrentResidents) .FirstOrDefaultAsync(r => r.Number == model.RoomNumber); var inviter = await this.Context.Students .AsNoTracking() .Include(s => s.InvitationsSent) .FirstOrDefaultAsync(s => s.Id == this.CurrentUserId); if (!IsEligibleToInvite(inviter, invitee, inviteRoom)) { return(this.Unauthorized()); } var invitation = new Invitation() { FromStudentId = inviter.Id, ToStudentId = invitee.Id, RoomNumber = model.RoomNumber }; await this.Context.Invitations.AddAsync(invitation); await this.Context.SaveChangesAsync(); return(this.Ok()); }