コード例 #1
0
        private StartupDatei AddGaitoBotConfig_VorhandeneDatei(
            string dateiname,
            Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            this.AimlDateiWirdGeladen(dateiname);
            StartupDatei startupDatei = new StartupDatei(arbeitsbereich);

            startupDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                startupDatei.LiesAusDatei(dateiname, this._arbeitsVerzeichnis);
                this._dateien.Add((IArbeitsbereichDatei)startupDatei);
                this.AimlDateiFertigGeladen();
                this.DateiAdded((IArbeitsbereichDatei)startupDatei);
                return(startupDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
        }
コード例 #2
0
 protected virtual void ArbeitsbereichEntfernt(Arbeitsbereich arbeitsbereich)
 {
     if (this.ArbeitsbereichEntferntEvent != null)
     {
         this.ArbeitsbereichEntferntEvent(this, new EventArgs <Arbeitsbereich>(arbeitsbereich));
     }
 }
コード例 #3
0
        private StartupDatei AddStartUpdateiHinzugelinkteContent(
            ContentDokument dokument,
            Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            this.AimlDateiWirdGeladen(dokument.Titel);
            StartupDatei startupDatei = new StartupDatei(arbeitsbereich);

            startupDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                startupDatei.LiesAusString(dokument.Inhalt);
                startupDatei.Titel = dokument.Titel;
                startupDatei.ZusatzContentUniqueId      = dokument.ZusatzContentUniqueId;
                startupDatei.NurFuerGaitoBotExportieren = true;
                startupDatei.ReadOnly           = true;
                startupDatei.Unterverzeichnisse = dokument.Unterverzeichnise;
                this._dateien.Add((IArbeitsbereichDatei)startupDatei);
                this.AimlDateiFertigGeladen();
                this.DateiAdded((IArbeitsbereichDatei)startupDatei);
                return(startupDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
        }
        public StartupDatei AddLeereStartupDatei(Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            bool   flag      = default(bool);
            string dateiname = this.ErmittleFreienNamenFuerAimlDatei((string)null, "startup", out flag);

            if (flag)
            {
                return(null);
            }
            StartupDatei startupDatei = new StartupDatei(arbeitsbereich);

            startupDatei.OnChanged += this.AimlDateiOnChanged;
            startupDatei.LeerFuellen();
            startupDatei.Dateiname = dateiname;
            bool flag2 = default(bool);

            startupDatei.Save(out flag2);
            this._dateien.Add(startupDatei);
            this.DateiAdded(startupDatei);
            return(startupDatei);
        }
コード例 #5
0
        public StartupDatei AddLeereStartupDatei(Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            bool   abgebrochen;
            string str = this.ErmittleFreienNamenFuerAimlDatei((string)null, "startup", out abgebrochen);

            if (abgebrochen)
            {
                return((StartupDatei)null);
            }
            StartupDatei startupDatei = new StartupDatei(arbeitsbereich);

            startupDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            startupDatei.LeerFuellen();
            startupDatei.Dateiname = str;
            bool cancel;

            startupDatei.Save(out cancel);
            this._dateien.Add((IArbeitsbereichDatei)startupDatei);
            this.DateiAdded((IArbeitsbereichDatei)startupDatei);
            return(startupDatei);
        }
コード例 #6
0
 public void ArbeitsbereichEntfernen(Arbeitsbereich arbeitsbereich)
 {
     if (this._arbeitsbereiche.Contains(arbeitsbereich))
     {
         this._arbeitsbereiche.Remove(arbeitsbereich);
         this.ArbeitsbereichEntfernt(arbeitsbereich);
     }
 }
コード例 #7
0
        public bool VorhandenenArbeitsbereichOeffnen(string arbeitsbereichVerzeichnis)
        {
            Arbeitsbereich arbeitsbereich = new Arbeitsbereich(arbeitsbereichVerzeichnis);

            this._arbeitsbereiche.Add(arbeitsbereich);
            this.ArbeitsbereichAdded(arbeitsbereich);
            return(true);
        }
コード例 #8
0
 protected virtual void ArbeitsbereichEntfernt(Arbeitsbereich arbeitsbereich)
 {
     if (this.ArbeitsbereichEntferntEvent == null)
     {
         return;
     }
     this.ArbeitsbereichEntferntEvent((object)this, new EventArgs <Arbeitsbereich>(arbeitsbereich));
 }
コード例 #9
0
 public static void WoSuchenAuswahlFuellen(
     ToolStripComboBox combo,
     Arbeitsbereich.WoSuchenOrte welchenSelektieren)
 {
     Arbeitsbereich.WoSuchenAuswahlFuellenEiner(combo, Arbeitsbereich.WoSuchenOrte.ImArbeitsbereich, welchenSelektieren);
     Arbeitsbereich.WoSuchenAuswahlFuellenEiner(combo, Arbeitsbereich.WoSuchenOrte.InAktuellerAIMLDatei, welchenSelektieren);
     Arbeitsbereich.WoSuchenAuswahlFuellenEiner(combo, Arbeitsbereich.WoSuchenOrte.InAktuellemTopic, welchenSelektieren);
 }
コード例 #10
0
        private static void WoSuchenAuswahlFuellenEiner(ToolStripComboBox combo, WoSuchenOrte ort, WoSuchenOrte welchenSelektieren)
        {
            int selectedIndex = combo.Items.Add(Arbeitsbereich.WoSuchenOrt2Name(ort));

            if (ort == welchenSelektieren)
            {
                combo.SelectedIndex = selectedIndex;
            }
        }
コード例 #11
0
 public StartupDatei(Arbeitsbereich arbeitsbereich)
 {
     this.Unterverzeichnisse = new string[0];
     this._arbeitsbereich    = arbeitsbereich;
     this.XML = new XmlDocument();
     this.XML.PreserveWhitespace = false;
     this.XML.NodeChanged       += new XmlNodeChangedEventHandler(this.XMLChangedEvent);
     this.XML.NodeInserted      += new XmlNodeChangedEventHandler(this.XMLChangedEvent);
     this.XML.NodeRemoved       += new XmlNodeChangedEventHandler(this.XMLChangedEvent);
 }
コード例 #12
0
 public AIMLDatei(Arbeitsbereich arbeitsbereich)
 {
     this.Arbeitsbereich     = arbeitsbereich;
     this.Unterverzeichnisse = new string[0];
     this.XML = new XmlDocument();
     this.XML.PreserveWhitespace = true;
     this.XML.NodeChanged       += this.XMLChangedEvent;
     this.XML.NodeInserted      += this.XMLChangedEvent;
     this.XML.NodeRemoved       += this.XMLChangedEvent;
 }
コード例 #13
0
        public void VordefinierteDateienHinzulinken(Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            ContentManager contentManager = new ContentManager();

            foreach (string contentElementUniqueId in arbeitsbereich.ContentElementUniqueIds)
            {
                string uniqueId = contentElementUniqueId;
                if (!this._dateien.Where <IArbeitsbereichDatei>((Func <IArbeitsbereichDatei, bool>)(d =>
                {
                    if (!string.IsNullOrEmpty(d.ZusatzContentUniqueId))
                    {
                        return(d.ZusatzContentUniqueId == uniqueId);
                    }
                    return(false);
                })).Any <IArbeitsbereichDatei>())
                {
                    foreach (ContentDokument dokument in contentManager.GetDokumente(uniqueId))
                    {
                        string dateiExtension = dokument.DateiExtension;
                        if (!(dateiExtension == "aiml"))
                        {
                            if (!(dateiExtension == "startup"))
                            {
                                throw new ApplicationException(string.Format("Unbekannte Content-Datei-Extension '{0}' in '{1}'", (object)dokument.DateiExtension, (object)dokument.Titel));
                            }
                            this.DateiAdded((IArbeitsbereichDatei)this.AddStartUpdateiHinzugelinkteContent(dokument, arbeitsbereich));
                        }
                        else
                        {
                            this.DateiAdded((IArbeitsbereichDatei)this.AddAimlHinzugelinkteContentDatei(dokument, arbeitsbereich));
                        }
                    }
                }
            }
            List <IArbeitsbereichDatei> arbeitsbereichDateiList = new List <IArbeitsbereichDatei>();

            foreach (IArbeitsbereichDatei arbeitsbereichDatei in this.Dateien)
            {
                if (!string.IsNullOrEmpty(arbeitsbereichDatei.ZusatzContentUniqueId) && !((IEnumerable <string>)arbeitsbereich.ContentElementUniqueIds).Contains <string>(arbeitsbereichDatei.ZusatzContentUniqueId))
                {
                    arbeitsbereichDateiList.Add(arbeitsbereichDatei);
                }
            }
            foreach (IArbeitsbereichDatei datei in arbeitsbereichDateiList)
            {
                this.DateiLoeschen(datei, arbeitsbereich);
            }
        }
コード例 #14
0
 private void ArbeitsbereichDurchsuchen(Arbeitsbereich arbeitsbereich, string suchEingabe)
 {
     if (arbeitsbereich != null)
     {
         foreach (IArbeitsbereichDatei item in arbeitsbereich.Dateiverwaltung.Dateien)
         {
             if (item is AIMLDatei)
             {
                 this.AIMLDateiDurchsuchen((AIMLDatei)item, suchEingabe);
             }
         }
     }
 }
コード例 #15
0
        private static void WoSuchenAuswahlFuellenEiner(
            ToolStripComboBox combo,
            Arbeitsbereich.WoSuchenOrte ort,
            Arbeitsbereich.WoSuchenOrte welchenSelektieren)
        {
            int num = combo.Items.Add((object)Arbeitsbereich.WoSuchenOrt2Name(ort));

            if (ort != welchenSelektieren)
            {
                return;
            }
            combo.SelectedIndex = num;
        }
コード例 #16
0
 private void ArbeitsbereichDurchsuchen(Arbeitsbereich arbeitsbereich, string suchEingabe)
 {
     if (arbeitsbereich == null)
     {
         return;
     }
     foreach (IArbeitsbereichDatei arbeitsbereichDatei in arbeitsbereich.Dateiverwaltung.Dateien)
     {
         if (arbeitsbereichDatei is AIMLDatei)
         {
             this.AIMLDateiDurchsuchen((AIMLDatei)arbeitsbereichDatei, suchEingabe);
         }
     }
 }
        public void VordefinierteDateienHinzulinken(Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            ContentManager contentManager = new ContentManager();

            string[] contentElementUniqueIds = arbeitsbereich.ContentElementUniqueIds;
            foreach (string uniqueId in contentElementUniqueIds)
            {
                if (!(from d in this._dateien
                      where !string.IsNullOrEmpty(d.ZusatzContentUniqueId) && d.ZusatzContentUniqueId == uniqueId
                      select d).Any())
                {
                    List <ContentDokument> dokumente = contentManager.GetDokumente(uniqueId);
                    foreach (ContentDokument item in dokumente)
                    {
                        string dateiExtension = item.DateiExtension;
                        if (!(dateiExtension == "aiml"))
                        {
                            if (dateiExtension == "startup")
                            {
                                StartupDatei datei = this.AddStartUpdateiHinzugelinkteContent(item, arbeitsbereich);
                                this.DateiAdded(datei);
                                continue;
                            }
                            throw new ApplicationException(string.Format("Unbekannte Content-Datei-Extension '{0}' in '{1}'", item.DateiExtension, item.Titel));
                        }
                        AIMLDatei datei2 = this.AddAimlHinzugelinkteContentDatei(item, arbeitsbereich);
                        this.DateiAdded(datei2);
                    }
                }
            }
            List <IArbeitsbereichDatei> list = new List <IArbeitsbereichDatei>();

            foreach (IArbeitsbereichDatei item2 in this.Dateien)
            {
                if (!string.IsNullOrEmpty(item2.ZusatzContentUniqueId) && !arbeitsbereich.ContentElementUniqueIds.Contains(item2.ZusatzContentUniqueId))
                {
                    list.Add(item2);
                }
            }
            foreach (IArbeitsbereichDatei item3 in list)
            {
                this.DateiLoeschen(item3, arbeitsbereich);
            }
        }
コード例 #18
0
        public bool NeuenArbeitsbereichErstellenUndOeffnen()
        {
            bool   abgebrochen = false;
            string str         = InputBox.Show(ResReader.Reader.GetString("NamenFuerNeuenArbeitsbereichEingeben"), ResReader.Reader.GetString("NeuenArbeitsbereicherzeugen"), ResReader.Reader.GetString("unbenannt"), out abgebrochen);

            if (abgebrochen)
            {
                return(false);
            }
            Arbeitsbereich arbeitsbereich = new Arbeitsbereich();

            arbeitsbereich.Name = str;
            this._arbeitsbereiche.Add(arbeitsbereich);
            this.ArbeitsbereichAdded(arbeitsbereich);
            return(true);
        }
コード例 #19
0
        public StartupDatei VorhandeneExterneStartupDateiImportieren(
            string externerDateiname,
            Arbeitsbereich zielArbeitsbereich)
        {
            if (zielArbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe     = StartupDatei.TitelAusDateinameHerleiten(externerDateiname);
            bool   abgebrochen = false;
            string str         = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "startup", out abgebrochen);

            if (abgebrochen)
            {
                return((StartupDatei)null);
            }
            try
            {
                File.Copy(externerDateiname, str);
            }
            catch (Exception ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
            this.AimlDateiWirdGeladen(str);
            StartupDatei startupDatei = new StartupDatei(zielArbeitsbereich);

            startupDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                startupDatei.LiesAusDatei(str, this._arbeitsVerzeichnis);
                this._dateien.Add((IArbeitsbereichDatei)startupDatei);
                this.AimlDateiFertigGeladen();
                return(startupDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex1)
            {
                try
                {
                    File.Delete(str);
                }
                catch (Exception ex2)
                {
                }
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex1.Message);
            }
        }
コード例 #20
0
        public IArbeitsbereichDatei LadeEinzelneGaitoBotConfigDateiDirektOhneKopieEin(
            string dateiname,
            Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            StartupDatei startupDatei;

            try
            {
                startupDatei = this.AddGaitoBotConfig_VorhandeneDatei(dateiname, arbeitsbereich);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                Debugger.GlobalDebugger.FehlerZeigen(string.Format(ResReader.Reader.GetString("AIMLDateiLadeFehler"), (object)dateiname, (object)ex.Message), (object)this, "LadeDatei");
                return((IArbeitsbereichDatei)null);
            }
            return((IArbeitsbereichDatei)startupDatei);
        }
コード例 #21
0
        public AIMLDatei AddAimlLeereDatei(
            Arbeitsbereich arbeitsbereich,
            bool ersteDateiMitBeispielen)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe = (string)null;

            if (ersteDateiMitBeispielen)
            {
                vorgabe = ResReader.Reader.GetString("MeineErsteAimlDatei");
            }
            bool   abgebrochen;
            string str = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "aiml", out abgebrochen);

            if (abgebrochen)
            {
                return((AIMLDatei)null);
            }
            AIMLDatei aimlDatei = new AIMLDatei(arbeitsbereich);

            aimlDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            if (ersteDateiMitBeispielen)
            {
                aimlDatei.MitTargetBotStartFuellen();
            }
            else
            {
                aimlDatei.LeerFuellen();
            }
            aimlDatei.Dateiname = str;
            bool cancel;

            aimlDatei.Save(out cancel);
            this._dateien.Add((IArbeitsbereichDatei)aimlDatei);
            this.DateiAdded((IArbeitsbereichDatei)aimlDatei);
            return(aimlDatei);
        }
