コード例 #1
0
        public async Task <IActionResult> Create(CreateUserRoleViewModel userRoleViewModel)
        {
            var user = new ApplicationUser();

            user.UserName         = userRoleViewModel.Email;
            user.Email            = userRoleViewModel.Email;
            user.isFirstLogin     = true;
            user.TwoFactorEnabled = false;
            //  user.EmailConfirmed = true;
            string         password = userRoleViewModel.Password;
            IdentityResult chkUser  = await _userManager.CreateAsync(user, password);

            if (chkUser.Succeeded)
            {
                var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);


                var confirmationLink = Url.Page("/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, token }, protocol: Request.Scheme);
                if (userRoleViewModel.IsSuperAdmin)
                {
                    var addToRole = await _userManager.AddToRoleAsync(user, UserRolesConst.SuperAdmin);
                }
                else
                {
                    var addToRole = await _userManager.AddToRoleAsync(user, UserRolesConst.ContentManager);
                }
                await _emailSender.SendEmailAsync(user.Email, user.UserName, "Confirm your email",
                                                  $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(confirmationLink)}'>clicking here</a>.");

                await _emailSender.SendEmailAsync(user.Email, user.UserName,
                                                  "Email Account", "Please Check Your Email Confirmation Credential <br><br>" + "Email: "
                                                  + user.Email + "<br><br>" + "Password: <b>" + password + "</b>" + "<br><br> <b>Please Reset Your Password</b><br> Thanks");

                _logger.LogInformation(user.Email + " Was Created" + " by Super Admin" + " and two emails sent to " + user.Email);
                _toastNotification.AddSuccessToastMessage(user.Email + " Created Successfully");

                _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Super Admin > User Managment > Add", user.Email + " Created Successfully");

                if (!userRoleViewModel.IsSuperAdmin)
                {
                    AddDefaultConfig(user.Id);
                }

                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                foreach (IdentityError error in chkUser.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            ViewBag.Roles = _roleManager.Roles.ToList();
            return(View());
        }
コード例 #2
0
        private async Task SendEmail(Order order)
        {
            StringBuilder products = new StringBuilder();

            foreach (var item in order.OrderItem)
            {
                products.Append(item.Product.Name + " - " + item.Quantity + "szt.\n");
            }

            StringBuilder message = new StringBuilder();

            message.Append("Dziękujemy za złożene zamówienia!\n\n");
            message.Append(products);
            message.Append("Całkowita wartość zamówienia: " + order.OrderValue.ToString("C"));

            await _emailSender.SendEmailAsync(order.Email, "Złożono zamówienie", message.ToString());
        }
コード例 #3
0
        public async Task <IActionResult> Index(ViewContactUs contactUs, string lang)
        {
            var contactUsModel = _dataAccessService.PageContact.FirstOrDefault();

            if (lang == null || lang.ToLower() == "ar")
            {
                ViewBag.Title = contactUsModel.ArPageName;
            }
            else
            {
                ViewBag.Title = contactUsModel.ArPageName;
            }
            var items = _dataAccessService.PageContact.Where(i => i.IsDeleted != true && i.IsActive == true).OrderBy(i => i.Id).First();

            if (ModelState.IsValid)
            {
                ContactUs contact = _contactUsRepository.Add(contactUs.MapToPageViewContact());
                if (contact != null)
                {
                    var sentMail = await _myEmailSender.SendEmailAsync(contactUsModel.EmailParticipateEmail, contactUsModel.EmailParticipateEmail, contact.Topic ?? "", contact.Message ?? "");

                    if (sentMail)
                    {
                        var msg = lang == "en" ? "Submitted Successfully" : "تم الارسال";
                        _toastNotification.AddSuccessToastMessage(msg);
                        ModelState.Clear();
                        return(View(items.MapToPageContact()));
                    }
                    var msg2 = lang == "en" ? "Failed to Submit" : "حدث خطأ فل الارسال";
                    _toastNotification.AddErrorToastMessage(msg2);
                    ModelState.Clear();
                    return(View(items.MapToPageContact()));
                }
                else
                {
                    _toastNotification.AddErrorToastMessage("See Validation Errors");
                    ModelState.Clear();
                    return(View(items.MapToPageContact()));
                }
            }
            _toastNotification.AddErrorToastMessage("See Validation Errors");
            ModelState.Clear();
            return(View(items.MapToPageContact()));
        }
コード例 #4
0
        public async Task <bool> SaveFeedback(VmSaveFeedback param)
        {
            var applicationDetail = await feedbackContext.Applications.FirstOrDefaultAsync(x => x.Enabled && x.ApplicationPublicKey == param.ApplicationKey);

            Model.Database.Feedback feedbackModel = new Model.Database.Feedback();
            feedbackModel.DeviceKey     = param.DeviceKey;
            feedbackModel.Message       = param.Message.Trim();
            feedbackModel.ApplicationId = applicationDetail.Id;
            feedbackModel.DeviceKey     = param.DeviceKey;

            await feedbackContext.Feedback.AddAsync(feedbackModel);

            var resultCount = await feedbackContext.SaveChangesAsync();

            //Send Mail?
            if (resultCount > 0 && Convert.ToBoolean(config["NewFeedbackAfterSendMail"]))
            {
                await myEmailSender.SendEmailAsync(config["NewFeedbackAfterSendMailAdress"], "Feedback", $"Feedback Application : {applicationDetail.ApplicationName} | \n Message : {param.Message}");
            }

            return(resultCount > 0);
        }
コード例 #5
0
ファイル: AccountController.cs プロジェクト: bycosmos/ShopApp
        public async Task <IActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new ApplicationUser
            {
                UserName = model.Username,
                Email    = model.Email,
                FullName = model.FullName
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                var callbackUrl = Url.Action("ConfirmEmail", "Account", new
                {
                    userId = user.Id,
                    token  = code
                });


                await _smtpemailSender.SendEmailAsync(model.Email, "Hesabınızı Onaylayınız.", $"Lütfen email hesabınızı onaylamak için linke <a href='http://localhost:52950{callbackUrl}'>tıklayınız.</a>");


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


            ModelState.AddModelError("", "Bilinmeyen hata oluştu lütfen tekrar deneyiniz.");
            return(View(model));
        }