private void bwAsync_DoWork(object sender, DoWorkEventArgs e) { Stopwatch mStopWatch = new Stopwatch(); mStopWatch.Start(); SanitaLogEx.d(TAG, "Start database cache..."); PostMessage("Start database cache ..."); IsCacheCompleted = false; try { //Update timer SystemInfo.NOW = SoftUpdatePresenter.GetCurrentTime(null, null); //Kiểm tra và nâng cấp cấu trúc database Splasher.Status = "Check and update database..."; SoftUpdatePresenter.DoUpdateDatabaseSQL(); using (IDbConnection connection = SoftUpdatePresenter.GetConnection()) { //Open connection connection.Open(); //Begin transtation using (IDbTransaction trans = connection.BeginTransaction()) { Splasher.Status = "Đang xử lý : Danh sách danh mục...".Translate(); DM_Intent_Type.InitDefaultList(DM_Intent_TypePresenter.GetDM_Intent_Types(connection, trans)); MyVar.mListDM_Intent_Type = DM_Intent_Type.GetDefaultList(0).OrderBy(p => p.DM_Intent_TypeID).ToList(); DM_Entity_Type.InitDefaultList(DM_Entity_TypePresenter.GetDM_Entity_Types(connection, trans)); MyVar.mListDM_Entity_Type = DM_Entity_Type.GetDefaultList(0).OrderBy(p => p.DM_Entity_TypeID).ToList(); MyVar.mListUser = UserPresenter.GetUsers(connection, trans); MyVar.mListHome = HomePresenter.GetHomes(connection, trans); MyVar.mListRoom = RoomPresenter.GetRooms(connection, trans); MyVar.mListDevice = DevicePresenter.GetDevices(connection, trans); //----------------------------------------------------------------------------- //Commit transtation trans.Commit(); //Close connection connection.Close(); } } SanitaLogEx.d(TAG, "End database cache..."); } catch (Exception ex) { SanitaLogEx.e(TAG, "bwAsync_DoWork error !", ex); } IsCacheCompleted = true; }
private void bwAsync_Worker(object sender, DoWorkEventArgs e) { ProcessingType type = (ProcessingType)e.Argument; e.Result = type; switch (type) { case ProcessingType.LoadData: { mListUser = UserPresenter.GetUsers(null, null); MyVar.mListUser = mListUser; } break; case ProcessingType.PhanQuyenHome: { IList <int> _list_id = new List <int>(); if (!String.IsNullOrEmpty(ListHomeID)) { foreach (String strID in ListHomeID.Split(';')) { int id = 0; int.TryParse(strID, out id); if (id > 0) { _list_id.Add(id); } } } foreach (Home home in MyVar.mListHome) { if (_list_id.Contains(home.HomeID)) { if (home.UserID != mUser.UserID) { home.UserID = mUser.UserID; HomePresenter.UpdateHome(home); } } else { if (home.UserID == mUser.UserID) { home.UserID = 0; HomePresenter.UpdateHome(home); } } } } break; case ProcessingType.PhanQuyenPhong: { IList <int> _list_id = new List <int>(); if (!String.IsNullOrEmpty(ListRoomID)) { foreach (String strID in ListRoomID.Split(';')) { int id = 0; int.TryParse(strID, out id); if (id > 0) { _list_id.Add(id); } } } foreach (Room mRoom in MyVar.mListRoom) { if (_list_id.Contains(mRoom.HomeID)) { if (mRoom.UserID != mUser.UserID) { mRoom.UserID = mUser.UserID; RoomPresenter.UpdateRoom(mRoom); } } else { if (mRoom.UserID == mUser.UserID) { mRoom.UserID = 0; RoomPresenter.UpdateRoom(mRoom); } } } } break; case ProcessingType.PhanQuyenThietBi: { IList <int> _list_id = new List <int>(); if (!String.IsNullOrEmpty(ListDeviceID)) { foreach (String strID in ListDeviceID.Split(';')) { int id = 0; int.TryParse(strID, out id); if (id > 0) { _list_id.Add(id); } } } foreach (Device mDevice in MyVar.mListDevice) { if (_list_id.Contains(mDevice.HomeID)) { if (mDevice.UserID != mUser.UserID) { mDevice.UserID = mUser.UserID; DevicePresenter.UpdateDevice(mDevice); } } else { if (mDevice.UserID == mUser.UserID) { mDevice.UserID = 0; DevicePresenter.UpdateDevice(mDevice); } } } } break; default: break; } }