Пример #1
0
        //ویرایش استف
        // 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));
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        // ادیت کردن استف
        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);
        }
Пример #4
0
        //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));
        }