private void OnGlobalProgressChanged(GlobalProgressInfo info) { if (GlobalProgressChanged != null) GlobalProgressChanged(info); }
private void BeginUpdateProc() { var db = PcdbFile.Open(dbPath); OnOpenConnection(); db.OpenConnection(); OnBeginTransaction(); db.BeginTransaction(); var count = files.Count; var progressInfo = new GlobalProgressInfo(null, new Progress((uint)count), true); OnGlobalProgressChanged(progressInfo); progressInfo.Startup = false; using (host = new HostParser(db, ApplicationPersistent.ParserProviders)) { db.AppendedData += OnAppendedData; host.FoundData += OnFoundData; host.ProgressChanged += OnFileProgressChanged; for (var i = 0; i < count; i++) { if (Cancelled) { OnRollBackTransaction(); db.RollBackTransaction(); db.CloseConnection(); break; } progressInfo.Progress.Current = (uint)i; progressInfo.File = files[i]; OnGlobalProgressChanged(progressInfo); host.Parse(files[i]); } host.FoundData -= OnFoundData; host.ProgressChanged -= OnFileProgressChanged; db.AppendedData -= OnAppendedData; } host = null; if (!Cancelled) { OnCommitTransaction(); db.CommitTransaction(); db.CloseConnection(); OnCompress(); db.Compress(); } Completed = true; OnUpdateCompleted(count, !Cancelled); }