/// <summary> /// Инициализировать нового пользователя /// </summary> /// <param name="UserInterface">Интерфейс для взаимодействия с пользователем</param> /// <param name="UserRole">Роль пользователя в системе</param> /// <returns>Новый пользователь системы</returns> public static User InstanceUser(ICallBack UserInterface, Role UserRole) { User user = new User(); user.Role = UserRole; user.Interface = UserInterface; return user; }
/// <summary> /// отправляем требуемые параметры пользователю /// </summary> /// <param name="user">Пользователь которому отправлять параметры</param> /// <param name="Time">Время когда был сделан срез данных</param> /// <param name="Slice">Срез данных на текущий момент</param> private static void SendToUser(User user, DateTime Time, Single[] Slice) { try { int[] indexes = user.Indexes; if (indexes != null) { float[] parameters = new float[indexes.Length]; for (int i = 0; i < parameters.Length; i++) { int index = indexes[i]; if (index > -1 && index < Slice.Length) { parameters[i] = Slice[index]; } } try { user.Interface.SendAll(Time, parameters); } catch { user.Fail = true; } } } catch { //user.Fail = true; } }
/// <summary> /// отправляем требуемые параметры пользователю /// </summary> /// <param name="user">Пользователь которому отправлять параметры</param> /// <param name="Time">Время когда был сделан срез данных</param> /// <param name="Slice">Срез данных на текущий момент</param> private Single[] FilterSliceForUser(User user, DateTime Time, Single[] Slice) { try { int[] indexes = user.Indexes; if (indexes != null) { float[] parameters = new float[indexes.Length]; for (int i = 0; i < parameters.Length; i++) { int index = indexes[i]; parameters[i] = float.NaN; if (index > -1 && index < Slice.Length) { parameters[i] = Slice[index]; } } return parameters; } } catch { } return null; }
private static bool FailUser(User user) { if (user.Fail) return true; else return false; }