Esempio n. 1
0
        public ActionResult Index(SigninMeetupModel model, [FromServices] SignInManager <MyMeetupUser> signInManager, [FromServices] IConfiguration configuration)
        {
            if (!ModelState.IsValid)
            {
                return(View("Index", CreateLandingPageModel(model)));
            }

            MyMeetupUser user = UserManager.FindByEmailAsync(model.Email.Trim()).Result;

            if (user != null)
            {
                return(View("MyAccount", GetMyAccountModel(configuration, user)));
            }
            var result = Domain.AddRegularUser(model, null, UserManager);

            if (result.UserOk)
            {
                user = UserManager.FindByEmailAsync(model.Email).Result;
                SendEmail     se    = new SendEmail();
                MyMeetupEmail email = new MyMeetupEmail($"Nouvel Adhérent {model.FirstName} {model.Name} ",
                                                        configuration["emailContact"], configuration["emailContact"])
                {
                    Body = $"Prénom :{model.FirstName} <br/>Nom :{model.Name} - <br/>Email : {model.Email} <br/>Tel: {model.PhoneNumber}"
                };
                //TODO Ugly, should be templated
                if (!string.IsNullOrEmpty(result.RegistrationCode))
                {
                    var meetup = Domain.GetMeetup(model.MeetupId.Value, true);
                    email.Body += Environment.NewLine +
                                  $"Inscrit(e) à {meetup.Title} et son code d'enregistrement est {result.RegistrationCode}";
                }
                email.ReplyTo = model.Email;
                try
                {
                    if (!Debugger.IsAttached)
                    {
                        se.SendSmtpEmail(EmailSender.GetSettings(configuration), email);
                    }
                }
                catch (Exception e)
                {
                    _telemetryClient.TrackException(e);
                }

                signInManager.SignInAsync(user, isPersistent: true).Wait();
                //   signInManager.SignInAsync(user, isPersistent: true);
                if (model.MeetupId.HasValue)
                {
                    return(RedirectToAction("Register", new { meetupId = model.MeetupId.Value }));
                }

                return(RedirectToAction("MyAccount"));
                //     return View("MyAccount", GetMyAccountModel(configuration, user));
            }

            return(View("Index", CreateLandingPageModel()));
        }
Esempio n. 2
0
 public static MyMeetupUser From(SigninMeetupModel model)
 {
     return(new MyMeetupUser
     {
         FirstName = model.FirstName.Trim(),
         LastName = model.Name.Trim(),
         Email = model.Email.Trim(),
         PhoneNumber = model.PhoneNumber?.Trim(),
         UserName = model.Email.Trim(),
         IsOkToGetMeetupsInfo = model.IsOkToGetMeetupsInfo
     });
 }
Esempio n. 3
0
        public ResultAddRegularUser AddRegularUser(SigninMeetupModel model, int?meetupIdToRegister, UserManager <MyMeetupUser> userManager)
        {
            ResultAddRegularUser rau     = new ResultAddRegularUser();
            MyMeetupUser         newUser = MyMeetupUser.From(model);

            rau.UserId = MyMeetupUser.CreateUser(newUser, MyMeetupRole.Participant,
                                                 newUser.Initials +
                                                 DateTime.Now.ToString("HHmmss"), userManager);
            if (rau.UserOk && meetupIdToRegister.HasValue)
            {
                rau.RegistrationCode = Register(newUser, meetupIdToRegister.Value).RegistrationCode;
            }

            return(rau);
        }
Esempio n. 4
0
        private IndexModel CreateLandingPageModel(SigninMeetupModel signinMeetupModel = null)
        {
            IndexModel model = new IndexModel();

            if (CurrentMeetup != null)
            {
                model.Meetup            = CurrentMeetup;
                model.Charter           = Domain.GetCharterFor(CurrentMeetup.Id, false, true, true).ToList();
                model.SigninMeetupModel = signinMeetupModel;
            }
            else
            {
                model.Meetup = new Meetup
                {
                    Title             = Parameters.Value.HomeTitle,
                    PublicDescription = Parameters.Value.HomeContent,
                    TitleImage        = Parameters.Value.HomeImage
                };
                model.Charter           = Domain.GetCharterFor(null, false, true, true).ToList();
                model.SigninMeetupModel = signinMeetupModel;
            }

            return(model);
        }