async void View_OnQueryDeviceInfo(object sender, EventArgs e) { //1.查询本地科室 List <Data.iDept> deptList = Model.QueryLocalDept(); if (deptList.Count == 0) {//不存在则先从服务器获取 deptList = await Model.QueryServerDept(); //List<Data.iIllfieldDept> IllfieldDept = await Model.QueryServerIllfieldDept(); //同步至本地 Model.SaveDeptToLocal(deptList); deptList = Model.QueryLocalDept(); } //List<Data.iIllfieldDept> IllfieldDeptList = Model.QueryLocalIllfieldDept(); //2.显示当前病区和科室 View.ExeShowDeptList(deptList); //3.查询本地设备信息 Data.iDevice device = Model.QueryLocalDevice(iCommon.DeviceID); if (device != null) {//存在设备信息,则显示,以便修改 List <Data.iDeviceOffice> idoList = Model.QueryLocalDeviceOffice(iCommon.DeviceID); //4.显示设备配置信息 View.ExeShowDeviceInfo(device, idoList); } }
/// <summary> /// 保存设备到本地 /// </summary> /// <param name="device"></param> public void SaveLocalDeviceInfo(Data.iDevice device) { using (SQLite.SQLiteConnection conn = new SQLite.SQLiteConnection(iDB.DbFile)) { string SqlText = @"Select * From [iDevice] Where [DeviceID]=?"; SQLite.SQLiteCommand cmd = conn.CreateCommand(SqlText, device.DeviceID); var Result = cmd.ExecuteQuery <iDevice>(); if (Result.Count == 1) { conn.Update(device); } else { conn.Insert(device); } } }
async void View_OnSaveDeviceInfo(object sender, Views.DeviceRegisterEventArgs e) { Data.iDevice device = new Data.iDevice(); device.DeviceID = iCommon.DeviceID; device.DeviceName = e.DeviceName; device.Notes = e.Notes; device.Status = e.Status; device.CreateDate = iCommon.DateNow; bool IsSaveSuccess = await Model.SaveDeviceInfo(iCommon.DeviceID, e.DeviceName, e.Notes, e.Status, e.OfficeIDs, e.OfficeNames); if (IsSaveSuccess) { Model.SaveLocalDeviceInfo(device); Model.SaveLocalDeviceOffice(iCommon.DeviceID, e.OfficeIDs, e.OfficeNames); } View.ExeShowSaveResult(IsSaveSuccess); }
public void ExeShowDeviceInfo(Data.iDevice device, List <Data.iDeviceOffice> OfficeList) { if (device == null) { return; } this.txtDeviceName.Text = device.DeviceName; this.txtNotes.Text = device.Notes; if (OfficeList.Count > 0) { foreach (Data.iDeviceOffice ido in OfficeList) { Data.iDept dept = DeptDataList.Find(dd => dd.DeptID == ido.OfficeID); if (dept != null) { this.listOffice.SelectedItems.Add(dept); } } } }
/// <summary> /// 检查设备状态 /// </summary> /// <returns></returns> async Task <bool> CheckDevice(string UserCode, string Password) { if (iCommon.CurrentDevice != null) { if (iCommon.CurrentDevice.Status == "正常") { return(true); } else { View.ExeLoginFail("当前设备已被禁用,请与管理员联系。"); return(false); } } //如果本地无设备信息,说明是第一次使用,或重新安装程序等。 if (iCommon.IsOnline == false || iCommon.IsConnected == false) { View.ExeLoginFail("设备初次使用时,请先联网登录。"); return(false); } bool Result = false; //如果是在线模式并且网络连通,则从服务器检索该设备信息 Data.iDevice device = await Model.QueryServerDeviceInfo(iCommon.DeviceID); if (device != null) {//当前设备已在服务器中登记过 //将数据同步至本地 Model.SaveDeviceInfoToLocal(device); List <Data.iDeviceOffice> doList = await Model.QueryServerDeviceOfficeInfo(iCommon.DeviceID); if (doList != null) { Model.SaveDeviceOfficeInfoToLocal(doList); } iCommon.CurrentDevice = device; iCommon.DeviceOffice = doList; if (device.Status == "正常") { return(true); } else {//若设备状态为非正常,则禁止使用。 View.ExeLoginFail("当前设备已被禁用,请与管理员联系。"); } } else {//若设备未在服务器中登记,则检查当前用户是否管理员 User user = await Model.Login(UserCode, Password, ""); if (user != null) { if (user.UserType == "管理员") { View.ExeShowDeviceRegister(); } else { View.ExeLoginFail("设备初次使用,需要由管理员先进行登记。"); } } else { View.ExeLoginFail("设备初次使用,必须由管理员先进行登记。"); } } return(Result); }