public async Task <IActionResult> Signup([Bind("MobileNumber,Name,Password,ConfirmPassword,ImageFile")] UserSignupViewModel user) { if (User.Identity.IsAuthenticated) { return(Redirect("/")); } if (ModelState.IsValid) { if (user.Password != user.ConfirmPassword) { ViewBag.Message = "کلمه عبور و تکرار آن یکسان نیست"; return(View("ShowMessage")); } RequestUserSignupDto request = new RequestUserSignupDto() { ImageFile = user.ImageFile, MobileNumber = user.MobileNumber, Name = user.Name, Password = user.Password }; var result = await _usersFacad.UserSignupService.Execute(request); switch (result.Status) { case ServiceStatus.Success: await HttpContext.LoginToSiteAsync(result.Data.UserId, user.MobileNumber, user.Name, UserInRole.User); ViewBag.Message = "حساب شما با موفقیت ایجاد شد"; break; case ServiceStatus.SystemError: ViewBag.Message = "مشکلی در سیستم پیش آمد"; break; case ServiceStatus.NotFound: return(NotFound()); case ServiceStatus.SaveFileError: ViewBag.Message = "مشکلی در ذخیره فایل پیش آمد"; break; case ServiceStatus.Error: ViewBag.Message = result.Message; break; } return(View("ShowMessage")); } return(View(user)); }
public async Task <ResultDto <ResultUserSignup> > Execute(RequestUserSignupDto request) { return(await Task.Run(async() => { if (_context.Users.Any(u => u.MobileNumber == request.MobileNumber)) { return new ResultDto <ResultUserSignup>() { Status = ServiceStatus.Error, Message = "این شماره قبلا ثبت شده است!!" }; } try { User newUser = new User() { MobileNumber = request.MobileNumber, Name = request.Name, Password = await request.Password.ToHashedAsync(), InsertTime = DateTime.Now, LastOnline = DateTime.Now, UserInRole = UserInRole.User, HashKey = await Guid.NewGuid().ToString().ToHashedAsync() }; await _context.Users.AddAsync(newUser); #region --Save Image-- if (request.ImageFile != null) { var upResult = await request.ImageFile.UploadFileAsync("Images/UserImages/", _environment); if (upResult.Status) { var newImage = new UserImage() { ImageName = upResult.FileNameAddress, User = newUser, UserId = newUser.Id, InsertTime = DateTime.Now, }; await _context.UserImages.AddAsync(newImage); } else { return new ResultDto <ResultUserSignup>() { Status = ServiceStatus.SaveFileError, }; } } #endregion await _context.SaveChangesAsync(); return new ResultDto <ResultUserSignup>() { Data = new ResultUserSignup() { UserId = newUser.Id, }, Status = ServiceStatus.Success }; } catch (Exception) { return new ResultDto <ResultUserSignup>() { Status = ServiceStatus.SystemError }; } })); }