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())); }
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 }); }
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); }
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); }