コード例 #22
0
        public bool DateiLoeschen(IArbeitsbereichDatei datei, Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            bool flag1 = !string.IsNullOrEmpty(datei.ZusatzContentUniqueId);
            bool flag2;

            if (this._dateien.Contains(datei))
            {
                if (flag1 || MessageBox.Show(string.Format(ResReader.Reader.GetString("AIMLDateiWirklichLoeschen"), (object)datei.Dateiname), "", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                {
                    try
                    {
                        if (!flag1)
                        {
                            File.Delete(datei.Dateiname);
                        }
                        this._dateien.Remove(datei);
                        arbeitsbereich.Verlauf.AlleVerweiseDieserDateiEntfernen(datei);
                        flag2 = true;
                    }
                    catch (Exception ex)
                    {
                        flag2 = false;
                    }
                }
                else
                {
                    flag2 = false;
                }
            }
            else
            {
                flag2 = false;
            }
            this.AimlDateiRemoved(datei);
            return(flag2);
        }
        public AIMLDatei AddAimlLeereDatei(Arbeitsbereich arbeitsbereich, bool ersteDateiMitBeispielen)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe = null;

            if (ersteDateiMitBeispielen)
            {
                vorgabe = ResReader.Reader.GetString("MeineErsteAimlDatei");
            }
            bool   flag      = default(bool);
            string dateiname = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "aiml", out flag);

            if (flag)
            {
                return(null);
            }
            AIMLDatei aIMLDatei = new AIMLDatei(arbeitsbereich);

            aIMLDatei.OnChanged += this.AimlDateiOnChanged;
            if (ersteDateiMitBeispielen)
            {
                aIMLDatei.MitTargetBotStartFuellen();
            }
            else
            {
                aIMLDatei.LeerFuellen();
            }
            aIMLDatei.Dateiname = dateiname;
            bool flag2 = default(bool);

            aIMLDatei.Save(out flag2);
            this._dateien.Add(aIMLDatei);
            this.DateiAdded(aIMLDatei);
            return(aIMLDatei);
        }
        public AIMLDatei AddAimlVorhandeneDatei(string dateiname, Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            this.AimlDateiWirdGeladen(dateiname);
            AIMLDatei aIMLDatei = new AIMLDatei(arbeitsbereich);

            aIMLDatei.OnChanged += this.AimlDateiOnChanged;
            try
            {
                aIMLDatei.LiesAusDatei(dateiname, this._arbeitsVerzeichnis);
                this._dateien.Add(aIMLDatei);
                this.AimlDateiFertigGeladen();
                this.DateiAdded(aIMLDatei);
                return(aIMLDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
        }
        public StartupDatei VorhandeneExterneStartupDateiImportieren(string externerDateiname, Arbeitsbereich zielArbeitsbereich)
        {
            if (zielArbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe = StartupDatei.TitelAusDateinameHerleiten(externerDateiname);
            bool   flag    = false;
            string text    = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "startup", out flag);

            if (flag)
            {
                return(null);
            }
            try
            {
                File.Copy(externerDateiname, text);
            }
            catch (Exception ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
            this.AimlDateiWirdGeladen(text);
            StartupDatei startupDatei = new StartupDatei(zielArbeitsbereich);

            startupDatei.OnChanged += this.AimlDateiOnChanged;
            try
            {
                startupDatei.LiesAusDatei(text, this._arbeitsVerzeichnis);
                this._dateien.Add(startupDatei);
                this.AimlDateiFertigGeladen();
                return(startupDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex3)
            {
                try
                {
                    File.Delete(text);
                }
                catch (Exception)
                {
                }
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex3.Message);
            }
        }
 public IArbeitsbereichDatei LadeEinzelneAimlDateiDirektOhneKopieEin(string dateiname, Arbeitsbereich arbeitsbereich)
 {
     if (arbeitsbereich.Dateiverwaltung != this)
     {
         throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
     }
     try
     {
         return(this.AddAimlVorhandeneDatei(dateiname, arbeitsbereich));
     }
     catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
     {
         Debugger.GlobalDebugger.FehlerZeigen(string.Format(ResReader.Reader.GetString("AIMLDateiLadeFehler"), dateiname, ex.Message), this, "LadeDatei");
         return(null);
     }
 }
コード例 #27
0
 public WorkflowAnalyser(Arbeitsbereich arbeitsbereich, AIMLCategory kategorie)
 {
     this._arbeitsbereich = arbeitsbereich;
     this._kategorie      = kategorie;
 }