//ویرایش استف // api.staff/5 public async Task <ActionResult <bool> > PutStaff(string id, RegisterStaffViewModel staff) { try { // ارسال استف به به سرویس و متد پوت استف await _staffService.PutStaff(id, staff); // ارسال اوکی در صورت موفقیت امیز بودن return(Ok(true)); } catch (Exception ex) { // ارسال نات فوند در صورت خطا return(NotFound(false)); } }
public async Task <ActionResult> RegisterEmployee(RegisterStaffViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //Luu thong tin nhan vien vao table Employee Staff staff = new Staff { Type = model.Type, Name = model.Name, UserId = user.Id }; db.Staff.Add(staff); db.SaveChanges(); //Gan vai tro cho nhan vien UserManager.AddToRole(user.Id, model.Role); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form List <string> type = new List <string> { "Admin", "Doctor", "Staff", "Customer", "Dispenser" }; ViewBag.type = new SelectList(type, model.Type); ViewBag.roles = new SelectList(db.AspNetRoles.Where(role => !role.Name.Contains("Admin")).ToList(), "Name", "Name", model.Role); return(View(model)); }
// ادیت کردن استف public async Task <bool> PutStaff(string id, RegisterStaffViewModel register) { // پیدا کردن استف و ئرسن بر اساس ای دی var st = await _context.Staffs.SingleOrDefaultAsync(a => a.PersonNational_ID == id.ToString()); var person = await _context.People.SingleOrDefaultAsync(a => a.PersonNational_ID == id.ToString()); // قرار دادن مقدار جدید در استف st.Address = register.Address; st.EduDegree = register.EduDegree; st.EduField = register.EduField; st.PositionId = register.PositionId; st.StaffNumber = register.StaffNumber; st.TeleNumber = register.TeleNumber; //قرار دادن مقدار جدید در پرسن person.BirthDate = new DateTime(register.BirthDate); person.FirstName = register.FirstName; person.LastName = register.LastName; person.FatherName = register.FatherName; person.ShenasNum = register.ShenasNum; person.ShenasSerial = register.ShenasSerial; person.LastEditTime = DateTime.Now; // اپدیت کردن استف در دیتابیس _context.Entry(st).State = EntityState.Modified; try { _context.SaveChanges(); } catch (Exception ex) { throw; } // اپدیت کردن پرسن در دیتابیس _context.Entry(person).State = EntityState.Modified; // ذخیره سازی دیتابیس _context.SaveChanges(); return(true); }
//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)); }