public User LoginUser(LoginViewModel login) { string hashPassword = PasswordHelper.EncodePasswordMd5(login.Password); string email = FixedText.FixedEmail(login.Email); return(_context.Users.SingleOrDefault(u => u.Email == email && u.Password == hashPassword)); }
public async Task <User> LoginUser(string email, string password) { string Mail = FixedText.FixedEmail(email); string Pass = PasswordHelper.EncodePasswordMd5(password); User user = await _context.Users.Where(u => u.Email == Mail && u.Password == Pass).FirstOrDefaultAsync(); return(user); }
// post // api/developer public async Task <ActionResult <bool> > PostStaff(DeveloperViwModel model) { // چک کردن یونیک بودن یوزر نام if (await _personService.IsExistUserName(model.UserName)) { // ارسال بد ریکوست در صورت تکراری بودن نام کاربری return(BadRequest("نام کاربری تکراری میباشد")); } // چک کردن یونیک بودن شماره ملی if (await _personService.IsExistNationalId(model.PersonNationalId)) { // ارسال بد ریکوست در صورت تکراری بودن شماره ملی return(BadRequest("شماره ملی تکراری میباشد")); } // چک کردن تکراری نبودن ایمیل if (await _personService.IsExistEmail(model.Email)) { // ارسال بد ریکوست در صورت تکراری بودن ایمیل return(BadRequest("ایمیل وارد شده قبلا ثبت شده است")); } //ایجاد شی پرسن Person person = new Person() { PersonNational_ID = model.PersonNationalId, FirstName = model.FirstName, LastName = model.LastName, Email = FixedText.FixedEmail(model.Email), FatherName = model.FatherName, Gender = model.Gender, UserName = model.UserName, ShenasNum = model.ShenasNum, ShenasSerial = model.ShenasSerial, NationalCardSerial = model.NationalCardSerial, BirthDate = new DateTime(model.BirthDate, 1, 1), CreateTime = DateTime.Now, LastEditTime = DateTime.Now, IsActive = true, NeedChangePassword = true, Password = PasswordHasher.ComputeSha256Hash($"{model.UserName}seemsys{model.Password}") }; // ایجاد شی دولوپر Developer developer = new Developer() { MobileNumber = model.MobileNumber, CreateTime = DateTime.Now, LastEditTime = DateTime.Now, PersonNational_ID = await _personService.AddPerson(person), }; // ارسال شی دولوپر به سروریس و متد دولوپر return(await _developerService.AddDeveloper(developer)); }
public async Task <IActionResult> Register(AccountViewModel register) { if (!ModelState.IsValid) { return(View(register)); } if (await _UserService.IsExistMobileAsync(register.Mobile)) { ModelState.TryAddModelError("Mobile", "موبایل وارد شده تکراری می باشد"); return(View(register)); } if (_UserService.IsExistEmail(FixedText.FixedEmail(register.Email))) { ModelState.TryAddModelError("Email", "ایمیل وارد شده تکراری می باشد"); return(View(register)); } User user = new User() { FirstName = register.FirstName, LastName = register.LastName, Mobile = register.Mobile, Email = FixedText.FixedEmail(register.Email), IdDelete = false, AcrivationCode = GeneratorName.GenerateGUID(), IsActive = false, Password = PasswordHelper.EncodePasswordMd5(register.Password), UserAvatar = "default.png", CreateDate = DateTime.Now }; await _UserService.AddUserAsync(user); #region Sending Activation Email string body = _renderViewService.RenderToStringAsync("_ActiveEmail", user); SendEmail.Send(user.Email, "فعال سازی حساب کاربری در بافر شاپ", body); #endregion return(View("SuccessRegister", model: user)); }
public IActionResult ForgotPassword(ForgotPasswordViewModel forgotPassword) { if (!ModelState.IsValid) { return(View(forgotPassword)); } var fixEmail = FixedText.FixedEmail(forgotPassword.Email); User user = _userService.GetUserByEmail(fixEmail); if (user == null) { ModelState.AddModelError("Email", "کاربری یافت نشد"); return(View(forgotPassword)); } string bodyEmail = _viewRender.RenderToStringAsync("_ForgotPassword", user); SendEmail.Sendemail(user.Email, "بازیابی کلمه عبور", bodyEmail); ViewBag.IsSuccess = true; return(View()); }
public IActionResult Register(RegisterViewModel register) { if (!ModelState.IsValid) { return(View(register)); } if (_userService.IsExistUserName(register.UserName)) { ModelState.AddModelError("UserName", "نام کاربری معتبر نمی باشد"); return(View(register)); } if (_userService.IsExistEmail(FixedText.FixedEmail(register.Email))) { ModelState.AddModelError("Email", "ایمیل معتبر نمی باشد"); return(View(register)); } User user = new User() { ActiveCode = NameGenerator.GenerateUniqCode(), Email = FixedText.FixedEmail(register.Email), IsActive = false, Password = PasswordHelper.EncodePasswordMd5(register.Password), RegisterDate = DateTime.Now, UserAvatar = "Default.jpg", UserName = register.UserName }; _userService.AddUser(user); #region Send Activation Email string body = _viewRender.RenderToStringAsync("_ActiveEmail", user); SendEmail.Sendemail(user.Email, "فعال سازی", body); #endregion return(View("SuccessRegister", user)); }
public async Task <IActionResult> ForgotPassword(ForgotPassViewModel forgotModel) { if (!ModelState.IsValid) { return(View(forgotModel)); } var user = new User(); string userEmail = FixedText.FixedEmail(forgotModel.Email); if ((user = await _UserService.ForgotPassword(userEmail)) == null) { ModelState.AddModelError("Email", "ایمیل وارد شده یافت نشد"); return(View(forgotModel)); } else { string bodyEmail = _renderViewService.RenderToStringAsync("_ForgotPassword", user); SendEmail.Send(userEmail, "ایمیل تایید فراموشی رمز عبور", bodyEmail); ViewBag.IsSuccess = true; return(View()); // return View("ChangePassEmailConfirmation", model: user); } }
//post // api/staff public async Task <ActionResult <bool> > PostStaff(RegisterStaffViewModel model) { // چک کردن معتبر بودن مدل if (!ModelState.IsValid) { // ارسال خطا return(BadRequest("لطفاً فیلد های مشخص شده را تکمیل نمایید")); } // چک کردن یونیک بودن نام کاربری if (await _personService.IsExistUserName(model.UserName)) { // ارسال خطای تکراری بودن نام کاربری در صورت یونیک نبودن return(BadRequest("نام کاربری تکراری میباشد")); } // چک کردن یونیک بودن شماره ملی if (await _personService.IsExistNationalId(model.PersonNationalId)) { // ارسال خطا در صورت تکراری بودن شماره ملی return(BadRequest("شماره ملی تکراری میباشد")); } // چک کردن یونیک بودن ایمیل if (await _personService.IsExistEmail(model.Email)) { // ارسال خطا در صورت یونیک نبودن ایمیل کاربر return(BadRequest("ایمیل وارد شده قبلا ثبت شده است")); } // ایجاد شی از پرسن Person person = new Person() { PersonNational_ID = model.PersonNationalId, FirstName = model.FirstName, LastName = model.LastName, Email = FixedText.FixedEmail(model.Email), FatherName = model.FatherName, Gender = model.Gender, UserName = model.UserName, ShenasNum = model.ShenasNum, ShenasSerial = model.ShenasSerial, NationalCardSerial = model.NationalCardSerial, BirthDate = new DateTime(model.BirthDate, 1, 1), CreateTime = DateTime.Now, LastEditTime = DateTime.Now, IsActive = true, NeedChangePassword = true, Password = PasswordHasher.ComputeSha256Hash($"{model.UserName}seemsys123456") }; // قرار دادن رول 2 برای کاربران خاشع person.Role1 = 2; // اگر مقدار ادمین خاشع برابر ترو باشد if (model.IsAdmin == true) { // رول کاربر برابر یک میشود person.Role2 = 1; } else { person.Role2 = 2; } // ایجاد شی جدید از اسف Staff staff = new Staff() { Address = model.Address, EduDegree = model.EduDegree, EduField = model.EduField, PersonNational_ID = await _personService.AddPerson(person), PositionId = model.PositionId, StaffNumber = model.StaffNumber, TeleNumber = model.TeleNumber }; // ارسال استف به سرویس و متد اد اسف برای ذخیره سازی return(await _staffService.AddStaff(staff)); }
public async Task <ActionResult <Person> > PostLandingPageStaff(LandingPageViewModel model) { //ایجاد یک شرط برای چک کردن اینکه اطلاعات کاربر داخل دیابیس وجود دارد یا خیر if (await _personService.IsExistNationalId(model.Id)) { //در صورت وجود اطلاعات فرد را به دست می اوریم Person a = await _context.People.SingleOrDefaultAsync(r => r.PersonNational_ID == model.Id); a.Email = model.Email; a.FirstName = model.Fname; a.LastName = model.Lname; a.PersonNational_ID = model.Id; //اطلاعات فرد درصورت بروز تغییرات ویرایش می شود _context.Entry(a).State = EntityState.Modified; await _context.SaveChangesAsync(); //ارسال توکن به مرورگر کاربر Person user = await _context.People.SingleOrDefaultAsync(r => r.PersonNational_ID == model.Id); var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("seemsys", model.Id) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Token = tokenHandler.WriteToken(token); user.Password = null; return(user); } else { //اگر اطلاعات فرد مورد نظر در دخل دیتابیس وجود نداشت عملیات درج اطلاعات در دیتابیس آغاز می شود Person person = new Person() { PersonNational_ID = model.Id, FirstName = model.Fname, LastName = model.Lname, Email = FixedText.FixedEmail(model.Email), FatherName = null, Gender = false, UserName = FixedText.FixedEmail(model.Email), ShenasNum = null, ShenasSerial = null, NationalCardSerial = null, CreateTime = DateTime.Now, LastEditTime = DateTime.Now, IsActive = true, NeedChangePassword = false, Password = PasswordHasher.ComputeSha256Hash($"{FixedText.FixedEmail(model.Email)}seemsys123456") }; if (model.type == "Customer") { person.Role1 = 3; } else if (model.type == "") { person.Role1 = 2; person.Role2 = 1; } else { person.Role1 = 2; person.Role2 = 2; } if (model.type == "Customer") { await _personService.AddPerson(person); } else { Staff staff = new Staff() { Address = null, EduDegree = null, EduField = null, PersonNational_ID = await _personService.AddPerson(person), PositionId = null, StaffNumber = model.Id, TeleNumber = null }; await _staffService.AddStaff(staff); } //ارسال توکن به مرورگر کاربر var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("seemsys", model.Id) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); person.Token = tokenHandler.WriteToken(token); person.Password = null; return(person); } }