Example #1
0
        public async Task SendWelcomeEmailAsync(RegisterEmail request)
        {
            string       FilePath = Directory.GetCurrentDirectory() + "/Smtp/Templates/RegisterTemplate.html";
            StreamReader str      = new StreamReader(FilePath);
            string       MailText = str.ReadToEnd();

            str.Close();
            MailText = MailText
                       .Replace("[username]", request.UserName)
                       .Replace("[email]", request.ToEmail)
                       .Replace("[urlKey]", _config.GetSection("HostSettings:WebSiteUrl").Value);
            var email = new MimeMessage();

            email.Sender = MailboxAddress.Parse(_mailSettings.Mail);
            email.To.Add(MailboxAddress.Parse(request.ToEmail));
            email.Subject = $"Welcome {request.FirstName}";
            var builder = new BodyBuilder();

            builder.HtmlBody = MailText;
            email.Body       = builder.ToMessageBody();
            using var smtp   = new SmtpClient();
            smtp.CheckCertificateRevocation = false;

            smtp.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.Auto);
            // smtp.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls);
            smtp.Authenticate(_mailSettings.Mail, _mailSettings.Password);
            await smtp.SendAsync(email);

            smtp.Disconnect(true);
        }
        public ActionResult SendRegisterEmail(RegisterEmail registerEmail)
        {
            if (ModelState.IsValid)
           {
                string emailSubject = WebConfigurationManager.AppSettings["RegisterEmailToSendSubject"];
                string emailTo = WebConfigurationManager.AppSettings["RegisterEmailToSendTo"];
                MailMessage mailMessage = new MailMessage();
                mailMessage.From = new MailAddress(registerEmail.EmailAddress);
                mailMessage.Subject = emailSubject;
                mailMessage.To.Add(emailTo);
                mailMessage.Body = EmailMessage(registerEmail);
                mailMessage.IsBodyHtml = true;

                if(registerEmail.Attachment != null)
                {
                   mailMessage.Attachments.Add(new Attachment(registerEmail.Attachment.InputStream, registerEmail.Attachment.FileName));
                }
                
                SmtpClient smtpClient = new SmtpClient();
                smtpClient.Send(mailMessage);

                return View("RegisterEmailThankYou", registerEmail);
             }
            return View("Register");
        }
