Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        protected async Task OnSubmit()
        {
            await InvitationService.Invite(NewInvitation, UriHelper.GetBaseUri());

            NewInvitation = new InvitationEditModel(); // start over
            await Grid.UpdateGrid();
        }
Esempio n. 3
0
        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)));
        }
Esempio n. 4
0
 protected void OnSubmit()
 {
     // FIXME: da, limit the number of invitations that can be sent
     Dispatcher.Dispatch(new PostInvitationAction(NewInvitation));
     NewInvitation = new InvitationEditModel(); // start over
 }
Esempio n. 5
0
 public PostInvitationAction(InvitationEditModel invitation)
 {
     Invitation = invitation;
 }
Esempio n. 6
0
 public PostInvitationFailedAction(InvitationEditModel invitation, string errorMessage)
 {
     Invitation   = invitation;
     ErrorMessage = errorMessage;
 }