예제 #1
0
        public async Task <IActionResult> Create(StaffViewModel model)
        {
            var states = await _stateService.GetStates();

            var ranks = RankExtensions.GetRanks();

            if (ModelState.IsValid)
            {
                var response = await _staffService.AddStaff(model.FirstName, model.LastName, model.MiddleName,
                                                            model.ArmyNumber, model.PhoneNumber, model.Address, model.Rank, model.State, model.BirthDate,
                                                            model.RetirementDate);

                ViewBag.Error   = !response.Status;
                ViewBag.Message = response.Message;
                ViewBag.States  = new SelectList(states, "Key", "Value");
                ViewBag.Ranks   = new SelectList(ranks, "Key", "Value");
                return(View(new StaffViewModel()));
            }
            else
            {
                ViewBag.Error   = true;
                ViewBag.Message = "Kindly fill the form correctly!";
                ViewBag.States  = new SelectList(states, "Key", "Value", model.State);
                ViewBag.Ranks   = new SelectList(ranks, "Key", "Value", model.Rank);
                return(View(model));
            }
        }
        public ActionResult <Staff> AddStaff(Staff staff)
        {
            var staffs = _service.AddStaff(staff);

            if (staffs == null)
            {
                return(NotFound());
            }
            return(staffs);
        }
 public IActionResult NewStaff([FromBody] Staff staff)
 {
     try
     {
         var result = staffService.AddStaff(staff);
         return(Ok(result));
     }
     catch (Exception e)
     {
         return(Ok(e.Message));
     }
 }
예제 #4
0
        public ActionResult <StaffAddViewModel> AddStaff(StaffAddViewModel staffAddViewModel)
        {
            StaffAddViewModel staffInfoAddViewModel = new StaffAddViewModel();

            try
            {
                staffInfoAddViewModel = _staffService.AddStaff(staffAddViewModel);
            }
            catch (Exception es)
            {
                staffInfoAddViewModel._failure = true;
                staffInfoAddViewModel._message = es.Message;
            }
            return(staffInfoAddViewModel);
        }
예제 #5
0
 public IActionResult AddStaff(StaffViewModel staff)
 {
     try
     {
         var staffDTO = new StaffDTO
         {
             Name            = staff.Name,
             DateWork        = staff.DateWork,
             EmployeeGroupId = staff.EmployeeGroupId,
             BasicSalary     = staff.BasicSalary
         };
         staffService.AddStaff(staffDTO);
         return(RedirectToAction("Index"));
     }
     catch (ValidationException ex)
     {
         ModelState.AddModelError(ex.Property, ex.Message);
     }
     return(View(staff));
 }
예제 #6
0
        public IActionResult AddStaff(AddStaffViewModel model)
        {
            if (ModelState.IsValid)
            {
                Debug.Assert(model.StaffType != null, "model.StaffType != null");

                var error = _staffService.AddStaff(new AddStaffRequest
                {
                    Password    = model.Password,
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    Email       = model.Email,
                    StaffType   = model.StaffType.Value,
                    PhoneNumber = model.PhoneNumber,
                    Address     = model.Address
                });

                switch (error)
                {
                case null:
                    return(RedirectToAction("Index"));

                case ResponseErrorEnum.EmailAlreadyUsed:
                    ModelState.AddModelError(nameof(model.Email), "This email is already used.");
                    break;

                default:
                    return(this.InternalServerError());
                }
            }

            var indexModel = new AdminViewModel();

            FillAdminViewModel(indexModel);
            indexModel.AddStaffViewModel = model;
            indexModel.OpenAddStaffModal = true;
            return(View("Index", indexModel));
        }
예제 #7
0
 public async Task <IActionResult> Add([FromBody] Staff staff)
 {
     return(Ok(await _staffService.AddStaff(staff)));
 }
예제 #8
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));
        }