public SyncPool CreateSyncPool(IRestriction r) { SyncPool pool = new SyncPool(_serializer, _syncSerializer); foreach (Type t in _registeredTypes) { IList<ISerializableObject> list = _serializer.Connector.LoadList(t, r); foreach (ISerializableObject iso in list) { pool.AddISerializableObject(iso); } } pool.Intialize(); return pool; }
private void HandleUserCommands(IRCMessage pMessageInfo) { if (pMessageInfo.userName.Contains("bot")) { return; } SyncPool.Init(); bool SpeakText = true; if (VoteSystem.HandleMessages(pMessageInfo)) { SpeakText = false; } if (UserManager.IsSpeachBannedUser(pMessageInfo.userName)) { SpeakText = false; } if (UserManager.HandleMessages(pMessageInfo)) { SpeakText = false; } if (SoundSystem.HandleMessages(pMessageInfo)) { SpeakText = false; } if (pMessageInfo.message.Trim().StartsWith("!")) { SpeakText = false; } if (LUIS_System.HandleMessages(pMessageInfo)) { SpeakText = false; } if (SpeakText && GlobalSpeak) { SyncPool.SpeakText(pMessageInfo); } ConsoleWrite(pMessageInfo); }
public void Synchronize(SyncPool syncPool) { syncPool.StartSynchronizing(this); }
public void Analyze(SyncPool syncPool) { syncPool.StartAnalyzing(this); }
private void analyzeButton_Click(object sender, EventArgs e) { if (analyzeButton.BackColor ==System.Drawing.SystemColors.Info) { analyzeButton.BackColor = System.Drawing.SystemColors.Control; } analyzeButton.Text = "Analyzing"; if (download == true) { //Nur die Basistabellen sollen synchronisiert werden FreeSyncPoolBuilder poolBuilder = new FreeSyncPoolBuilder(repositorySerializer, syncDBSerializer); //***Analysis ist ein Speizialfall, da nur projektspezifische Daten übertrageb werden sollen //Ermittle alle Projekte aus Userprofilen, die auf dem Handy gespeichert sind DbConnection mobConn = mobileDBSerializer.CreateConnection(); mobConn.Open(); DbCommand com = mobConn.CreateCommand(); com.CommandText = "Select ProjectID From UserProfile"; DbDataReader reader = com.ExecuteReader(); List<int> projects=new List<int>(); while (reader.Read()) { projects.Add(reader.GetInt32(0)); } foreach (int project in projects) { String s = @"SELECT * FROM [DiversityCollection].[dbo].[AnalysisProjectList] ("+project+")"; IList<ISerializableObject> list = repositorySerializer.Connector.LoadList(typeof(Analysis),s); poolBuilder.Add(list); } //******* poolBuilder.Load(typeof(AnalysisTaxonomicGroup)); //poolBuilder.Load(typeof(Collection)); poolBuilder.Load(typeof(Property)); poolBuilder.Load(typeof(CollEventImageType_Enum)); poolBuilder.Load(typeof(CollSpecimenImageType_Enum)); poolBuilder.Load(typeof(CollTaxonomicGroup_Enum)); poolBuilder.Load(typeof(LocalisationSystem)); poolBuilder.Load(typeof(CollCircumstances_Enum)); poolBuilder.Load(typeof(CollUnitRelationType_Enum)); //poolBuilder.Load(typeof(CollEventSeriesImageType_Enum)); poolBuilder.Load(typeof(CollIdentificationCategory_Enum)); //poolBuilder.Load(typeof(CollTypeStatus_Enum)); //poolBuilder.Load(typeof(CollIdentificationQualifier_Enum)); //poolBuilder.Load(typeof(CollLabelTranscriptionState_Enum)); //poolBuilder.Load(typeof(CollLabelType_Enum)); //poolBuilder.Load(typeof(CollMaterialCategory_Enum)); //****** usedTypes.Add(typeof(Analysis)); usedTypes.Add(typeof(AnalysisTaxonomicGroup)); //usedTypes.Add(typeof(Collection)); usedTypes.Add(typeof(Property)); usedTypes.Add(typeof(CollEventImageType_Enum)); usedTypes.Add(typeof(CollSpecimenImageType_Enum)); usedTypes.Add(typeof(CollTaxonomicGroup_Enum)); usedTypes.Add(typeof(LocalisationSystem)); usedTypes.Add(typeof(CollCircumstances_Enum)); usedTypes.Add(typeof(CollUnitRelationType_Enum)); //usedTypes.Add(typeof(CollEventSeriesImageType_Enum)); usedTypes.Add(typeof(CollIdentificationCategory_Enum)); //usedTypes.Add(typeof(CollTypeStatus_Enum)); //usedTypes.Add(typeof(CollIdentificationQualifier_Enum)); //usedTypes.Add(typeof(CollLabelTranscriptionState_Enum)); //usedTypes.Add(typeof(CollLabelType_Enum)); //usedTypes.Add(typeof(CollMaterialCategory_Enum)); this.repositorySyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(repositorySerializer, syncDBSerializer, usedTypes); this.mobileDBSyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(mobileDBSerializer, syncDBSerializer, usedTypes); //this.SyncPool = poolBuilder.buildPool(); this.SyncPool=repositorySyncTool.CreateSyncPool(); this.mobileDBSyncTool.Analyze(SyncPool); } else { usedTypes.Clear(); //usedTypes.Add(typeof(CollectionSpecimen)); //usedTypes.Add(typeof(CollectionEvent)); //usedTypes.Add(typeof(CollectionEventSeries)); //usedTypes.Add(typeof(CollectionEventProperty)); //usedTypes.Add(typeof(CollectionEventLocalisation)); //usedTypes.Add(typeof(LocalisationSystem)); //usedTypes.Add(typeof(CollectionAgent)); //usedTypes.Add(typeof(CollectionSpecimenPart)); //usedTypes.Add(typeof(CollectionProject)); usedTypes.Add(typeof(IdentificationUnit)); IRestriction r = RestrictionFactory.SqlRestriction(typeof(IdentificationUnit), "0=0"); IRestriction r1 = RestrictionFactory.Gt(typeof(IdentificationUnit), "_IdentificationUnitID", 0); //usedTypes.Add(typeof(Identification)); //usedTypes.Add(typeof(IdentificationUnitAnalysis)); //usedTypes.Add(typeof(Analysis)); //usedTypes.Add(typeof(Property)); //usedTypes.Add(typeof(CollectionEventProperty)); //usedTypes.Add(typeof(CollTaxonomicGroup_Enum)); IList < ISerializableObject > list = mobileDBSerializer.Connector.LoadList(typeof(CollectionSpecimen), r1); this.repositorySyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(repositorySerializer, syncDBSerializer, divMobiTypes); this.mobileDBSyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(mobileDBSerializer, syncDBSerializer, divMobiTypes); this.SyncPool = this.mobileDBSyncTool.CreateSyncPool(r1); this.repositorySyncTool.Analyze(SyncPool); } analyzeButton.Text = "Complete"; analyzeButton.BackColor = System.Drawing.SystemColors.Info; tabControlAnalysis.Enabled = true; // Listboxen mit den Analysen befüllen conflicted =(List<SyncContainer>)SyncPool.GetSyncContainer<ConflictState>(); listBoxConflicts.Items.Clear(); foreach (SyncContainer sc in conflicted) { listBoxConflicts.Items.Add(sc); } conflictResolved=(List<SyncContainer>)SyncPool.GetSyncContainer<ConflictResolvedState>(); listBoxConflictResolved.Items.Clear(); foreach (SyncContainer sc in conflictResolved) { listBoxConflictResolved.Items.Add(sc); } synchronized = (List<SyncContainer>)SyncPool.GetSyncContainer<SynchronizedState>(); listBoxSynchronized.Items.Clear(); foreach (SyncContainer sc in synchronized) { listBoxSynchronized.Items.Add(sc); } insert = (List<SyncContainer>)SyncPool.GetSyncContainer<InsertState>(); listBoxInsert.Items.Clear(); foreach (SyncContainer sc in insert) { listBoxInsert.Items.Add(sc); } update = (List<SyncContainer>)SyncPool.GetSyncContainer<UpdateState>(); listBoxUpdate.Items.Clear(); foreach (SyncContainer sc in update) { listBoxUpdate.Items.Add(sc); } ignore = (List<SyncContainer>)SyncPool.GetSyncContainer<IgnoreState>(); listBoxIgnore.Items.Clear(); foreach (SyncContainer sc in ignore) { listBoxIgnore.Items.Add(sc); } truncate = (List<SyncContainer>)SyncPool.GetSyncContainer<TruncateState>(); listBoxTruncate.Items.Clear(); foreach (SyncContainer sc in truncate) { listBoxTruncate.Items.Add(sc); } delete = (List<SyncContainer>)SyncPool.GetSyncContainer<DeletedState>(); listBoxDelete.Items.Clear(); foreach (SyncContainer sc in delete) { listBoxDelete.Items.Add(sc); } premature = (List<SyncContainer>)SyncPool.GetSyncContainer<PrematureState>(); listBoxPremature.Items.Clear(); foreach (SyncContainer sc in premature) { listBoxPremature.Items.Add(sc); } buttonSynchronize.Enabled = true; buttonSynchronize.BackColor = System.Drawing.SystemColors.Control; }
public FreeSyncPoolBuilder(Serializer serializer, Serializer syncSerializer) { this._pool = new SyncPool(serializer, syncSerializer); this._serializer = serializer;//Übergebene Serializer für Ladevorgänge merken this._syncSerializer = syncSerializer; }
//Handle Incoming IRC Messages public static bool HandleMessages(IRCMessage pMessageInfo) { try { if (!ActiveUsers.Contains(pMessageInfo.userName)) { ActiveUsers.Add(pMessageInfo.userName); //Shout out DateTime date = MemorySystem._instance.UsersLastActiveDate(pMessageInfo.userName); if (date != DateTime.MinValue) { IRCClient.PrintConsoleMessage(pMessageInfo.userName + " is back. Last seen " + date.ToShortDateString()); } } LoadSettings(); var userName = pMessageInfo.userName.ToLower(); var message = pMessageInfo.message.ToLower(); var result = false; { var split = message.Split(new String[] { "!voice" }, StringSplitOptions.None); if (split.Length > 1) { if (String.IsNullOrEmpty(split[1])) { IRCClient.SendIRCAnPrintConsoleMessage("!Avaliable Voices are: " + String.Join(",", Sync.voiceArray)); } else { var user = ListOfUserSettings.FirstOrDefault(x => x.UserName == userName); if (user != null) { user.Voice = split[1]; } else { ListOfUserSettings.Add(new UserSettings() { UserName = userName, Voice = split[1] }); } SaveSettings(); } } } { var split = message.Split(new String[] { "!lexicon" }, StringSplitOptions.None); if (split.Length > 1) { var user = ListOfUserSettings.FirstOrDefault(x => x.UserName == userName); if (user != null) { user.Lexicon = split[1].Trim(); } else { ListOfUserSettings.Add(new UserSettings() { UserName = userName, Lexicon = split[1].Trim() }); } SaveSettings(); SyncPool.ReloadLexicons(); } } IRCClient.CheckCommand(pMessageInfo, new string[] { "!points" }, x => { IRCClient.SendIRCAnPrintConsoleMessage(MemorySystem._instance.GetUserPoints()); }); return(result); } catch (Exception ex) { Logger.Log(ex.ToString()); return(false); } }
private void analyzeButton_Click(object sender, EventArgs e) { if (analyzeButton.BackColor == System.Drawing.SystemColors.Info) { analyzeButton.BackColor = System.Drawing.SystemColors.Control; } analyzeButton.Text = "Analyzing"; if (download == true) { //Nur die Basistabellen sollen synchronisiert werden FreeSyncPoolBuilder poolBuilder = new FreeSyncPoolBuilder(repositorySerializer, syncDBSerializer); //***Analysis ist ein Speizialfall, da nur projektspezifische Daten übertrageb werden sollen //Ermittle alle Projekte aus Userprofilen, die auf dem Handy gespeichert sind DbConnection mobConn = mobileDBSerializer.CreateConnection(); mobConn.Open(); DbCommand com = mobConn.CreateCommand(); com.CommandText = "Select ProjectID From UserProfile"; DbDataReader reader = com.ExecuteReader(); List <int> projects = new List <int>(); while (reader.Read()) { projects.Add(reader.GetInt32(0)); } foreach (int project in projects) { String s = @"SELECT * FROM [DiversityCollection].[dbo].[AnalysisProjectList] (" + project + ")"; IList <ISerializableObject> list = repositorySerializer.Connector.LoadList(typeof(Analysis), s); poolBuilder.Add(list); } //******* poolBuilder.Load(typeof(AnalysisTaxonomicGroup)); //poolBuilder.Load(typeof(Collection)); poolBuilder.Load(typeof(Property)); poolBuilder.Load(typeof(CollEventImageType_Enum)); poolBuilder.Load(typeof(CollSpecimenImageType_Enum)); poolBuilder.Load(typeof(CollTaxonomicGroup_Enum)); poolBuilder.Load(typeof(LocalisationSystem)); poolBuilder.Load(typeof(CollCircumstances_Enum)); poolBuilder.Load(typeof(CollUnitRelationType_Enum)); //poolBuilder.Load(typeof(CollEventSeriesImageType_Enum)); poolBuilder.Load(typeof(CollIdentificationCategory_Enum)); //poolBuilder.Load(typeof(CollTypeStatus_Enum)); //poolBuilder.Load(typeof(CollIdentificationQualifier_Enum)); //poolBuilder.Load(typeof(CollLabelTranscriptionState_Enum)); //poolBuilder.Load(typeof(CollLabelType_Enum)); //poolBuilder.Load(typeof(CollMaterialCategory_Enum)); //****** usedTypes.Add(typeof(Analysis)); usedTypes.Add(typeof(AnalysisTaxonomicGroup)); //usedTypes.Add(typeof(Collection)); usedTypes.Add(typeof(Property)); usedTypes.Add(typeof(CollEventImageType_Enum)); usedTypes.Add(typeof(CollSpecimenImageType_Enum)); usedTypes.Add(typeof(CollTaxonomicGroup_Enum)); usedTypes.Add(typeof(LocalisationSystem)); usedTypes.Add(typeof(CollCircumstances_Enum)); usedTypes.Add(typeof(CollUnitRelationType_Enum)); //usedTypes.Add(typeof(CollEventSeriesImageType_Enum)); usedTypes.Add(typeof(CollIdentificationCategory_Enum)); //usedTypes.Add(typeof(CollTypeStatus_Enum)); //usedTypes.Add(typeof(CollIdentificationQualifier_Enum)); //usedTypes.Add(typeof(CollLabelTranscriptionState_Enum)); //usedTypes.Add(typeof(CollLabelType_Enum)); //usedTypes.Add(typeof(CollMaterialCategory_Enum)); this.repositorySyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(repositorySerializer, syncDBSerializer, usedTypes); this.mobileDBSyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(mobileDBSerializer, syncDBSerializer, usedTypes); //this.SyncPool = poolBuilder.buildPool(); this.SyncPool = repositorySyncTool.CreateSyncPool(); this.mobileDBSyncTool.Analyze(SyncPool); } else { usedTypes.Clear(); //usedTypes.Add(typeof(CollectionSpecimen)); //usedTypes.Add(typeof(CollectionEvent)); //usedTypes.Add(typeof(CollectionEventSeries)); //usedTypes.Add(typeof(CollectionEventProperty)); //usedTypes.Add(typeof(CollectionEventLocalisation)); //usedTypes.Add(typeof(LocalisationSystem)); //usedTypes.Add(typeof(CollectionAgent)); //usedTypes.Add(typeof(CollectionSpecimenPart)); //usedTypes.Add(typeof(CollectionProject)); usedTypes.Add(typeof(IdentificationUnit)); IRestriction r = RestrictionFactory.SqlRestriction(typeof(IdentificationUnit), "0=0"); IRestriction r1 = RestrictionFactory.Gt(typeof(IdentificationUnit), "_IdentificationUnitID", 0); //usedTypes.Add(typeof(Identification)); //usedTypes.Add(typeof(IdentificationUnitAnalysis)); //usedTypes.Add(typeof(Analysis)); //usedTypes.Add(typeof(Property)); //usedTypes.Add(typeof(CollectionEventProperty)); //usedTypes.Add(typeof(CollTaxonomicGroup_Enum)); IList <ISerializableObject> list = mobileDBSerializer.Connector.LoadList(typeof(CollectionSpecimen), r1); this.repositorySyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(repositorySerializer, syncDBSerializer, divMobiTypes); this.mobileDBSyncTool = new UBT.AI4.Bio.DivMobi.SyncTool.SyncTool.SyncTool(mobileDBSerializer, syncDBSerializer, divMobiTypes); this.SyncPool = this.mobileDBSyncTool.CreateSyncPool(r1); this.repositorySyncTool.Analyze(SyncPool); } analyzeButton.Text = "Complete"; analyzeButton.BackColor = System.Drawing.SystemColors.Info; tabControlAnalysis.Enabled = true; // Listboxen mit den Analysen befüllen conflicted = (List <SyncContainer>)SyncPool.GetSyncContainer <ConflictState>(); listBoxConflicts.Items.Clear(); foreach (SyncContainer sc in conflicted) { listBoxConflicts.Items.Add(sc); } conflictResolved = (List <SyncContainer>)SyncPool.GetSyncContainer <ConflictResolvedState>(); listBoxConflictResolved.Items.Clear(); foreach (SyncContainer sc in conflictResolved) { listBoxConflictResolved.Items.Add(sc); } synchronized = (List <SyncContainer>)SyncPool.GetSyncContainer <SynchronizedState>(); listBoxSynchronized.Items.Clear(); foreach (SyncContainer sc in synchronized) { listBoxSynchronized.Items.Add(sc); } insert = (List <SyncContainer>)SyncPool.GetSyncContainer <InsertState>(); listBoxInsert.Items.Clear(); foreach (SyncContainer sc in insert) { listBoxInsert.Items.Add(sc); } update = (List <SyncContainer>)SyncPool.GetSyncContainer <UpdateState>(); listBoxUpdate.Items.Clear(); foreach (SyncContainer sc in update) { listBoxUpdate.Items.Add(sc); } ignore = (List <SyncContainer>)SyncPool.GetSyncContainer <IgnoreState>(); listBoxIgnore.Items.Clear(); foreach (SyncContainer sc in ignore) { listBoxIgnore.Items.Add(sc); } truncate = (List <SyncContainer>)SyncPool.GetSyncContainer <TruncateState>(); listBoxTruncate.Items.Clear(); foreach (SyncContainer sc in truncate) { listBoxTruncate.Items.Add(sc); } delete = (List <SyncContainer>)SyncPool.GetSyncContainer <DeletedState>(); listBoxDelete.Items.Clear(); foreach (SyncContainer sc in delete) { listBoxDelete.Items.Add(sc); } premature = (List <SyncContainer>)SyncPool.GetSyncContainer <PrematureState>(); listBoxPremature.Items.Clear(); foreach (SyncContainer sc in premature) { listBoxPremature.Items.Add(sc); } buttonSynchronize.Enabled = true; buttonSynchronize.BackColor = System.Drawing.SystemColors.Control; }