Example #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            RegisterEmail registerEmail = db.RegisterEmails.Find(id);

            db.RegisterEmails.Remove(registerEmail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        private void RegisterBtn_Click(object sender, RoutedEventArgs e)
        {
            if (RegisterFirstName.Text.Length == 0)
            {
                RegisterFirstNameErrorMessage.Text = "Enter a first name.";
                RegisterFirstName.Focus();
            }
            else if (RegisterLastName.Text.Length == 0)
            {
                RegisterLastNameError.Text = "Enter a last name.";
                RegisterLastName.Focus();
            }
            else if (RegisterEmail.Text.Length == 0)
            {
                RegisterEmailErrorMessage.Text = "Enter an email address.";
                RegisterEmail.Focus();
            }
            else if (!Regex.IsMatch(RegisterEmail.Text, @"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"))
            {
                RegisterEmailErrorMessage.Text = "Enter a valid email address.";
                RegisterEmail.Select(0, RegisterEmail.Text.Length);
                RegisterEmail.Focus();
            }
            else if (RegisterPwBoxPassword.Password.Length == 0)
            {
                RegisterPwErrorMessage.Text = "Enter a email address";
                RegisterPwBoxPassword.Focus();
            }
            else
            {
                RegisterLastNameError.Text         = "";
                RegisterFirstNameErrorMessage.Text = "";
                RegisterPwErrorMessage.Text        = "";
                RegisterEmailErrorMessage.Text     = "";

                var first_Name = RegisterFirstName.Text;
                var last_Name  = RegisterLastName.Text;
                var job_Title  = "";
                var email      = RegisterEmail.Text;
                var password   = RegisterPwBoxPassword.Password;
                var isAdmin    = false;

                MongoClient client = new MongoClient("mongodb://*****:*****@ds217560.mlab.com:17560/c-proef_syntra");

                Employee employee = new Employee(first_Name, last_Name, job_Title, email, password, isAdmin);

                var db         = client.GetDatabase("c-proef_syntra");
                var collection = db.GetCollection <Employee>("employees");

                collection.InsertOneAsync(employee);

                LoginWindow login = new LoginWindow();
                login.Show();
                Close();
            }
        }
Example #5
0
 public ActionResult Edit([Bind(Include = "Id,Email")] RegisterEmail registerEmail)
 {
     if (ModelState.IsValid)
     {
         db.Entry(registerEmail).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(registerEmail));
 }
Example #6
0
        public void SendRegisterEmail(User user)
        {
            var email = new RegisterEmail()
            {
                Email     = user.Email,
                FirstName = user.FirstName
            };

            //email.Send();
            Send(email);
        }
 public Register()
 {
     InitializeComponent();
     RegisterViewModel = App.Current.Services.GetService <RegisterViewModel>();
     DataContext       = RegisterViewModel;
     ResourceLoader    = ResourceLoader.GetForCurrentView();
     RegisterEmail.AddHandler(TappedEvent, new TappedEventHandler(ResetErrors), true);
     RegisterPassword.AddHandler(TappedEvent, new TappedEventHandler(ResetErrors), true);
     RegisterFirstname.AddHandler(TappedEvent, new TappedEventHandler(ResetErrors), true);
     RegisterLastname.AddHandler(TappedEvent, new TappedEventHandler(ResetErrors), true);
 }
Example #8
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            try
            {
                userForRegisterDto.Username = userForRegisterDto.Username.ToLower();

                var userFound = await _repo.UserExists(userForRegisterDto);

                if (userFound != null)
                {
                    return(BadRequest("already_exists"));
                }

                var createdUser = await _repo.Register(userForRegisterDto);

                var userToReturn = _mapper.Map <UserForDetailedDto>(createdUser);

                var rolsAssigned = await _repo.AssignRol(createdUser.Id, userForRegisterDto.Rol);

                var rolsAssignedToList = _mapper.Map <List <RolsToListDto> >(rolsAssigned);

                var tokenDescriptor = _repo.CreateToken(createdUser, rolsAssigned);
                var tokenHandler    = new JwtSecurityTokenHandler();
                var token           = tokenHandler.CreateToken(tokenDescriptor);

                try
                {
                    RegisterEmail request = new RegisterEmail();
                    request.ToEmail   = userToReturn.Email;
                    request.UserName  = userToReturn.Username;
                    request.FirstName = userToReturn.FirstName;

                    await _mailService.SendWelcomeEmailAsync(request);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.Message);
                    return(CreatedAtRoute("GetUser",
                                          new { controller = "Users", id = createdUser.Id, token = tokenHandler.WriteToken(token) },
                                          new { userToReturn, token = tokenHandler.WriteToken(token), rolsAssignedToList, message = "email_failed" }));
                }
                return(CreatedAtRoute("GetUser",
                                      new { controller = "Users", id = createdUser.Id, token = tokenHandler.WriteToken(token) },
                                      new { userToReturn, token = tokenHandler.WriteToken(token), rolsAssignedToList }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);

                return(BadRequest("registration_failed"));
            }
        }
