コード例 #1
0
ファイル: EmailSender.cs プロジェクト: guillaumejay/MyMeetup
        public Task SendEmailAsync(string email, string subject, string htmlMessage)
        {
            SendEmail     se = new SendEmail();
            MyMeetupEmail me = new MyMeetupEmail(subject, htmlMessage, email, _configuration["emailContact"]);

            return(se.SendSmtpEmailAsync(EmailSender.GetSettings(_configuration), me));
        }
コード例 #2
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()));
        }
コード例 #3
0
        public IActionResult PostRegister(MeetupRegisterModel model, [FromServices] IConfiguration configuration)
        {
            if (ModelState.IsValid)
            {
                var          accomodations = AccomodationModel.DefaultAccomodationModels;
                Registration r             = new Registration(CurrentUser.Id, model.MeetupId)
                {
                    AccomodationId     = model.AccomodationId,
                    Notes              = model.Notes,
                    NumberOfAdults     = model.AdultNumber,
                    NumberOfChildren   = model.ChildrenNumber,
                    RegistrationStatus = ERegistrationStatus.Registered
                };
                Domain.AddOrUpdateRegistration(r);
                string body = "Bonjour :-) <br/><br/>";
                body += "Voici une réservation à partir du site de Rencontres Non-Scos :<br/><br/>";
                body += $"Prénom : {CurrentUser.FirstName}<br/>  Nom : {CurrentUser.LastName} <br/>Email : {CurrentUser.Email}<br/>";
                body +=
                    $"Logement : {accomodations.Single(x => x.Id == r.AccomodationId).Id}<br/>Adultes : {r.NumberOfAdults} <br/>Enfants : {r.NumberOfChildren}<br/>";
                if (!string.IsNullOrWhiteSpace(r.Notes))
                {
                    body += "Notes :<hr>";
                    body += r.Notes;
                    body += "<hr>";
                }

                body += "<br/>Cordialement";
                SendEmail     se    = new SendEmail();
                Meetup        m     = Domain.GetMeetup(model.MeetupId, true);
                MyMeetupEmail email = new MyMeetupEmail($"{CurrentUser.FirstName} {CurrentUser.LastName} s'inscrit à " + m.Title, body, m.MeetupPlaceAdminEmail ?? configuration["emailContact"],
                                                        configuration["emailContact"]);
                if (!string.IsNullOrEmpty(m.MeetupPlaceAdminEmail))
                {
                    email.BCC = configuration["emailContact"];
                }

                if (Debugger.IsAttached)
                {
                    email.To      = configuration["emailContact"];
                    email.Subject = "TEST " + email.Subject;
                }

                email.ReplyTo = CurrentUser.Email;
                email.CC      = CurrentUser.Email;
                SendEmail s = new SendEmail();
                se.SendSmtpEmail(EmailSender.GetSettings(configuration), email);
                return(Redirect("/me"));
            }
            MeetupRegisterModel rm = CreateModelForRegistration(model);

            Tools.TransferModalStateError(rm.Errors, ModelState);

            return(View("Register", rm));
        }