Beispiel #1
0
        /// <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;
 }