Beispiel #1
0
        public LiveDataList QueryLiveData(string cls)
        {
            Action ThrowException = () =>
            {
                throw new DatabaseException(String.Format("Query live data fail by class = {0}", cls));
            };

            try
            {
                liveDataCommand.Prepare();

                liveDataCommand.Parameters[0].Value = EncryptLang;
                liveDataCommand.Parameters[1].Value = Encrypt(cls);

                using (var reader = liveDataCommand.ExecuteReader())
                {
                    LiveDataList list = new LiveDataList();
                    while (reader.Read())
                    {
                        LiveDataItem item = new LiveDataItem();

                        item.ShortName = DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(0));

                        item.Content = DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(1));

                        item.Unit = reader.IsDBNull(2) ? "" : DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(2));

                        item.DefaultValue = reader.IsDBNull(3) ? "" : DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(3));

                        if (!reader.IsDBNull(4) && !reader.IsDBNull(5))
                        {
                            item.CmdName = DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(4));
                            item.CmdClass = DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(5));
                            item.Command = QueryCommand(item.CmdName, item.CmdClass);
                        }

                        item.Description = reader.IsDBNull(6) ? "" : DBCrypto.DecryptToString(reader.GetFieldValue<byte[]>(6));
                        byte[] indexArray = DBCrypto.DecryptToBytes(reader.GetFieldValue<byte[]>(7));
                        int index = ((indexArray[3] & 0xFF) << 24) +
                        ((indexArray[2] & 0xFF) << 16) +
                        ((indexArray[1] & 0xFF) << 8) +
                        (indexArray[0] & 0xFF);

                        item.IndexForSort = index;

                        list.Add(item);
                    }

                    return list;
                }
            }
            catch
            {
                ThrowException();
            }

            ThrowException();
            return null;
        }
Beispiel #2
0
        protected static void CheckOutOfRange(double value, LiveDataItem ld)
        {
            try
            {
                double min = Convert.ToDouble(ld.MinValue);
                double max = Convert.ToDouble(ld.MaxValue);

                if (value < min || value > max)
                    ld.IsOutOfRange = true;
                else
                    ld.IsOutOfRange = false;
            }
            catch
            {
            }
        }