Esempio n. 1
0
        public async Task <ICommandResult <EmailMessage> > SendSecurityTokenAsync(Models.SignUp signUp)
        {
            // Get reset password email
            var culture = await _contextFacade.GetCurrentCultureAsync();

            var email = await _localeStore.GetFirstOrDefaultByKeyAsync <LocaleEmail>(culture, "SignUpSecurityToken");

            if (email != null)
            {
                var subject = string.Format(email.Subject, signUp.SecurityToken);
                var body    = string.Format(email.Message, signUp.SecurityToken);

                var message = new MailMessage()
                {
                    Subject    = subject,
                    Body       = WebUtility.HtmlDecode(body),
                    IsBodyHtml = true
                };

                message.To.Add(signUp.Email);

                // send email
                return(await _emailManager.SaveAsync(message));
            }

            var result = new CommandResult <EmailMessage>();

            return(result.Failed("An error occurred whilst attempting to send the security token email."));
        }
Esempio n. 2
0
        public async Task <ActionResult> SignUp(Models.SignUp model)
        {
            try
            {
                var auth = new FirebaseAuthProvider(new FirebaseConfig(ApiKey));

                var a = await auth.CreateUserWithEmailAndPasswordAsync(model.Email, model.Password, model.Name, true);

                ModelState.AddModelError(string.Empty, "Please verify your email then login.");
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);
            }

            return(View());
        }
Esempio n. 3
0
 private void Skip()
 {
     Models.SignUp nullSignUp = null;
     MessagingCenter.Send(this, MessengerKeys.NextCard, nullSignUp);
 }
        public async Task <IActionResult> SignUp(Models.SignUp args)
        {
            ViewData["Title"] = "Sign-up";

            using (var txn = context.Database.BeginTransaction())
            {
                ViewBag.Communities = new SelectList(await communityBusiness.Get(), "Id", "Name");
                ViewBag.ReCaptcha   = captcha;

                try
                {
                    if (!ModelState.IsValid)
                    {
                        return(View(args));
                    }
                    else
                    {
                        var bll_member = memberBusiness;

                        var midlleInitial = String.IsNullOrEmpty(args.MiddleInitial) ? " " : $" {args.MiddleInitial}. ";
                        var name          = args.FirstName.Trim() + midlleInitial + args.LastName.Trim();

                        var m = this.mapper.Map <EF.Member>(args);
                        m.Name        = name;
                        m.IsActive    = true;
                        m.DateCreated = DateTime.Now;

                        var memberId = await bll_member.Add(m);

                        // Add to User
                        // Generate ConfirmationCode
                        Guid   g          = Guid.NewGuid();
                        string guidString = Convert.ToBase64String(g.ToByteArray());
                        guidString = guidString.Replace("=", "");
                        guidString = guidString.Replace("+", "");

                        var bll_user = endUserBusiness;
                        var newId    = await bll_user.Add(new EF.EndUser
                        {
                            MemberId         = memberId,
                            ConfirmationCode = guidString
                        });

                        // Send email
                        await smtp.SendEmail(args.Email,
                                             "Your Agenda Credentials",
                                             "Please click the link below to validate and change your password:<br/>http://" + Request.Host.Value + "/authentication/newpassword/?userid=" + newId + "&code=" + guidString);

                        txn.Commit();

                        TempData["notice"] = "Thank you. Please check your email for confirmation.";
                        return(Redirect("~/"));
                    }
                }
                catch (ArgumentException ex)
                {
                    txn.Rollback();

                    logger.Error(ex);

                    ModelState.AddModelError(string.Empty, "Oops. There's something wrong with your entry. Please contact admin.");

                    return(View(args));
                }
                catch (DbUpdateException ex)
                {
                    txn.Rollback();

                    logger.Error(ex);

                    ModelState.AddModelError(string.Empty, "Existing name or email");

                    return(View(args));
                }
                catch (Exception ex)
                {
                    txn.Rollback();

                    logger.Error(ex);

                    ModelState.AddModelError(string.Empty, ex.Message);

                    return(View(args));
                }
            }
        }