示例#1
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            model.Roles           = _roleManager.GetRolesSelectList();
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName         = model.Username,
                    FirstName        = model.FirstName,
                    LastName         = model.LastName,
                    RegisterDate     = DateTime.Now,
                    IsActive         = false,
                    IsBanned         = false,
                    Email            = model.Email,
                    ProfileImageName = model.ImageName
                };
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    if (model.ImageName != null)
                    {
                        _logger.LogProfileImageHistory(user.Id, model.ImageName);
                    }
                    await _userManager.AddToRoleAsync(user, model.Role);

                    var message = new Message {
                        //Quill.js text data
                        Text = "{\"ops\":[{\"attributes\":{\"font\":\"default\",\"size\":\"15px\",\"bold\":true},\"insert\":\"" +
                               user.FirstName + " " + user.LastName + " \"}," +
                               "{\"attributes\":{\"font\":\"default\",\"size\":\"15px\"},\"insert\":\" با نام کاربری \"}," +
                               "{\"attributes\":{\"font\":\"default\",\"size\":\"15px\",\"bold\":true},\"insert\":\" " + user.UserName + " \"}," +
                               "{\"attributes\":{\"font\":\"default\",\"size\":\"15px\"},\"insert\":\"حساب کاربری جدیدی ایجاد کرده است.\"}," +
                               "{\"attributes\":{\"align\":\"right\",\"direction\":\"rtl\"},\"insert\":\"\\n\"}," +
                               "{\"attributes\":{\"font\":\"default\",\"size\":\"15px\"},\"insert\":\"لطفا هر چه سریعتر نسبت به فعالسازی آن اقدام فرمایید.\"}," +
                               "{\"attributes\":{\"align\":\"right\",\"direction\":\"rtl\"},\"insert\":\"\\n\"}]}",
                        Type     = MessageType.System_Notification,
                        Title    = "کاربر جدید",
                        Time     = DateTime.Now,
                        SenderId = user.Id
                    };
                    _messageService.AddSystemNotificationForAdmin(message);
                    return(View("Inactive"));
                }
                foreach (var error in result.Errors)
                {
                    switch (error.Code)
                    {
                    case "DuplicateUserName":
                        ModelState.AddModelError("", "این نام کاربری قبلا ثبت شده است.");
                        break;

                    case "DuplicateEmail":
                        ModelState.AddModelError("", "این ایمیل قبلا در سیستم ثبت شده است.");
                        break;

                    case "PasswordRequiresUpper":
                        ModelState.AddModelError("", "کلمه عبور باید شامل حروف بزرگ انگلیسی باشد.");
                        break;

                    case "PasswordRequiresDigit":
                        ModelState.AddModelError("", "کلمه عبور باید شامل اعداد باشد.");
                        break;

                    case "PasswordRequiresLower":
                        ModelState.AddModelError("", "کلمه عبور باید شامل حروف کوچک انگلیسی باشد.");
                        break;

                    default:
                        ModelState.AddModelError("", "مشکل در ثبت کاربر");
                        break;
                    }
                }
            }
            return(View(model));
        }