Example #9
0
        // GET: RegisterEmails/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RegisterEmail registerEmail = db.RegisterEmails.Find(id);

            if (registerEmail == null)
            {
                return(HttpNotFound());
            }
            return(View(registerEmail));
        }
        private void ResetErrors(object sender, TappedRoutedEventArgs e)
        {
            RegisterEmail.Header = ResourceLoader.GetString("RegisterEmail/Header");
            RegisterEmail.ClearValue(BorderBrushProperty);

            RegisterPassword.Header = ResourceLoader.GetString("RegisterPassword/Header");
            RegisterPassword.ClearValue(BorderBrushProperty);

            RegisterFirstname.Header = ResourceLoader.GetString("RegisterFirstname/Header");
            RegisterFirstname.ClearValue(BorderBrushProperty);

            RegisterLastname.Header = ResourceLoader.GetString("RegisterLastname/Header");
            RegisterLastname.ClearValue(BorderBrushProperty);
        }
Example #11
0
        private async Task <string> SendEmailConfirmationTokenAsync(string userID, string subject)
        {
            string code = await UserManager.GenerateEmailConfirmationTokenAsync(userID);

            var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = userID, code = code }, protocol: Request.Url.Scheme);

            var    templatePath  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Views/EmailTemplates", "RegisterEmail.cshtml");
            var    template      = System.IO.File.ReadAllText(templatePath);
            var    emailModel    = new RegisterEmail(callbackUrl);
            var    guid          = Guid.NewGuid().ToString();
            string emailHtmlBody = Engine.Razor.RunCompile(template, guid, null, emailModel);

            await UserManager.SendEmailAsync(userID, subject, emailHtmlBody);

            return(callbackUrl);
        }
Example #12
0
        public ActionResult Register([Bind(Include = "Id,Email")] RegisterEmail registerEmail)
        {
            if (ModelState.IsValid)
            {
                db.RegisterEmails.Add(registerEmail);
                try
                {
                    db.SaveChanges();
                }
                catch
                {
                    AddErrors("Email is already registered");
                    return(View(registerEmail));
                }
                return(RedirectToAction("Index"));
            }

            return(View(registerEmail));
        }
