示例#1
0
        public BaseCollector GetCollectorByParam(CollectorType itemtype, BaseParamter baseParamter)
        {
            BaseCollector collector = null;

            string collectType      = EnumExtension.GetCollectorType(itemtype);
            string collectNameSpace = collectType.Substring(0, collectType.LastIndexOf("."));

            collector = CollectorFactory.CreateInstance(collectNameSpace + "," + collectType, baseParamter);
            return(collector);
        }
示例#2
0
        //public bool Insert(BaseCollector collector)
        //{
        //    try
        //    {
        //        BaseParamter paramter = collector.Paramter;

        //        //string typeStr =paramter.GetType().ToString();

        //        using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection())
        //        {
        //            conn.ConnectionString = ConfigurationManager.AppSettings["MySqlConnectionStr"];
        //            MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
        //            cmd.CommandText = "insert into tb_monitoritem(name,ip,note,itemtype,paramter) values(@name,@ip,@note,@itemtype,@paramter)";
        //            cmd.CommandType = CommandType.Text;
        //            cmd.Parameters.Add("@name", MySql.Data.MySqlClient.MySqlDbType.VarChar);
        //            cmd.Parameters.Add("@ip", MySql.Data.MySqlClient.MySqlDbType.VarChar);
        //            cmd.Parameters.Add("@note", MySql.Data.MySqlClient.MySqlDbType.VarChar);
        //            cmd.Parameters.Add("@itemtype", MySql.Data.MySqlClient.MySqlDbType.Int32);
        //            cmd.Parameters.Add("@paramter", MySql.Data.MySqlClient.MySqlDbType.VarBinary);

        //            cmd.Parameters[0].Value = Guid.NewGuid();
        //            cmd.Parameters[1].Value = paramter.Host;
        //            cmd.Parameters[2].Value = cmd.Parameters[0].Value;
        //            cmd.Parameters[3].Value = 1;
        //            cmd.Parameters[4].Value = _ser.Serialize(paramter);
        //            cmd.Connection = conn;
        //            conn.Open();

        //            int affectedrows = cmd.ExecuteNonQuery();

        //            cmd.Dispose();//此处可以不用调用,
        //            conn.Close();// 离开 using 块, connection 会自行关闭
        //        }
        //        return true;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //}

        //public List<CollectorInfo> GetList(string condition)
        //{
        //    List<CollectorInfo> list = new List<CollectorInfo>();

        //    using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection())
        //    {
        //        conn.ConnectionString = ConfigurationManager.AppSettings["MySqlConnectionStr"];
        //        conn.Open();

        //        MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
        //        cmd.CommandType = CommandType.Text;
        //        cmd.CommandText = "select name,ip,note,itemtype,paramter from tb_monitoritem";
        //        cmd.Connection = conn;

        //        System.Data.Common.DbDataReader reader = cmd.ExecuteReader();
        //        byte[] buffer = null;
        //        if (reader.HasRows)
        //        {
        //            while (reader.Read())
        //            {
        //                CollectorInfo info = new CollectorInfo();
        //                int itemtype = reader.GetInt32(3);

        //                long len = reader.GetBytes(4, 0, null, 0, 0);
        //                buffer = new byte[len];
        //                len = reader.GetBytes(4, 0, buffer, 0, (int)len);

        //                info.Collector = GetCollectorByBytes(itemtype, buffer);
        //                info.LastTime = DateTime.MinValue;
        //                list.Add(info);
        //            }
        //        }
        //    }

        //    return list;
        //}
        #endregion

        public BaseCollector GetCollectorByBytes(CollectorType itemtype, byte[] bytes)
        {
            BaseCollector collector = null;

            string collectType      = EnumExtension.GetCollectorType(itemtype);
            string collectNameSpace = collectType.Substring(0, collectType.LastIndexOf("."));

            BaseParamter baseParamter = (BaseParamter)Activator.CreateInstance(EnumExtension.GetParamterType((CollectorType)itemtype));

            baseParamter = (DBParamter)_ser.Deserialize(bytes);

            collector = CollectorFactory.CreateInstance(collectNameSpace + "," + collectType, baseParamter);

            return(collector);
        }