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;
 }
Esempio n. 2
0
        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;
        }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
        //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);
            }
        }
 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;
 }
Esempio n. 9
0
        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;
        }