Example #1
0
        public async Task <ActionResult> AcceptRegisterInvitation(AcceptRegisterInvitationViewModel invitationVM)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    FirstName   = invitationVM.FirstName,
                    LastName    = invitationVM.LastName,
                    DisplayName = invitationVM.DisplayName,
                    UserName    = invitationVM.Email,
                    Email       = invitationVM.Email,
                    AvatarPath  = "/Avatars/Stuart.png",
                    HouseholdId = invitationVM.HouseholdId
                };

                var result = await UserManager.CreateAsync(user, invitationVM.Password);

                if (result.Succeeded)
                {
                    InvitationHelper.MarkAsInvalid(invitationVM.Id);
                    rHelp.AddUserToRole(user.Id, "Member");

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Hooray", "Account"));
                }

                AddErrors(result);
            }

            return(View(invitationVM));
        }
Example #2
0
        public ActionResult AcceptRegisterInvitation(string recipientEmail, string code)
        {
            var realGuid   = Guid.Parse(code);
            var invitation = db.Invitations.FirstOrDefault(i => i.RecipientEmail == recipientEmail && i.Code == realGuid);

            if (invitation == null)
            {
                return(View("Error", invitation));
            }

            var expirationDate = invitation.Created.AddDays(invitation.TTL);

            if (invitation.IsValid && DateTime.Now < expirationDate)
            {
                var householdName = db.Households.Find(invitation.HouseholdId).Name;
                ViewBag.Greeting = $"Welcome to {householdName}!";

                //var emails = db.Users.Select(u => u.Email).FirstOrDefault().ToLower();
                //var userEmail = recipientEmail.ToLower();
                //if (emails == userEmail)
                //{
                //    var invitationRVM = new AcceptInvitationRegisteredViewModel
                //    {
                //        Id = invitation.Id,
                //        Email = recipientEmail,
                //        Code = realGuid,
                //        HouseholdId = invitation.HouseholdId
                //    };

                //    return View("RegisteredInvitation", invitationRVM);
                //}

                var invitationVM = new AcceptRegisterInvitationViewModel
                {
                    Id          = invitation.Id,
                    Email       = recipientEmail,
                    Code        = realGuid,
                    HouseholdId = invitation.HouseholdId
                };

                return(View(invitationVM));
            }

            return(View("AcceptError", invitation));
        }