Ejemplo n.º 1
0
        public static void UpdateSystemInfo(ref User deviceUser, Contract.Model.UserInfo userInfo)
        {
            if (!string.IsNullOrWhiteSpace(userInfo.UserName))
            {
                deviceUser.UserName = userInfo.UserName;
            }

            if (userInfo.Role != null)
            {
                deviceUser.Privilege = (Int32)userInfo.Role;
            }

            if (!string.IsNullOrWhiteSpace(userInfo.Comment))
            {
                deviceUser.Comment = userInfo.Comment;
            }

            if (userInfo.UserStatus != null)
            {
                deviceUser.Enable = userInfo.UserStatus.Value;
            }

            if (userInfo.DepartmentId != null)
            {
                deviceUser.Department = userInfo.DepartmentId.Value;
            }

            if (userInfo.AccessTimeZoneId != null)
            {
                deviceUser.AccessTimeZone = userInfo.AccessTimeZoneId.Value;
            }

            if (userInfo.CredentialServices != null)
            {
                var enroll     = deviceUser.Enrolls.First();
                int enrollType = (int)enroll.EnrollType;

                foreach (var service in userInfo.CredentialServices)
                {
                    if (service is PasswordService)
                    {
                        var passwordService = service as PasswordService;
                        if (passwordService.Enabled)
                        {
                            if (Zd2911Utils.BitCheck(enrollType, (int)EnrollType.Password) == 0)
                            {
                                enrollType += Zd2911Utils.SetBit(0, (int)EnrollType.Password);
                            }

                            enroll.Password = passwordService.Password;
                        }
                    }
                    else if (service is CredentialCardService)
                    {
                        var credentialCardService = service as CredentialCardService;
                        if (credentialCardService.Enabled)
                        {
                            if (Zd2911Utils.BitCheck(enrollType, (int)EnrollType.Card) == 0)
                            {
                                enrollType += Zd2911Utils.SetBit(0, (int)EnrollType.Card); //password is 10, fp0-fp9, card is 11
                            }
                            enroll.CardID = credentialCardService.CardNumber;
                        }
                    }
                    else if (service is FingerPrintService)
                    {
                        var fpService = service as FingerPrintService;
                        if (fpService.Enabled)
                        {
                            if (Zd2911Utils.BitCheck(enrollType, fpService.Index) == 0)
                            {
                                enrollType += Zd2911Utils.SetBit(0, fpService.Index);
                            }

                            byte[] bytesFromText = ConvertObject.ConvertStringToBytes(fpService.FingerPrintData);
                            Array.Copy(bytesFromText, 0, enroll.Fingerprint, fpService.Index * Zd2911Utils.MaxFingerprintLength, bytesFromText.Length);
                        }
                    }
                }

                enroll.EnrollType = (EnrollType)enrollType;
            }
        }