public async Task Invite(InvitationEditModel model, string baseUri) { var invitation = await _invitationService.SendInvitation(Guid.NewGuid(), model.To, confirmationCode => $"{baseUri}/join/{WebUtility.UrlEncode(model.To)}/{WebUtility.UrlEncode(confirmationCode)}"); _db.Invitations.Add(invitation); await _db.SaveChangesAsync(); }
protected async Task OnSubmit() { await InvitationService.Invite(NewInvitation, UriHelper.GetBaseUri()); NewInvitation = new InvitationEditModel(); // start over await Grid.UpdateGrid(); }
public async Task <ActionResult <InvitationViewModel> > Invitations([FromBody] InvitationEditModel model) { if (await _db.Users.AnyAsync(u => u.Email == model.To) || await _db.Invitations.AnyAsync(i => i.To == model.To)) { return(BadRequest("This user has already been invited.")); } var user = await GetUserIncludingInvitations(); string baseUrl = _environment.IsProduction() ? Urls.AppUrl : $"{Request.Scheme}://{Request.Host}{Request.PathBase}"; // see: https://stackoverflow.com/a/47051481/331281 var invitation = await _invitationService.SendInvitation(model.Id, model.To, confirmationCode => $"{baseUrl}/join/{WebUtility.UrlEncode(model.To)}/{WebUtility.UrlEncode(confirmationCode)}"); user.Invitations.Add(invitation); await _db.SaveChangesAsync(); return(Ok(ToViewModel(invitation))); }
protected void OnSubmit() { // FIXME: da, limit the number of invitations that can be sent Dispatcher.Dispatch(new PostInvitationAction(NewInvitation)); NewInvitation = new InvitationEditModel(); // start over }
public PostInvitationAction(InvitationEditModel invitation) { Invitation = invitation; }
public PostInvitationFailedAction(InvitationEditModel invitation, string errorMessage) { Invitation = invitation; ErrorMessage = errorMessage; }