public async Task <PartialViewResult> CreateOrEditSupervisorModal(int?id, int employeeId)
        {
            var output = new SupervisorDto();

            if (id != null)
            {
                output = _employeeService.GetSupervisor(new GetSupervisorInput {
                    SupervisorId = id.Value
                });
            }
            var viewModel = new CreateOrEditSupervisorModel(output, id == null || id == 0);

            ViewBag.EmployeeId    = employeeId;
            ViewBag.ReportMethods = new SelectList(new List <EmployeeReportMethod>
            {
                EmployeeReportMethod.Direct,
                EmployeeReportMethod.Inderect,
                EmployeeReportMethod.Others
            });
            ViewBag.Employees =
                new SelectList(_employeeService.GetEmployees().Where(e => e.Id != employeeId).OrderBy(e => e.Fullname),
                               "Id", "Fullname", output.EmployeeId);

            return(PartialView("EmployeeDetail/Supervisors/_CreateOrEditSupervisorModal", viewModel));
        }
Пример #2
0
        private void ValidateSupervisor(SupervisorDto supervisorDto, long adminId)
        {
            if (string.IsNullOrEmpty(supervisorDto.UserName))
            {
                throw new ValidationException(ErrorCodes.EmptyUserName);
            }
            if (supervisorDto.UserName.Length > 100)
            {
                throw new ValidationException(ErrorCodes.NameExceedLength);
            }
            if (string.IsNullOrEmpty(supervisorDto.Password))
            {
                throw new ValidationException(ErrorCodes.EmptyPassword);
            }
            if (supervisorDto.Password.Length < 8 || supervisorDto.Password.Length > 25)
            {
                throw new ValidationException(ErrorCodes.PasswordLengthNotMatched);
            }

            if (_supervisorService.CheckUserNameDuplicated(supervisorDto.UserName, supervisorDto.UserId, adminId))
            {
                throw new ValidationException(ErrorCodes.UserNameAlreadyExist);
            }
            if (_receptionistService.CheckUserNameDuplicated(supervisorDto.UserName, supervisorDto.UserId, adminId))
            {
                throw new ValidationException(ErrorCodes.UserNameAlreadyExist);
            }
            if (_roomService.CheckUserNameDuplicated(supervisorDto.UserName, supervisorDto.UserId, adminId))
            {
                throw new ValidationException(ErrorCodes.UserNameAlreadyExist);
            }
        }
Пример #3
0
        public void UpdateSupervisor(SupervisorDto supervisorDto, long adminId)
        {
            var supervisor = _supervisorService.Find(supervisorDto.UserId);

            if (supervisor == null)
            {
                throw new NotFoundException(ErrorCodes.UserNotFound);
            }

            ValidateSupervisor(supervisorDto, adminId);
            supervisor.UserName = supervisorDto.UserName;
            supervisor.Password = PasswordHelper.Encrypt(supervisorDto.Password);

            SupervisorFeature[] features = new SupervisorFeature[supervisor.SupervisorFeatures.Count];
            supervisor.SupervisorFeatures.CopyTo(features, 0);
            _supervisorFeatureService.DeleteRange(features.ToList());

            foreach (var feature in supervisorDto.Features)
            {
                supervisor.SupervisorFeatures.Add(new SupervisorFeature
                {
                    FeatureId = feature.FeatureId
                });
            }
            _supervisorService.Update(supervisor);
            SaveChanges();
        }
Пример #4
0
        public void AddSupervisor(SupervisorDto supervisorDto, long adminId)
        {
            ValidateSupervisor(supervisorDto, adminId);
            var user = _UserService.Find(adminId);

            if (user == null)
            {
                throw new NotFoundException(ErrorCodes.UserNotFound);
            }

            Supervisor supervisor = Mapper.Map <Supervisor>(supervisorDto);

            supervisor.AdminId  = adminId;
            supervisor.Password = PasswordHelper.Encrypt(supervisorDto.Password);
            supervisor.Role     = Enums.RoleType.Supervisor;
            supervisor.IsActive = true;

            foreach (var feature in supervisorDto.Features)
            {
                supervisor.SupervisorFeatures.Add(new SupervisorFeature
                {
                    FeatureId = feature.FeatureId
                });
            }

            _supervisorFeatureService.InsertRange(supervisor.SupervisorFeatures);
            _supervisorService.Insert(supervisor);
            SaveChanges();
        }
Пример #5
0
 public OutputBase AddSupervisor(SupervisorDto supervisor)
 {
     if (
         _supervisorRepository.Query(
             q => q.Any(s => s.EmployeeId == supervisor.EmployeeId && s.SupervisorId == supervisor.SupervisorId)))
     {
         return(new OutputBase
         {
             Message = "The selected Supervisor hase already been added for this Employee",
             Success = false
         });
     }
     _supervisorRepository.Insert(Mapper.Map <Supervisor>(supervisor));
     return(new OutputBase {
         Message = "Save successfully", Success = true
     });
 }
 public CreateOrEditSupervisorModel(SupervisorDto input, bool isNew)
 {
     IsEditMode = !isNew;
     Supervisor = input;
 }