/// <summary>
 /// Initial EvaluationAssign Model.
 /// </summary>
 /// <param name="evaluationId">The evaluation identity.</param>
 /// <param name="emp">The employee information.</param>
 /// <param name="userType">The user type.</param>
 /// <param name="isReject">The reject is true or not.</param>
 /// <returns></returns>
 private EvaluationAssign InitialEvaluationAssign(int evaluationId, Hremployee emp, string userType, bool isReject = false, bool isAction = false)
 {
     return(new EvaluationAssign
     {
         EvaluationId = evaluationId,
         AdUser = emp?.Aduser,
         EmpNo = emp?.EmpNo,
         IsReject = isReject,
         IsAction = isAction,
         UserType = userType
     });
 }
        /// <summary>
        /// The Method Add ClaimsIdentity Properties.
        /// </summary>
        /// <param name="username">The identity user.</param>
        public EmployeeViewModel ManageClaimsIdentity(LoginViewModel login)
        {
            Hremployee data = _unitOfWork.GetRepository <Hremployee>().Get(x => x.Aduser == login.Username).FirstOrDefault();

            if (data == null)
            {
                throw new ArgumentNullException(ConstantValue.HrEmployeeArgumentNullExceptionMessage);
            }
            var result = new EmployeeViewModel
            {
                EmpNo       = data.EmpNo,
                FirstNameTH = data.FirstnameTh,
                LastNameTH  = data.LastnameTh,
                AdUser      = data.Aduser,
                ComCode     = data.ComCode,
                OrgId       = data.OrgId,
                PositionId  = data.PositionId
            };
            var sapComCode = _unitOfWork.GetRepository <Hrcompany>().GetCache(x => x.ComCode == data.ComCode).FirstOrDefault()?.SapcomCode;
            var roleList   = _roleBll.GetCompositeRoleItemByAdUser(login.Username);

            _identity = new ClaimsIdentity();
            _identity.AddClaim(new Claim(ClaimTypes.Name, data.Aduser));
            _identity.AddClaim(new Claim(ConstantValue.ClamisEncrypt, UtilityService.EncryptString(login.Password, _config.EncryptionKey)));
            _identity.AddClaim(new Claim(ConstantValue.ClamisEmpNo, data.EmpNo));
            _identity.AddClaim(new Claim(ConstantValue.ClamisName, string.Format(ConstantValue.EmpTemplate, data.FirstnameTh, data.LastnameTh)));
            _identity.AddClaim(new Claim(ConstantValue.ClamisOrg, data.OrgId));
            _identity.AddClaim(new Claim(ConstantValue.ClamisPosition, data.PositionId));
            _identity.AddClaim(new Claim(ConstantValue.ClamisComCode, sapComCode));
            //Add authority company
            var authorityList = _unitOfWork.GetRepository <AuthorityCompany>().GetCache(x => x.AdUser == data.Aduser);

            foreach (var item in authorityList)
            {
                _identity.AddClaim(new Claim(ConstantValue.ClamisComCode, item.ComCode));
            }
            //Add purchase org
            var purOrgs = _unitOfWork.GetRepository <PurchaseOrgItem>().GetCache(x => x.AdUser == data.Aduser);

            foreach (var item in purOrgs)
            {
                _identity.AddClaim(new Claim(ConstantValue.ClamisPurchasing, item.PuchaseOrg));
            }
            //Add role
            foreach (var item in roleList)
            {
                _identity.AddClaim(new Claim(ClaimTypes.Role, item.RoleMenu));
            }
            return(result);
        }
        /// <summary>
        /// Initial user evaluation viewmodel.
        /// </summary>
        /// <param name="item">The evaluators information.</param>
        /// <param name="emp">The employee information.</param>
        /// <returns></returns>
        private UserEvaluationViewModel InitialEvaluationAssignViewModel(EvaluationAssign item, Hremployee emp, IEnumerable <Hrorg> orgList)
        {
            var org = orgList.FirstOrDefault(x => x.OrgId == emp?.OrgId);

            return(new UserEvaluationViewModel
            {
                Id = item.Id,
                EmpNo = item.EmpNo,
                AdUser = item.AdUser,
                IsReject = item.IsReject.Value,
                IsAction = item.IsAction.Value,
                UserType = item.UserType,
                FullName = string.Format(ConstantValue.EmpTemplate, emp?.FirstnameTh, emp?.LastnameTh),
                ReasonReject = item.ReasonReject,
                OrgName = org?.OrgName
            });
        }
 /// <summary>
 /// Initial Evaluation Assign Viewmodel.
 /// </summary>
 /// <param name="item">The evaluation entity model.</param>
 /// <param name="emp">The employee entity model.</param>
 /// <returns></returns>
 private EvaluationAssignViewModel InitialEvaluationAssignViewModel(EvaluationAssign item, Hremployee emp)
 {
     return(new EvaluationAssignViewModel
     {
         Id = item.Id,
         EmpNo = item.EmpNo,
         AdUser = item.AdUser,
         EvaluationId = item.EvaluationId,
         IsReject = item.IsReject.Value,
         IsAction = item.IsAction.Value,
         UserType = item.UserType,
         FullName = string.Format(ConstantValue.EmpTemplate, emp?.FirstnameTh, emp?.LastnameTh)
     });
 }