|
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Data.SQLite;
-
- namespace CNAS_Authorize
- {
- public class Machine
- {
- public string FactoryName { get; set; }
- public string MachineCode { get; set; }
- public string ImportTime { get; set; }
- public bool IsGenerated { get; set; }
-
- public Machine(string name, string code, string time, bool isGen)
- {
- FactoryName = name;
- MachineCode = code;
- ImportTime = time;
- IsGenerated = isGen;
- }
-
- }
-
- class MachineAuth
- {
- /// <summary>
- /// 所有数据行
- /// </summary>
- private List<Machine> m_machines;
- /// <summary>
- /// 编码过滤
- /// </summary>
- private string m_filter_code;
- /// <summary>
- /// 名称过滤
- /// </summary>
- private string m_filter_factory;
- //以下都是过滤过的数据
- /// <summary>
- /// 过滤过的数据
- /// </summary>
- private List<Machine> m_rangle;
- /// <summary>
- /// 过滤过的当前页
- /// </summary>
- private List<Machine> m_page;
- /// <summary>
- /// 每页数量
- /// </summary>
- private int m_pageSize;
- /// <summary>
- /// 页号
- /// </summary>
- private int m_pageIndex;
- /// <summary>
- /// 总页数
- /// </summary>
- private int m_pageCount;
-
-
- public MachineAuth()
- {
- m_pageSize = 10;
- m_pageIndex = 1;
- }
- public void Load()
- {
- InitializeDatabase();
-
- m_machines = new List<Machine>();
-
- string dbPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CNAS.db");
- string connectionString = $"Data Source={dbPath};Version=3;";
-
- try
- {
- using (var connection = new SQLiteConnection(connectionString))
- {
- connection.Open();
- using (var command = new SQLiteCommand(connection))
- {
- command.CommandText = "SELECT PLANTCODE, MAC_ADDRESS, CREATETIME FROM macaddress";
- using (var reader = command.ExecuteReader())
- {
- while (reader.Read())
- {
- Machine m = new Machine(
- reader["PLANTCODE"].ToString(),
- reader["MAC_ADDRESS"].ToString(),
- reader["CREATETIME"].ToString(),
- true
- );
- m_machines.Add(m);
- }
- }
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show($"加载数据失败: {ex.Message}", "错误");
- }
-
- m_rangle = new List<Machine>();
- m_rangle.AddRange(m_machines);
-
- m_pageSize = 10;
- m_pageIndex = 1;
- m_pageCount = (m_rangle.Count / m_pageSize) + (m_rangle.Count % m_pageSize == 0 ? 0 : 1);
-
- m_page = getPageData(m_pageIndex);
- }
-
- public int PageSize
- {
- get { return m_pageSize; }
- set
- {
- m_pageSize = value;
- updateView();
- }
- }
-
- public string CurrentPage
- {
- get
- {
- return m_pageCount == 0 ? "" : string.Format("{0} / {1}", m_pageIndex, m_pageCount);
- }
- set
- {
-
- }
- }
-
- public int TotalCount
- {
- get
- {
- return m_machines == null ? 0 : m_machines.Count;
- }
- set
- {
-
- }
- }
-
- private void updateView()
- {
- List<Machine> view = new List<Machine>();
- if (!string.IsNullOrEmpty(m_filter_code) || !string.IsNullOrEmpty(m_filter_factory))
- {
- foreach (Machine item in m_machines)
- {
- bool flag = true;
- if (!string.IsNullOrEmpty(m_filter_code))
- {
- if (item.MachineCode.IndexOf(m_filter_code) == -1)
- {
- flag = false;
- }
- }
- if (!string.IsNullOrEmpty(m_filter_factory))
- {
- if (item.FactoryName.IndexOf(m_filter_factory) == -1)
- {
- flag = false;
- }
- }
- if (flag)
- {
- view.Add(item);
- }
- }
- }
- else
- {
- view.AddRange(m_machines);
- }
- m_rangle = view;
- m_pageIndex = 1;
- m_pageCount = (m_rangle.Count / m_pageSize) + (m_rangle.Count % m_pageSize == 0 ? 0 : 1);
- m_page = getPageData(m_pageIndex);
- }
-
- public void ChangeFilter(string code, string factory)
- {
- this.m_filter_code = code;
- this.m_filter_factory = factory;
-
- updateView();
- }
-
- public List<Machine> Page
- {
- get
- {
- return m_page;
- }
- }
-
- private List<Machine> getPageData(int pageIndex)
- {
- int index = (pageIndex - 1) * m_pageSize;
- List<Machine> page = new List<Machine>(m_pageSize);
- for (int i = 0; i < m_pageSize && index < m_rangle.Count; i++)
- {
- page.Add(m_rangle[index]);
- index++;
- }
- return page;
- }
-
- public List<Machine> NextPage(out bool ok)
- {
- int index = m_pageIndex * m_pageSize;
- if (m_rangle == null || index >= m_rangle.Count)
- {
- ok = false;
- return null;
- }
-
- m_pageIndex++;
- m_page = getPageData(m_pageIndex);
-
- ok = true;
- return m_page;
- }
-
- public List<Machine> PrevPage(out bool ok)
- {
- if (m_pageIndex == 1 || m_rangle == null)
- {
- ok = false;
- return null;
- }
- m_pageIndex--;
-
- m_page = getPageData(m_pageIndex);
-
- ok = true;
- return m_page;
-
- }
-
- private void InitializeDatabase()
- {
- try
- {
- string dbPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CNAS.db");
- string connectionString = $"Data Source={dbPath};Version=3;";
-
- // 确保数据库目录存在
- string dbDirectory = System.IO.Path.GetDirectoryName(dbPath);
- if (!System.IO.Directory.Exists(dbDirectory))
- {
- System.IO.Directory.CreateDirectory(dbDirectory);
- }
-
- using (var connection = new SQLiteConnection(connectionString))
- {
- connection.Open();
- using (var command = new SQLiteCommand(connection))
- {
- command.CommandText = @"
- CREATE TABLE IF NOT EXISTS macaddress (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- MAC_ADDRESS TEXT,
- PLANTCODE TEXT,
- CREATETIME TEXT,
- FACILITY_STYLE TEXT
- );";
- command.ExecuteNonQuery();
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show($"初始化数据库失败: {ex.Message}", "错误");
- }
- }
-
- private void InsertTestData()
- {
- string connectionString = "Data Source=|DataDirectory|\\CNAS.db;Version=3;";
- using (var connection = new SQLiteConnection(connectionString))
- {
- connection.Open();
- using (var command = new SQLiteCommand(connection))
- {
- command.CommandText = @"
- INSERT INTO macaddress (MAC_ADDRESS, PLANTCODE, CREATETIME, FACILITY_STYLE)
- VALUES (@mac, @plant, @time, @style)";
-
- command.Parameters.AddWithValue("@mac", "00:11:22:33:44:55");
- command.Parameters.AddWithValue("@plant", "PLANT001");
- command.Parameters.AddWithValue("@time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- command.Parameters.AddWithValue("@style", "Style A");
-
- command.ExecuteNonQuery();
- }
- }
- }
-
- }
- }
|