|
- using CnasSynchronusClient;
- using CnasSynchrousModel;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
-
- 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;
- }
- DataBaseInfo targetDataBase = new DataBaseInfo();
- public void Load()
- {
- //加载CNAS数据库配置
- targetDataBase = FileOperation.GetLocalCnasDB();
- if (!CnasDataOperationFact.CnasDataOperation().TestConnect(targetDataBase))
- {
- MessageBox.Show("CNAS数据库无法正常连接...", "提示");
- return;
- }
-
-
- m_machines = new List<Machine>();
- ////1.加载数据
- DataTable dtmacaddressinfo = CnasDataOperationFact.CnasDataOperation().GetTableData(targetDataBase, "select * from macaddress");
- if (dtmacaddressinfo != null && dtmacaddressinfo.Rows.Count > 0)
- {
- List<string> lstCnasTables = new List<string>();
- foreach (DataRow dr in dtmacaddressinfo.Rows)
- {
- Machine m = new Machine( dr["PLANTCODE"].ToString(), dr["MAC_ADDRESS"].ToString(), dr["CREATETIME"].ToString(), true);
- m_machines.Add(m);
- lstCnasTables.Add(dr["MAC_ADDRESS"].ToString());
- }
- }
-
- //获取Machine表的数据
- //m_machines = new List<Machine>();
- ////TEST DATA
- //for(int i = 0; i < 15; i++)
- //{
- // Machine m = new Machine("MACHINEE"+ (i+1), "CODE" + (i + 1), "2025-02-02", i%2==0);
- // m_machines.Add(m);
- //}
-
- 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;
-
- }
-
-
- }
- }
|