示例#1
0
        public static HashDevice GetDeviceFromSerializedData(SerializedHashDevice serializedDevice)
        {
            var device = new HashDevice();

            device.DeviceName = serializedDevice.DeviceName;
            device.Condition  = serializedDevice.Condition;
            device.IpAddress  = serializedDevice.IpAddress;

            device.AllPrograms = ProgramUtil.GetAllProgramsFromSerializedData(serializedDevice.Programs);
            device.AllUsers    = SList.Create <HashUser>(serializedDevice.Users.Length);

            for (int i = 0; i < serializedDevice.Users.Length; i++)
            {
                var user = GetUserFromSerializedData(serializedDevice.Users[i]);
                SList.Add(device.AllUsers, user);
            }

            var defaultUser = new HashUser();

            defaultUser.Username = DEFAULT_USER_NAME;
            defaultUser.Password = DEFAULT_PASSWORD;

            SList.Add(device.AllUsers, defaultUser);

            device.FileSystem = FileSystem.GetFileSystemFromSerializedData(serializedDevice.FileSystem);

            return(device);
        }
示例#2
0
        public static void ChangeDevice(HashDevice newDevice, HashUser newUser)
        {
            DataHolder.DeviceData.CurrentDevice = newDevice;
            DataHolder.DeviceData.CurrentUser   = newUser;

            UpdateDeviceRelatedGUI();
        }
示例#3
0
        public static bool TryLogin(HashDevice device, string userName, string password)
        {
            var user = FindUserByName(device, userName);

            if (user == null)
            {
                return(false);
            }

            return(AuthenticateUser(user, password));
        }
示例#4
0
        public static HashUser FindUserByName(HashDevice device, string userName)
        {
            var users = device.AllUsers;

            for (int i = 0; i < users.Count; i++)
            {
                var user = users[i];
                if (string.Equals(user.Username, userName, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(user);
                }
            }

            return(null);
        }
示例#5
0
        public static SimpleList <Program> GetAvailablePrograms(HashDevice device)
        {
            var programs = SList.Create <Program>(device.AllPrograms.Count);

            for (int i = 0; i < device.AllPrograms.Count; i++)
            {
                var program = device.AllPrograms[i];
                if (IsProgramAvailable(program))
                {
                    SList.Add(programs, program);
                }
            }

            return(programs);
        }
示例#6
0
 public static bool TryFindUserByName(HashDevice device, string userName, out HashUser user)
 {
     user = FindUserByName(device, userName);
     return(user != null);
 }
示例#7
0
        public static bool IsDeviceAvailable(HashDevice device)
        {
            var result = StoryUtil.EvaluateCondition(device.Condition);

            return(result);
        }
示例#8
0
 public static bool TryFindDeviceByIp(string ip, out HashDevice device)
 {
     device = FindDeviceByIp(ip);
     return(device != null);
 }
示例#9
0
        public static bool HasProgram(HashDevice device, ProgramType programType)
        {
            var programs = ProgramUtil.GetAvailablePrograms(device);

            return(SList.Exists(programs, p => p.ProgramType == programType));
        }
示例#10
0
 public static bool TryFindeDeviceByName(string name, out HashDevice device)
 {
     device = FindDeviceByName(name);
     return(device != null);
 }