Example #13
0
        /// <summary>
        /// Register with MDi by email
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public async Task <string> RequestRegisterEmailAsync(string email)
        {
            string result = string.Empty;

            try
            {
                RegisterEmail BE = new RegisterEmail()
                {
                    Email = email
                };
                var json    = JsonConvert.SerializeObject(BE);
                var content = new StringContent(json, Encoding.UTF8, "application/json");

                HttpResponseMessage response = null;
                response = await client.PostAsync(Constants.BaseUrl + Constants.urlRegsterEmail, content);

                if (response.IsSuccessStatusCode)
                {
                    var _result = await response.Content.ReadAsStringAsync();

                    var devicetoken = JsonConvert.DeserializeObject <string>(_result);
                    return(devicetoken);
                }
                else
                {
                    if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                    {
                        result = Constants.S_Exists;
                    }
                    else
                    {
                        result = Constants.S_NotSuccess;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
Example #14
0
        public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindByNameAsync(model.Email);

                //if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
                if (user == null)
                {
                    //ModelState.AddModelError("Email", "No account with this email exists on ZenZoy!");

                    // Don't reveal that the user does not exist or is not confirmed
                    return(View("ForgotPasswordConfirmation"));
                }

                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                // Send an email with this link
                string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);

                var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                //await UserManager.SendEmailAsync(user.Id, , "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>");

                var    templatePath  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Views/EmailTemplates", "ResetPassword.cshtml");
                var    template      = System.IO.File.ReadAllText(templatePath);
                var    emailModel    = new RegisterEmail(callbackUrl);
                var    guid          = Guid.NewGuid().ToString();
                string emailHtmlBody = Engine.Razor.RunCompile(template, guid, null, emailModel);

                await UserManager.SendEmailAsync(user.Id, "Reset Password", emailHtmlBody);

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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task <IHttpActionResult> Post([FromBody] Customer md)
        {
            md.customer_id = GetNewId(CodeTable.Customer);

            md.i_InsertDateTime = DateTime.Now;
            md.i_UpdateDateTime = DateTime.Now;
            md.i_Lang           = "zh-TW";
            md.c_pw             = HttpUtility.UrlEncode(EncryptString.desEncryptBase64(md.mobile));//預設密碼改為手機
            var r = new ResultInfo <Customer>();

            if (!ModelState.IsValid)
            {
                r.message = ModelStateErrorPack();
                r.result  = false;
                return(Ok(r));
            }

            try
            {
                #region working
                db0 = getDB0();

                bool check_email = db0.Customer.Any(x => x.email == md.email);
                if (check_email)
                {
                    r.result  = false;
                    r.message = Resources.Res.Log_Err_EmailExist;
                    return(Ok(r));
                }

                db0.Customer.Add(md);
                await db0.SaveChangesAsync();


                RegisterEmail emd = new RegisterEmail()
                {
                    mail = md.email,
                    name = md.c_name
                };
                ResultInfo sendmail = (new EmailController()).sendRegisterMail(emd);

                r.result = true;
                r.id     = md.customer_id;
                return(Ok(r));

                #endregion
            }
            catch (DbEntityValidationException ex) //欄位驗證錯誤
            {
                r.message = getDbEntityValidationException(ex);
                r.result  = false;
                return(Ok(r));
            }
            catch (Exception ex)
            {
                r.result  = false;
                r.message = ex.Message + "\r\n" + getErrorMessage(ex);
                return(Ok(r));
            }
            finally
            {
                db0.Dispose();
            }
        }
        private string EmailMessage(RegisterEmail registerEmail)
        {
            StringBuilder sbMailMessage = new StringBuilder();
            sbMailMessage.AppendLine("<h2>EMI Europe Registration Form</h2>");
            sbMailMessage.AppendLine("Dear Sir|Madam,<br><br> " + registerEmail.Title + " " + registerEmail.FirstName + " " + registerEmail.LastName + " has an enquiry.<br><br>");
            sbMailMessage.AppendLine("<b>Company</b> :&nbsp; &nbsp; "+ registerEmail.Company +".<br>");
            sbMailMessage.AppendLine("<b>Address</b> :&nbsp; &nbsp;"+ registerEmail.Address1 +".<br>");            
            sbMailMessage.AppendLine("<b>Address</b> :&nbsp; &nbsp;"+ registerEmail.Address2 +".<br>");
            sbMailMessage.AppendLine("<b>City</b> :&nbsp; &nbsp;"+ registerEmail.TownCity +".<br>");
            sbMailMessage.AppendLine("<b>County</b> :&nbsp; &nbsp;" + registerEmail.County +".<br>");
            sbMailMessage.AppendLine("<b>State</b> :&nbsp; &nbsp;"+ registerEmail.State +".<br>");
		    sbMailMessage.AppendLine("<b>Post Code</b> :&nbsp; &nbsp;"+ registerEmail.PostCode +".<br>");
            sbMailMessage.AppendLine("<b>Country</b> :&nbsp; &nbsp;" + registerEmail.Country +".<br>");
		    sbMailMessage.AppendLine("<b>Telephone Number</b> :&nbsp; &nbsp;"+ registerEmail.Telephone +".<br>");
		    sbMailMessage.AppendLine("<b>Mobile Number</b> :&nbsp; &nbsp;"+ registerEmail.Mobile +".<br>");
            sbMailMessage.AppendLine("<b>Email Address</b> : " + registerEmail.EmailAddress +".<br>");
            sbMailMessage.AppendLine("<b>Desired Location</b> : " + registerEmail.DesiredLocation +".<br>");
            sbMailMessage.AppendLine("<b>Desired Position</b> : " + registerEmail.DesiredPosition + ".<br>");
            sbMailMessage.AppendLine("<b>Profession</b> : " + registerEmail.Profession + ".<br>");
            sbMailMessage.AppendLine("<b>Enquiry</b>: &nbsp;"+ registerEmail.Comments +".<br><br>"+ registerEmail.FirstName +" "+ registerEmail.LastName +"</p>");
            return sbMailMessage.ToString();
        }