private void finishSelectionWorker(IReportDetailedProgress progress) { progress.ProgressDescriptionID = 1331; var newFinishedSelection = new List <ISerializableObject>(); List <Guid> selectedGUIDs = new List <Guid>(); int containerCount = SelectedElements.Count; var internalProgress = progress.startExternal(100d, containerCount); foreach (var sec in SelectedElements) { foreach (ISerializableObject iso in sec.RelatedObjects) { if (!selectedGUIDs.Contains(iso.Rowguid)) { selectedGUIDs.Add(iso.Rowguid); newFinishedSelection.Add(iso); if (isRoot(iso)) { SelectionRoots.Add(iso); } } } internalProgress.advance(); } FinishedSelection = newFinishedSelection; this.RaisePropertyChanged(() => FinishedSelection, PropertyChanged); this.RaisePropertyChanged(() => SelectionRoots, PropertyChanged); SelectedElements = new ObservableCollection <SelectionContainer>(); QueryResult = new ObservableCollection <ISerializableObject>(); }
private void copyTaxonDataWorker(IReportDetailedProgress progress) { this.progress = progress; if (ConnectionsAccess.Instance.State.CheckForFlags(ConnectionsAccess.ConnectionState.TaxonConnected)) { //Downloading Taxa: progress.ProgressDescriptionID = 2031; try { openConnections(); downloadTaxonLists(); fillTaxonListsForUser(); updateSelectedTaxonLists(); SyncStatus.Instance.Sync |= SyncStatus.SyncState.TaxonCatalogs; } catch (Exception e) { log.ErrorFormat("Error while downloading Taxon Lists:\n{0}", e.Message); } finally { closeConnections(); } } }
private void queryWorker(IReportDetailedProgress progress) { progress.ProgressDescriptionID = 1290; var internalProgress = progress.startInternal(20d); ConnectionsAccess.RepositoryDB.Progress = internalProgress; asyncQueryResult = ConnectionsAccess.RepositoryDB.Connector.LoadList(query.ObjectType, query.GetQueryRestriction()); progress.ProgressDescriptionID = 1291; internalProgress = progress.startInternal(70d, asyncQueryResult.Count); var newResult = new ObservableCollection <ISerializableObject>(); foreach (var result in asyncQueryResult) { newResult.Add(result); internalProgress.advance(); if (progress.IsCancelRequested) { break; } } QueryResult = newResult; }
private void updatePropertiesWorker(IReportDetailedProgress progress) { this.progress = progress; progressPerProperty = 50d; updateProperties("LebensraumTypen", "LebensraumTypenLfU"); updateProperties("Pflanzengesellschaften", "Pflanzengesellschaften"); }
private void loadCollectionDefinitionsWorker(IReportDetailedProgress progress) { ObjectSyncList transferList = new ObjectSyncList(); progress.advanceProgress(5); String sql = null; IList<ISerializableObject> list = null; progress.ProgressDescriptionID = 1160; try { sql = @"SELECT * FROM [" + OptionsAccess.RepositoryOptions.InitialCatalog + "].[dbo].[AnalysisProjectList] (" + ConnectionsAccess.Profile.ProjectID + ")"; list = ConnectionsAccess.RepositoryDB.Connector.LoadList(typeof(Analysis), sql); transferList.addList(list); foreach (ISerializableObject iso in list) { Analysis ana = (Analysis)iso; IRestriction rana = RestrictionFactory.Eq(typeof(AnalysisResult), "_AnalysisID", ana.AnalysisID); IList<ISerializableObject> resultList = ConnectionsAccess.RepositoryDB.Connector.LoadList(typeof(AnalysisResult), rana); transferList.addList(resultList); } } catch (Exception e) { MessageBox.Show(e.Message); _Log.ErrorFormat("Exception while updating AnalysisTaxonomicGroups: {0}", e); ; } sql = @"SELECT AnalysisID,TaxonomicGroup,RowGUID FROM [" + OptionsAccess.RepositoryOptions.InitialCatalog + "].[dbo].[AnalysisTaxonomicGroupForProject] (" + ConnectionsAccess.Profile.ProjectID + ")"; IList<AnalysisTaxonomicGroup> atgList = new List<AnalysisTaxonomicGroup>(); IDbConnection connRepository = ConnectionsAccess.RepositoryDB.CreateConnection(); connRepository.Open(); IDbCommand com = connRepository.CreateCommand(); com.CommandText = sql; IDataReader reader = null; try { reader = com.ExecuteReader(); while (reader.Read()) { AnalysisTaxonomicGroup atg = new AnalysisTaxonomicGroup(); atg.AnalysisID = reader.GetInt32(0); atg.TaxonomicGroup = reader.GetString(1); atg.Rowguid = Guid.NewGuid(); atgList.Add(atg); } connRepository.Close(); } catch (Exception e) { MessageBox.Show(e.Message); _Log.ErrorFormat("Exception while updating AnalysisTaxonomicGroups: {0}", e); ; connRepository.Close(); } foreach (AnalysisTaxonomicGroup atg in atgList) { foreach (ISerializableObject iso in list) { if (iso.GetType().Equals(typeof(Analysis))) { Analysis ana = (Analysis)iso; if (ana.AnalysisID == atg.AnalysisID) { transferList.addObject(atg); } } } } double progressPerType = 90d / _defTypes.Count; foreach (Type t in _defTypes) { transferList.Load(t, ConnectionsAccess.RepositoryDB); progress.advanceProgress(progressPerType); } transferList.initialize(LookupSynchronizationInformation.downloadDefinitionsList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); List<ISerializableObject> orderedObjects = transferList.orderedObjects; progress.ProgressDescriptionID = 1161; foreach (ISerializableObject iso in orderedObjects) { try { ConnectionsAccess.MobileDB.Connector.InsertPlain(iso); } catch (Exception) { try { if (iso.GetType().Equals(typeof(AnalysisTaxonomicGroup))) { AnalysisTaxonomicGroup atg = (AnalysisTaxonomicGroup)iso; IRestriction r1 = RestrictionFactory.Eq(iso.GetType(), "_AnalysisID", atg.AnalysisID); IRestriction r2 = RestrictionFactory.Eq(iso.GetType(), "_TaxonomicGroup", atg.TaxonomicGroup); IRestriction r = RestrictionFactory.And().Add(r1).Add(r2); ISerializableObject isoStored = ConnectionsAccess.MobileDB.Connector.Load(iso.GetType(), r); atg.Rowguid = isoStored.Rowguid; } else { IRestriction r = RestrictionFactory.Eq(iso.GetType(), "_guid", iso.Rowguid); ISerializableObject isoStored = ConnectionsAccess.MobileDB.Connector.Load(iso.GetType(), r); } ConnectionsAccess.MobileDB.Connector.UpdatePlain(iso); } catch (Exception ex) { _Log.ErrorFormat("Exception while transferring [{0}]: [{1}]",iso,ex); } } } }
private void loadCollectionDefinitionsWorker(IReportDetailedProgress progress) { ObjectSyncList transferList = new ObjectSyncList(); progress.advanceProgress(5); String sql = null; IList <ISerializableObject> list = null; progress.ProgressDescriptionID = 1160; try { sql = @"SELECT * FROM [" + OptionsAccess.RepositoryOptions.InitialCatalog + "].[dbo].[AnalysisProjectList] (" + ConnectionsAccess.Profile.ProjectID + ")"; list = ConnectionsAccess.RepositoryDB.Connector.LoadList(typeof(Analysis), sql); transferList.addList(list); foreach (ISerializableObject iso in list) { Analysis ana = (Analysis)iso; IRestriction rana = RestrictionFactory.Eq(typeof(AnalysisResult), "_AnalysisID", ana.AnalysisID); IList <ISerializableObject> resultList = ConnectionsAccess.RepositoryDB.Connector.LoadList(typeof(AnalysisResult), rana); transferList.addList(resultList); } } catch (Exception e) { MessageBox.Show(e.Message); _Log.ErrorFormat("Exception while updating AnalysisTaxonomicGroups: {0}", e);; } sql = @"SELECT AnalysisID,TaxonomicGroup,RowGUID FROM [" + OptionsAccess.RepositoryOptions.InitialCatalog + "].[dbo].[AnalysisTaxonomicGroupForProject] (" + ConnectionsAccess.Profile.ProjectID + ")"; IList <AnalysisTaxonomicGroup> atgList = new List <AnalysisTaxonomicGroup>(); IDbConnection connRepository = ConnectionsAccess.RepositoryDB.CreateConnection(); connRepository.Open(); IDbCommand com = connRepository.CreateCommand(); com.CommandText = sql; IDataReader reader = null; try { reader = com.ExecuteReader(); while (reader.Read()) { AnalysisTaxonomicGroup atg = new AnalysisTaxonomicGroup(); atg.AnalysisID = reader.GetInt32(0); atg.TaxonomicGroup = reader.GetString(1); atg.Rowguid = Guid.NewGuid(); atgList.Add(atg); } connRepository.Close(); } catch (Exception e) { MessageBox.Show(e.Message); _Log.ErrorFormat("Exception while updating AnalysisTaxonomicGroups: {0}", e);; connRepository.Close(); } foreach (AnalysisTaxonomicGroup atg in atgList) { foreach (ISerializableObject iso in list) { if (iso.GetType().Equals(typeof(Analysis))) { Analysis ana = (Analysis)iso; if (ana.AnalysisID == atg.AnalysisID) { transferList.addObject(atg); } } } } double progressPerType = 90d / _defTypes.Count; foreach (Type t in _defTypes) { transferList.Load(t, ConnectionsAccess.RepositoryDB); progress.advanceProgress(progressPerType); } transferList.initialize(LookupSynchronizationInformation.downloadDefinitionsList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); List <ISerializableObject> orderedObjects = transferList.orderedObjects; progress.ProgressDescriptionID = 1161; foreach (ISerializableObject iso in orderedObjects) { try { ConnectionsAccess.MobileDB.Connector.InsertPlain(iso); } catch (Exception) { try { if (iso.GetType().Equals(typeof(AnalysisTaxonomicGroup))) { AnalysisTaxonomicGroup atg = (AnalysisTaxonomicGroup)iso; IRestriction r1 = RestrictionFactory.Eq(iso.GetType(), "_AnalysisID", atg.AnalysisID); IRestriction r2 = RestrictionFactory.Eq(iso.GetType(), "_TaxonomicGroup", atg.TaxonomicGroup); IRestriction r = RestrictionFactory.And().Add(r1).Add(r2); ISerializableObject isoStored = ConnectionsAccess.MobileDB.Connector.Load(iso.GetType(), r); atg.Rowguid = isoStored.Rowguid; } else { IRestriction r = RestrictionFactory.Eq(iso.GetType(), "_guid", iso.Rowguid); ISerializableObject isoStored = ConnectionsAccess.MobileDB.Connector.Load(iso.GetType(), r); } ConnectionsAccess.MobileDB.Connector.UpdatePlain(iso); } catch (Exception ex) { _Log.ErrorFormat("Exception while transferring [{0}]: [{1}]", iso, ex); } } } }
private void copyTaxonDataWorker(IReportDetailedProgress progress) { this.progress = progress; if(ConnectionsAccess.Instance.State.CheckForFlags(ConnectionsAccess.ConnectionState.TaxonConnected)) { //Downloading Taxa: progress.ProgressDescriptionID = 2031; try { openConnections(); downloadTaxonLists(); fillTaxonListsForUser(); updateSelectedTaxonLists(); SyncStatus.Instance.Sync |= SyncStatus.SyncState.TaxonCatalogs; } catch (Exception e) { log.ErrorFormat("Error while downloading Taxon Lists:\n{0}", e.Message); } finally { closeConnections(); } } }
private void uploadFieldDataWorker(IReportDetailedProgress actor) { if (ConnectionsAccess.Instance.State.CheckForFlags(Diversity_Synchronization.ConnectionsAccess.ConnectionState.DatabasesConnected)) { actor.IsProgressIndeterminate = true; actor.ProgressDescriptionID = 1141; ObjectSyncList syncList = new ObjectSyncList(); List <Type> uploadTypes = new List <Type>(); uploadTypes.Add(typeof(CollectionAgent)); uploadTypes.Add(typeof(CollectionEvent)); uploadTypes.Add(typeof(CollectionEventImage)); uploadTypes.Add(typeof(CollectionEventLocalisation)); uploadTypes.Add(typeof(CollectionEventProperty)); uploadTypes.Add(typeof(CollectionSpecimen)); uploadTypes.Add(typeof(CollectionSpecimenImage)); uploadTypes.Add(typeof(Identification)); uploadTypes.Add(typeof(IdentificationUnit)); uploadTypes.Add(typeof(IdentificationUnitAnalysis)); uploadTypes.Add(typeof(IdentificationUnitGeoAnalysis)); uploadTypes.Add(typeof(CollectionEventSeries)); uploadTypes.Add(typeof(CollectionProject)); //Bis hier: Korrepondiert zu DBVersion 31 foreach (Type t in uploadTypes) { syncList.Load(t, ConnectionsAccess.MobileDB); } syncList.initialize(LookupSynchronizationInformation.getFieldDataList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); String userNumber = (ConnectionsAccess.Profile.AgentURI == null)?"":ConnectionsAccess.Profile.AgentURI.Replace(@"http://id.snsb.info/Agents/", ""); if (userNumber == "") { //TODO Empty User No } SNSBPictureTransfer snsb = new SNSBPictureTransfer(userNumber, (int)ConnectionsAccess.Profile.ProjectID, ConnectionsAccess.MobileDB, OptionsAccess.getFolderPath(ApplicationFolder.Pictures)); AnalyzeSyncObjectList ansl = new AnalyzeSyncObjectList(syncList, ConnectionsAccess.MobileDB, ConnectionsAccess.RepositoryDB, ConnectionsAccess.Synchronization, snsb); ansl.analyzeAll(); //Alles außer InsertState auf ignore setzen List <ListContainer> conflicted; List <ListContainer> conflictResolved; List <ListContainer> synchronized; List <ListContainer> insert; List <ListContainer> update; List <ListContainer> ignore; List <ListContainer> delete; List <ListContainer> premature; conflicted = ansl.getObjectsOfState(SyncStates_Enum.ConflictState); conflictResolved = ansl.getObjectsOfState(SyncStates_Enum.ConflictResolvedState); synchronized = ansl.getObjectsOfState(SyncStates_Enum.SynchronizedState); insert = ansl.getObjectsOfState(SyncStates_Enum.InsertState); update = ansl.getObjectsOfState(SyncStates_Enum.UpdateState); ignore = ansl.getObjectsOfState(SyncStates_Enum.IgnoreState); delete = ansl.getObjectsOfState(SyncStates_Enum.DeletedState); premature = ansl.getObjectsOfState(SyncStates_Enum.PrematureState); //ProgressDescription = "Warning: Only InsertState is allowed at the moment. All other states will be set to IgnoreState"; System.Threading.Thread.Sleep(1000); foreach (ListContainer lc in conflicted) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in conflictResolved) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in synchronized) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } foreach (ListContainer lc in update) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in delete) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in premature) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } ansl.synchronizeAll(); SyncStatus.Instance.Sync |= SyncStatus.SyncState.FieldDataUpload; } }
private void downloadFieldDataWorker(IReportDetailedProgress progess) { ObjectSyncList syncList = new ObjectSyncList(); syncList.addList(SelectionBuilder.FinishedSelection); //this.setProgressInformation("Initializing"); syncList.initialize(LookupSynchronizationInformation.getFieldDataList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); //this.setProgressValue(10); //this.setProgressInformation("Analyzing"); AnalyzeSyncObjectList ansl = new AnalyzeSyncObjectList(syncList, ConnectionsAccess.RepositoryDB, ConnectionsAccess.MobileDB, ConnectionsAccess.Synchronization); ansl.analyzeAll(); //this.setProgressInformation("Analysis Complete"); //this.setProgressValue(20); //Alles außer InsertState auf ignore setzen List <ListContainer> conflicted; List <ListContainer> conflictResolved; List <ListContainer> synchronized; List <ListContainer> insert; List <ListContainer> update; List <ListContainer> ignore; List <ListContainer> delete; List <ListContainer> premature; conflicted = ansl.getObjectsOfState(SyncStates_Enum.ConflictState); conflictResolved = ansl.getObjectsOfState(SyncStates_Enum.ConflictResolvedState); synchronized = ansl.getObjectsOfState(SyncStates_Enum.SynchronizedState); insert = ansl.getObjectsOfState(SyncStates_Enum.InsertState); update = ansl.getObjectsOfState(SyncStates_Enum.UpdateState); ignore = ansl.getObjectsOfState(SyncStates_Enum.IgnoreState); delete = ansl.getObjectsOfState(SyncStates_Enum.DeletedState); premature = ansl.getObjectsOfState(SyncStates_Enum.PrematureState); //this.setProgressValue(30); //this.setProgressInformation("Warning: Only InsertState is allowed at the moment. All other states will be set to IgnoreState"); System.Threading.Thread.Sleep(1000); //this.setProgressInformation("Synchronizing"); foreach (ListContainer lc in conflicted) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(40); foreach (ListContainer lc in conflictResolved) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(50); foreach (ListContainer lc in synchronized) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } //this.setProgressValue(60); foreach (ListContainer lc in update) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(70); foreach (ListContainer lc in delete) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(80); foreach (ListContainer lc in premature) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } //this.setProgressValue(90); ansl.synchronizeAll(); //this.setProgressInformation("Complete"); //this.setProgressValue(100); //this.endMobileConnection(true); SyncStatus.Instance.Sync |= SyncStatus.SyncState.FieldDataDownload; }
private void downloadFieldDataWorker(IReportDetailedProgress progess) { ObjectSyncList syncList = new ObjectSyncList(); syncList.addList(SelectionBuilder.FinishedSelection); //this.setProgressInformation("Initializing"); syncList.initialize(LookupSynchronizationInformation.getFieldDataList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); //this.setProgressValue(10); //this.setProgressInformation("Analyzing"); AnalyzeSyncObjectList ansl = new AnalyzeSyncObjectList(syncList, ConnectionsAccess.RepositoryDB, ConnectionsAccess.MobileDB, ConnectionsAccess.Synchronization); ansl.analyzeAll(); //this.setProgressInformation("Analysis Complete"); //this.setProgressValue(20); //Alles außer InsertState auf ignore setzen List<ListContainer> conflicted; List<ListContainer> conflictResolved; List<ListContainer> synchronized; List<ListContainer> insert; List<ListContainer> update; List<ListContainer> ignore; List<ListContainer> delete; List<ListContainer> premature; conflicted = ansl.getObjectsOfState(SyncStates_Enum.ConflictState); conflictResolved = ansl.getObjectsOfState(SyncStates_Enum.ConflictResolvedState); synchronized = ansl.getObjectsOfState(SyncStates_Enum.SynchronizedState); insert = ansl.getObjectsOfState(SyncStates_Enum.InsertState); update = ansl.getObjectsOfState(SyncStates_Enum.UpdateState); ignore = ansl.getObjectsOfState(SyncStates_Enum.IgnoreState); delete = ansl.getObjectsOfState(SyncStates_Enum.DeletedState); premature = ansl.getObjectsOfState(SyncStates_Enum.PrematureState); //this.setProgressValue(30); //this.setProgressInformation("Warning: Only InsertState is allowed at the moment. All other states will be set to IgnoreState"); System.Threading.Thread.Sleep(1000); //this.setProgressInformation("Synchronizing"); foreach (ListContainer lc in conflicted) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(40); foreach (ListContainer lc in conflictResolved) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(50); foreach (ListContainer lc in synchronized) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } //this.setProgressValue(60); foreach (ListContainer lc in update) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(70); foreach (ListContainer lc in delete) { lc.State = SyncStates_Enum.IgnoreState; } //this.setProgressValue(80); foreach (ListContainer lc in premature) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } //this.setProgressValue(90); ansl.synchronizeAll(); //this.setProgressInformation("Complete"); //this.setProgressValue(100); //this.endMobileConnection(true); SyncStatus.Instance.Sync |= SyncStatus.SyncState.FieldDataDownload; }
private void uploadFieldDataWorker(IReportDetailedProgress actor) { if (ConnectionsAccess.Instance.State.CheckForFlags(Diversity_Synchronization.ConnectionsAccess.ConnectionState.DatabasesConnected)) { actor.IsProgressIndeterminate = true; actor.ProgressDescriptionID = 1141; ObjectSyncList syncList = new ObjectSyncList(); List<Type> uploadTypes = new List<Type>(); uploadTypes.Add(typeof(CollectionAgent)); uploadTypes.Add(typeof(CollectionEvent)); uploadTypes.Add(typeof(CollectionEventImage)); uploadTypes.Add(typeof(CollectionEventLocalisation)); uploadTypes.Add(typeof(CollectionEventProperty)); uploadTypes.Add(typeof(CollectionSpecimen)); uploadTypes.Add(typeof(CollectionSpecimenImage)); uploadTypes.Add(typeof(Identification)); uploadTypes.Add(typeof(IdentificationUnit)); uploadTypes.Add(typeof(IdentificationUnitAnalysis)); uploadTypes.Add(typeof(IdentificationUnitGeoAnalysis)); uploadTypes.Add(typeof(CollectionEventSeries)); uploadTypes.Add(typeof(CollectionProject)); //Bis hier: Korrepondiert zu DBVersion 31 foreach (Type t in uploadTypes) { syncList.Load(t, ConnectionsAccess.MobileDB); } syncList.initialize(LookupSynchronizationInformation.getFieldDataList(), LookupSynchronizationInformation.getReflexiveReferences(), LookupSynchronizationInformation.getReflexiveIDFields()); String userNumber =(ConnectionsAccess.Profile.AgentURI==null)?"":ConnectionsAccess.Profile.AgentURI.Replace(@"http://id.snsb.info/Agents/", ""); if (userNumber == "") { //TODO Empty User No } SNSBPictureTransfer snsb = new SNSBPictureTransfer(userNumber,(int) ConnectionsAccess.Profile.ProjectID, ConnectionsAccess.MobileDB,OptionsAccess.getFolderPath(ApplicationFolder.Pictures)); AnalyzeSyncObjectList ansl = new AnalyzeSyncObjectList(syncList, ConnectionsAccess.MobileDB, ConnectionsAccess.RepositoryDB, ConnectionsAccess.Synchronization,snsb); ansl.analyzeAll(); //Alles außer InsertState auf ignore setzen List<ListContainer> conflicted; List<ListContainer> conflictResolved; List<ListContainer> synchronized; List<ListContainer> insert; List<ListContainer> update; List<ListContainer> ignore; List<ListContainer> delete; List<ListContainer> premature; conflicted = ansl.getObjectsOfState(SyncStates_Enum.ConflictState); conflictResolved = ansl.getObjectsOfState(SyncStates_Enum.ConflictResolvedState); synchronized = ansl.getObjectsOfState(SyncStates_Enum.SynchronizedState); insert = ansl.getObjectsOfState(SyncStates_Enum.InsertState); update = ansl.getObjectsOfState(SyncStates_Enum.UpdateState); ignore = ansl.getObjectsOfState(SyncStates_Enum.IgnoreState); delete = ansl.getObjectsOfState(SyncStates_Enum.DeletedState); premature = ansl.getObjectsOfState(SyncStates_Enum.PrematureState); //ProgressDescription = "Warning: Only InsertState is allowed at the moment. All other states will be set to IgnoreState"; System.Threading.Thread.Sleep(1000); foreach (ListContainer lc in conflicted) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in conflictResolved) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in synchronized) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } foreach (ListContainer lc in update) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in delete) { lc.State = SyncStates_Enum.IgnoreState; } foreach (ListContainer lc in premature) { lc.State = SyncStates_Enum.IgnoreState;//Exception throwen? } ansl.synchronizeAll(); SyncStatus.Instance.Sync |= SyncStatus.SyncState.FieldDataUpload; } }
private void queryWorker(IReportDetailedProgress progress) { progress.ProgressDescriptionID = 1290; var internalProgress = progress.startInternal(20d); ConnectionsAccess.RepositoryDB.Progress = internalProgress; asyncQueryResult = ConnectionsAccess.RepositoryDB.Connector.LoadList(query.ObjectType, query.GetQueryRestriction()); progress.ProgressDescriptionID = 1291; internalProgress = progress.startInternal(70d, asyncQueryResult.Count); var newResult = new ObservableCollection<ISerializableObject>(); foreach (var result in asyncQueryResult) { newResult.Add(result); internalProgress.advance(); if (progress.IsCancelRequested) break; } QueryResult = newResult; }
private void finishSelectionWorker(IReportDetailedProgress progress) { progress.ProgressDescriptionID = 1331; var newFinishedSelection = new List<ISerializableObject>(); List<Guid> selectedGUIDs = new List<Guid>(); int containerCount = SelectedElements.Count; var internalProgress = progress.startExternal(100d, containerCount); foreach (var sec in SelectedElements) { foreach (ISerializableObject iso in sec.RelatedObjects) { if (!selectedGUIDs.Contains(iso.Rowguid)) { selectedGUIDs.Add(iso.Rowguid); newFinishedSelection.Add(iso); if (isRoot(iso)) SelectionRoots.Add(iso); } } internalProgress.advance(); } FinishedSelection = newFinishedSelection; this.RaisePropertyChanged(() => FinishedSelection, PropertyChanged); this.RaisePropertyChanged(() => SelectionRoots, PropertyChanged); SelectedElements = new ObservableCollection<SelectionContainer>(); QueryResult = new ObservableCollection<ISerializableObject>(); }