Пример #1
0
        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;
        }
Пример #2
0
        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;
            }
        }