示例#1
0
        public async Task <IActionResult> OnPostChangeEmailAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            if (!ModelState.IsValid)
            {
                await LoadAsync(user);

                return(Page());
            }

            var email = await _userManager.GetEmailAsync(user);

            if (Input.NewEmail != email)
            {
                var userId = await _userManager.GetUserIdAsync(user);

                var code = await _userManager.GenerateChangeEmailTokenAsync(user, Input.NewEmail);

                var callbackUrl = Url.Page(
                    "/Account/ConfirmEmailChange",
                    pageHandler: null,
                    values: new { userId = userId, email = Input.NewEmail, code = code },
                    protocol: Request.Scheme);
                MailRequestViewModel mailRequest = new MailRequestViewModel
                {
                    ToEmail = Input.NewEmail,
                    Subject = "[Mail Automatico]Confirme su cuenta",
                    Body    = $"Por favor confirme su cuenta <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>Haciendo click aqui</a>. <br /> BitCoin Santa Fe"
                };
                await _emailSender.SendEmailAsync(mailRequest);

                StatusMessage = "Confirmation link to change email sent. Please check your email.";
                return(RedirectToPage());
            }

            StatusMessage = "Your email is unchanged.";
            return(RedirectToPage());
        }
示例#2
0
        public async Task <IActionResult> OnPostSendVerificationEmailAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            if (!ModelState.IsValid)
            {
                await LoadAsync(user);

                return(Page());
            }

            var userId = await _userManager.GetUserIdAsync(user);

            var email = await _userManager.GetEmailAsync(user);

            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
            var callbackUrl = Url.Page(
                "/Account/ConfirmEmail",
                pageHandler: null,
                values: new { area = "Identity", userId = userId, code = code },
                protocol: Request.Scheme);
            MailRequestViewModel mailRequest = new MailRequestViewModel
            {
                ToEmail = Input.NewEmail,
                Subject = "[Mail Automatico]Confirme su cuenta",
                Body    = $"Por favor confirme su cuenta <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>Haciendo click aqui</a>. <br /> BitCoin Santa Fe"
            };
            await _emailSender.SendEmailAsync(mailRequest);

            StatusMessage = "Verification email sent. Please check your email.";
            return(RedirectToPage());
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByEmailAsync(Input.Email);

                if (user == null)
                {
                    // Don't reveal that the user does not exist or is not confirmed
                    return(RedirectToPage("./ForgotPasswordConfirmation"));
                }

                // For more information on how to enable account confirmation and password reset please
                // visit https://go.microsoft.com/fwlink/?LinkID=532713
                var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                var callbackUrl = Url.Page(
                    "/Account/ResetPassword",
                    pageHandler: null,
                    values: new { area = "Identity", code },
                    protocol: Request.Scheme);

                MailRequestViewModel mail = new MailRequestViewModel
                {
                    ToEmail = Input.Email,
                    Subject = "[Mail Automatico] Reinicie su contraseña",
                    Body    = $"Por favor reinicie su contraseña <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>haciendo click aqui</a>. <br /> Atte BitCoin Santa Fe"
                };
                await _emailSender.SendEmailAsync(mail);

                return(RedirectToPage("./ForgotPasswordConfirmation"));
            }

            return(Page());
        }
示例#4
0
        public async Task SendEmailAsync(MailRequestViewModel mailRequest)
        {
            var email = new MimeMessage
            {
                Sender = MailboxAddress.Parse(_mailSettings.Mail)
            };

            email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail));
            email.Subject = mailRequest.Subject;
            var builder = new BodyBuilder();

            if (mailRequest.Attachments != null)
            {
                byte[] fileBytes;
                foreach (var file in mailRequest.Attachments)
                {
                    if (file.Length > 0)
                    {
                        using (var ms = new MemoryStream())
                        {
                            file.CopyTo(ms);
                            fileBytes = ms.ToArray();
                        }
                        builder.Attachments.Add(file.FileName, fileBytes, ContentType.Parse(file.ContentType));
                    }
                }
            }
            builder.HtmlBody = mailRequest.Body;
            email.Body       = builder.ToMessageBody();
            using var smtp   = new SmtpClient();
            smtp.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls);
            smtp.Authenticate(_mailSettings.Mail, _mailSettings.Password);
            await smtp.SendAsync(email);

            smtp.Disconnect(true);
        }
        public async Task <IActionResult> ExportReport()
        {
            var clients = await _clientServices.GetAllClients();

            for (int c = 0; c < clients.Count; c++)
            {
                string emailHead = "Hola "
                                   + clients[c].Name
                                   + ","
                                   + br
                                   + "Este es un resumen de tu cuenta en Bitcoin Santa Fe al día "
                                   + DateTime.Today.ToShortDateString()
                                   + br;
                string emailTxt = emailHead;
                foreach (var f in clients[c].Futures)
                {
                    emailTxt = emailHead
                               + DateTime.Today.ToShortDateString()
                               + br
                               + "Cuenta: "
                               + f.ContractNumber
                               + br
                               + "Capital inicial: "
                               + String.Format("{0:.00}", f.Capital) + usdTxt
                               + br;
                    string signature = "Fecha de proximo retiro: " + f.FinishDate.ToShortDateString() + br;

                    if (f.ContractNumber == (int)SpecialClients.Uno)
                    {
                        emailTxt = emailTxt + usdTConst + f.FinalResult + br
                                   + "Recuerde que el acumulado se ve afectado por los contratos de renta fija"
                                   + signature;
                    }
                    else
                    {
                        if (f.FixRent)
                        {
                            emailTxt = emailTxt + MensRent + f.FixRentPercentage + "%" + br
                                       + signature;
                        }
                        else
                        {
                            decimal percentage = (((f.FinalResult - f.Capital) / f.Capital) * 100);
                            emailTxt = emailTxt + MensRent + String.Format("{0:.00}", percentage) + "%" + br
                                       + usdTConst + String.Format("{0:.00}", f.FinalResult) + usdTxt + br
                                       + signature;
                        }
                    }
                }

                emailTxt += finishMessage;
                var MailRequest = new MailRequestViewModel()
                {
                    ToEmail = clients[c].Email,
                    Subject = emailTitle,
                    Body    = emailTxt
                };
                await _service.SendEmailAsync(MailRequest);
            }

            return(Ok());
        }