Ejemplo n.º 1
0
        private void LongTimeRoutineEvent(object sender, DoWorkEventArgs e)
        {
            //реализация, которая очень долго выполняется
            if (this.FLongTimeRoutineHandler != null)
            {
                //извлекаем параметры, которые нужны для исполнения потоковой функции
                InputWorkerParameters WorkerParameters = (InputWorkerParameters)e.Argument;

                //запускаем потоковую функцию
                this.FLongTimeRoutineHandler(WorkerParameters);
            }
        }
Ejemplo n.º 2
0
        private void SyncProfilesWorkerHandler(InputWorkerParameters WorkerParameters)
        {
//            try
//            {
//                using (var msSqlDbService = new DatabaseProxy("SCME.CentralDatabase"))
//                {
//                    var localProfiles = _sqLiteDbService.GetProfilesSuperficially(_mmeCode);
//                    var centralProfiles = msSqlDbService.GetProfilesSuperficially(_mmeCode);
//                    if(!_sqLiteDbService.GetMmeCodes().ContainsKey(_mmeCode))
//                        _sqLiteDbService.InsertMmeCode(_mmeCode);
//
//                    List<MyProfile> deletingProfiles;
//                    List<MyProfile> addingProfiles;
//
//                    if (_sqLiteDbService.Migrate())
//                    {
//                        deletingProfiles = localProfiles;
//                        addingProfiles = centralProfiles;
//                    }
//                    else
//                    {
//                        deletingProfiles = localProfiles.Except(centralProfiles, new MyProfile.ProfileByVersionTimeEqualityComparer()).ToList();
//                        addingProfiles = centralProfiles.Except(localProfiles, new MyProfile.ProfileByVersionTimeEqualityComparer()).ToList();
//                    }
//
//                    foreach (var i in deletingProfiles)
//                        _sqLiteDbService.RemoveProfile(i, _mmeCode);
//
//                    foreach (var i in addingProfiles)
//                    {
//                        i.DeepData = msSqlDbService.LoadProfileDeepData(i);
//                        _sqLiteDbService.InsertUpdateProfile(null, i, _mmeCode);
//                    }
//
//                    return;
//                }
//                using (var centralDbClient = new CentralDatabaseServiceClient())
//                {
////                    Thread.Sleep(5000);
////                    throw new Exception();
//
//                    var serverProfiles = centralDbClient.GetProfileItemsByMme(_mmeCode);
//                    serverProfiles.ForEach(m => m.NextGenerationKey = m.ProfileKey);
//
//                    SaveProfiles(serverProfiles);
//                }
//            }
//            catch (Exception ex)
//            {
//                throw new Exception(string.Format("Error while syncing profiles from local database with a master: {0}", ex.Message));
//            }
        }
Ejemplo n.º 3
0
 private void SyncResultsWorkerHandler(InputWorkerParameters WorkerParameters)
 {
     try
     {
         var unsendedDevices = _resultsService.GetUnsendedDevices();
         using (var centralDbClient = new CentralDatabaseServiceClient())
         {
             foreach (var unsendedDevice in unsendedDevices)
             {
                 var sended = centralDbClient.SendResultToServer(unsendedDevice);
                 if (sended)
                 {
                     _resultsService.SetResultSended(unsendedDevice.Id);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception(string.Format("Error while syncing results from local database with a master:{0}", ex.Message));
     }
 }
Ejemplo n.º 4
0
 public void Run(InputWorkerParameters Parameters)
 {
     //запуск продолжительно выполняющегося кода с передачей для его исполнения входных параметров Parameters
     this.FWorker.RunWorkerAsync(Parameters);
 }