示例#1
0
        private AIMLDatei AddAimlHinzugelinkteContentDatei(
            ContentDokument dokument,
            Arbeitsbereich arbeitsbereich)
        {
            if (arbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            this.AimlDateiWirdGeladen(dokument.Titel);
            AIMLDatei aimlDatei = new AIMLDatei(arbeitsbereich);

            aimlDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                aimlDatei.LiesAusString(dokument.Inhalt);
                aimlDatei.ZusatzContentUniqueId = dokument.ZusatzContentUniqueId;
                aimlDatei.Titel = dokument.Titel;
                aimlDatei.NurFuerGaitoBotExportieren = true;
                aimlDatei.ReadOnly           = true;
                aimlDatei.Unterverzeichnisse = dokument.Unterverzeichnise;
                this._dateien.Add((IArbeitsbereichDatei)aimlDatei);
                this.AimlDateiFertigGeladen();
                this.DateiAdded((IArbeitsbereichDatei)aimlDatei);
                return(aimlDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
        }
示例#2
0
 public void BestesTopicSelektieren()
 {
     if (this._aktDatei == null)
     {
         this.AktAIMLTopic = (AIMLTopic)null;
     }
     else if (!(this._aktDatei is AIMLDatei))
     {
         this.AktAIMLTopic = (AIMLTopic)null;
     }
     else
     {
         AIMLDatei aktDatei = (AIMLDatei)this._aktDatei;
         IOrderedEnumerable <AIMLTopic> source = aktDatei.getTopics().OrderBy <AIMLTopic, string>((Func <AIMLTopic, string>)(t => t.Name));
         AIMLTopic dateiGewaehlesTopic         = aktDatei.ZuletztInDieserDateiGewaehlesTopic;
         if (dateiGewaehlesTopic != null && source.Contains <AIMLTopic>(dateiGewaehlesTopic))
         {
             this.AktAIMLTopic = dateiGewaehlesTopic;
         }
         else
         {
             this.AktAIMLTopic = source.Count <AIMLTopic>() != 0 ? source.First <AIMLTopic>() : (AIMLTopic)null;
         }
     }
 }
示例#3
0
 public void BestesTopicSelektieren()
 {
     if (this._aktDatei == null)
     {
         this.AktAIMLTopic = null;
     }
     else if (!(this._aktDatei is AIMLDatei))
     {
         this.AktAIMLTopic = null;
     }
     else
     {
         AIMLDatei aIMLDatei = (AIMLDatei)this._aktDatei;
         IOrderedEnumerable <AIMLTopic> source = from t in aIMLDatei.getTopics()
                                                 orderby t.Name
                                                 select t;
         AIMLTopic zuletztInDieserDateiGewaehlesTopic = aIMLDatei.ZuletztInDieserDateiGewaehlesTopic;
         if (zuletztInDieserDateiGewaehlesTopic != null && source.Contains(zuletztInDieserDateiGewaehlesTopic))
         {
             this.AktAIMLTopic = zuletztInDieserDateiGewaehlesTopic;
         }
         else if (source.Count() == 0)
         {
             this.AktAIMLTopic = null;
         }
         else
         {
             this.AktAIMLTopic = source.First();
         }
     }
 }
示例#4
0
 private void AIMLTopicsNeuAnzeigen()
 {
   if (this._wirdGeradeNeuGezeichnet)
     return;
   this._wirdGeradeNeuGezeichnet = true;
   AIMLDatei aimlDatei = this.AimlDatei;
   if (aimlDatei == null)
   {
     this.Enabled = false;
     this.listThemen.Items.Clear();
   }
   else
   {
     IOrderedEnumerable<AIMLTopic> source = aimlDatei.getTopics().OrderBy<AIMLTopic, string>((Func<AIMLTopic, string>) (t => t.Name));
     while (this.listThemen.Items.Count < source.Count<AIMLTopic>())
       this.listThemen.Items.Add(new ListViewItem());
     int index = 0;
     foreach (AIMLTopic aimlTopic in (IEnumerable<AIMLTopic>) source)
     {
       ListViewItem listViewItem = this.listThemen.Items[index];
       listViewItem.Tag = (object) aimlTopic;
       this.ListenEintragBeschriften(listViewItem);
       ++index;
     }
     for (int count = this.listThemen.Items.Count; count > source.Count<AIMLTopic>(); count = this.listThemen.Items.Count)
       this.listThemen.Items.Remove(this.listThemen.Items[count - 1]);
     this.Enabled = true;
   }
   this.ToolStripButtonsAnzeigen();
   this._wirdGeradeNeuGezeichnet = false;
 }
 public void AlleVerweiseDieserAIMLDateiEntfernen(AIMLDatei datei)
 {
     foreach (AIMLTopic topic in datei.getTopics())
     {
         this.AlleVerweiseDiesesAIMLTopicEntfernen(topic);
     }
 }
示例#6
0
        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 += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                aimlDatei.LiesAusDatei(dateiname, this._arbeitsVerzeichnis);
                this._dateien.Add((IArbeitsbereichDatei)aimlDatei);
                this.AimlDateiFertigGeladen();
                this.DateiAdded((IArbeitsbereichDatei)aimlDatei);
                return(aimlDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
            {
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex.Message);
            }
        }
示例#7
0
        public static AIMLTopic createNewTopic(AIMLDatei aimlDatei)
        {
            XmlTextReader xmlTextReader = new XmlTextReader("<topic name=\"noname\"></topic>", XmlNodeType.Element, (XmlParserContext)null);
            int           content       = (int)xmlTextReader.MoveToContent();
            XmlNode       xmlNode       = aimlDatei.XML.ReadNode((XmlReader)xmlTextReader);

            aimlDatei.XML.DocumentElement.AppendChild(xmlNode);
            return(new AIMLTopic(xmlNode, aimlDatei));
        }
 public AIMLTopic(XmlNode xmlNode, AIMLDatei aimlDatei)
 {
     this._topicNode    = xmlNode;
     this._aimlDatei    = aimlDatei;
     this._istRootTopic = this._topicNode.Name.Equals("aiml");
     if (!this._istRootTopic && this._topicNode.Attributes.GetNamedItem("name") == null)
     {
         this._topicNode.Attributes.Append(this._topicNode.OwnerDocument.CreateAttribute("", "name", ""));
     }
 }
        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);
            }
        }
示例#10
0
        public AIMLDatei VorhandeneExterneAimlDateiImportieren(
            string externerDateiname,
            Arbeitsbereich zielArbeitsbereich)
        {
            if (zielArbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe     = AIMLDatei.TitelAusDateinameHerleiten(externerDateiname);
            bool   abgebrochen = false;
            string str         = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "aiml", out abgebrochen);

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

            aimlDatei.OnChanged += new EventHandler(this.AimlDateiOnChanged);
            try
            {
                aimlDatei.LiesAusDatei(str, this._arbeitsVerzeichnis);
                this._dateien.Add((IArbeitsbereichDatei)aimlDatei);
                this.AimlDateiFertigGeladen();
                return(aimlDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex1)
            {
                try
                {
                    File.Delete(str);
                }
                catch (Exception ex2)
                {
                }
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex1.Message);
            }
        }
        public AIMLDatei VorhandeneExterneAimlDateiImportieren(string externerDateiname, Arbeitsbereich zielArbeitsbereich)
        {
            if (zielArbeitsbereich.Dateiverwaltung != this)
            {
                throw new ApplicationException("Arbeitsbereich passt nicht zur ArbeitsbereichDateiverwaltung!");
            }
            string vorgabe = AIMLDatei.TitelAusDateinameHerleiten(externerDateiname);
            bool   flag    = false;
            string text    = this.ErmittleFreienNamenFuerAimlDatei(vorgabe, "aiml", out flag);

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

            aIMLDatei.OnChanged += this.AimlDateiOnChanged;
            try
            {
                aIMLDatei.LiesAusDatei(text, this._arbeitsVerzeichnis);
                this._dateien.Add(aIMLDatei);
                this.AimlDateiFertigGeladen();
                return(aIMLDatei);
            }
            catch (AIMLDatei.AIMLDateiNichtGeladenException ex3)
            {
                try
                {
                    File.Delete(text);
                }
                catch (Exception)
                {
                }
                throw new AIMLDatei.AIMLDateiNichtGeladenException(ex3.Message);
            }
        }
示例#12
0
        public void LiesAusDatei(string dateiname, string arbeitsbereichRootPfad_)
        {
            string text = "";

            try
            {
                StreamReader streamReader = new StreamReader(dateiname, Encoding.GetEncoding("ISO-8859-15"));
                text = streamReader.ReadToEnd();
                streamReader.Close();
            }
            catch (FileNotFoundException ex)
            {
                throw new ApplicationException(string.Format("Unable to read file '{0}'\n{1}", dateiname, ex.Message));
            }
            this._dateiname = dateiname;
            this.LiesAusString(text);
            this.Unterverzeichnisse = AIMLDatei.UnterverzeichnisseAusDateinameHerleiten(dateiname, arbeitsbereichRootPfad_);
        }
示例#13
0
 private void AIMLDateiDurchsuchen(AIMLDatei datei, string suchEingabe)
 {
     if (datei != null)
     {
         try
         {
             this.toolStripProgressBarSuchen.Value++;
         }
         catch (Exception)
         {
         }
         Application.DoEvents();
         foreach (AIMLTopic topic in datei.getTopics())
         {
             this.AIMLTopicDurchsuchen(topic, suchEingabe);
         }
     }
 }
示例#14
0
 private void VorhandeneAIMLDateiHinzufuegen(string dateiname, bool dateiAlsChangedMarkieren)
 {
     if (File.Exists(dateiname))
     {
         try
         {
             AIMLDatei aIMLDatei = (AIMLDatei)(this.AktuelleDatei = this._arbeitsbereich.Dateiverwaltung.VorhandeneExterneAimlDateiImportieren(dateiname, this._arbeitsbereich));
             if (dateiAlsChangedMarkieren && aIMLDatei != null)
             {
                 aIMLDatei.IsChanged = true;
             }
             this.AIMLDateienNeuAnzeigen(true);
         }
         catch (AIMLDatei.AIMLDateiNichtGeladenException ex)
         {
             Debugger.GlobalDebugger.FehlerZeigen(string.Format(ResReader.Reader.GetString("AIMLDateiLadeFehler"), dateiname, ex.Message), this, "LadeDatei");
         }
     }
 }
 private void AIMLTopicsNeuAnzeigen()
 {
     if (!this._wirdGeradeNeuGezeichnet)
     {
         this._wirdGeradeNeuGezeichnet = true;
         AIMLDatei aimlDatei = this.AimlDatei;
         if (aimlDatei == null)
         {
             base.Enabled = false;
             this.listThemen.Items.Clear();
         }
         else
         {
             IOrderedEnumerable <AIMLTopic> orderedEnumerable = from t in aimlDatei.getTopics()
                                                                orderby t.Name
                                                                select t;
             while (this.listThemen.Items.Count < orderedEnumerable.Count())
             {
                 ListViewItem value = new ListViewItem();
                 this.listThemen.Items.Add(value);
             }
             int num = 0;
             foreach (AIMLTopic item2 in orderedEnumerable)
             {
                 ListViewItem listViewItem = this.listThemen.Items[num];
                 listViewItem.Tag = item2;
                 this.ListenEintragBeschriften(listViewItem);
                 num++;
             }
             for (int count = this.listThemen.Items.Count; count > orderedEnumerable.Count(); count = this.listThemen.Items.Count)
             {
                 ListViewItem item = this.listThemen.Items[count - 1];
                 this.listThemen.Items.Remove(item);
             }
             base.Enabled = true;
         }
         this.ToolStripButtonsAnzeigen();
         this._wirdGeradeNeuGezeichnet = false;
     }
 }
示例#16
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);
        }
        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 void Exportieren(string exportVerzeichnis, VerzeichnisVorherLeeren verzeichnisVorherLeeren, bool alleStarTagsInExtraDateiExportieren, bool exportFuerGaitoBotDePublizierung, out bool abgebrochen)
        {
            if (!Directory.Exists(exportVerzeichnis))
            {
                throw new ApplicationException(string.Format("Exportverzeichnis '{0}' nicht vorhanden!", exportVerzeichnis));
            }
            switch (verzeichnisVorherLeeren)
            {
            case VerzeichnisVorherLeeren.leerenUndVorherFragen:
            {
                DialogResult dialogResult = MessageBox.Show(string.Format(ResReader.Reader.GetString("ExportVerzeichnisWirklichLeeren"), exportVerzeichnis), ResReader.Reader.GetString("Export"), MessageBoxButtons.YesNo);
                if (dialogResult != DialogResult.Yes)
                {
                    abgebrochen = true;
                    return;
                }
                goto default;
            }

            default:
            {
                string[] directories = Directory.GetDirectories(exportVerzeichnis);
                string[] array       = directories;
                foreach (string text in array)
                {
                    try
                    {
                        Directory.Delete(text, true);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(string.Format(global::MultiLang.ml.ml_string(70, "Das Verzeichnis '{0}' konnte nicht gelöscht werden: {1}"), text, ex.Message));
                        abgebrochen = true;
                        return;
                    }
                }
                string[] files  = Directory.GetFiles(exportVerzeichnis);
                string[] array2 = files;
                foreach (string text2 in array2)
                {
                    try
                    {
                        File.Delete(text2);
                    }
                    catch (Exception ex2)
                    {
                        MessageBox.Show(string.Format(global::MultiLang.ml.ml_string(71, "Die Datei '{0}' konnte nicht gelöscht werden: {1}"), text2, ex2.Message));
                        abgebrochen = true;
                        return;
                    }
                }
                break;
            }

            case VerzeichnisVorherLeeren.nichtLeeren:
                break;
            }
            if (alleStarTagsInExtraDateiExportieren)
            {
                StringCollection stringCollection = new StringCollection();
                foreach (IArbeitsbereichDatei item in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
                {
                    if (item is AIMLDatei)
                    {
                        AIMLDatei aIMLDatei  = (AIMLDatei)item;
                        AIMLDatei aIMLDatei2 = new AIMLDatei(this);
                        aIMLDatei2.LiesAusString(aIMLDatei.XML.OuterXml);
                        List <AIMLCategory> list = new List <AIMLCategory>();
                        foreach (AIMLCategory category in aIMLDatei2.RootTopic.Categories)
                        {
                            if (category.That == "" && category.Pattern == "*")
                            {
                                stringCollection.Add(category.Template);
                                list.Add(category);
                            }
                        }
                        foreach (AIMLCategory item2 in list)
                        {
                            aIMLDatei2.RootTopic.LoescheCategory(item2);
                        }
                        StringBuilder stringBuilder      = new StringBuilder();
                        string[]      unterverzeichnisse = aIMLDatei.Unterverzeichnisse;
                        foreach (string arg in unterverzeichnisse)
                        {
                            stringBuilder.AppendFormat("{0}_", arg);
                        }
                        string text4 = aIMLDatei2.Dateiname = string.Format("{0}\\{1}{2}.aiml", exportVerzeichnis, stringBuilder.ToString(), aIMLDatei.Titel);
                        bool   flag  = false;
                        aIMLDatei2.Save(out flag);
                    }
                }
                if (stringCollection.Count != 0)
                {
                    StringBuilder stringBuilder2 = new StringBuilder();
                    stringBuilder2.Append("<pattern>*</pattern><template><random>");
                    StringEnumerator enumerator4 = stringCollection.GetEnumerator();
                    try
                    {
                        while (enumerator4.MoveNext())
                        {
                            string current4 = enumerator4.Current;
                            stringBuilder2.AppendFormat("<li>{0}</li>", current4);
                        }
                    }
                    finally
                    {
                        IDisposable disposable = enumerator4 as IDisposable;
                        if (disposable != null)
                        {
                            disposable.Dispose();
                        }
                    }
                    stringBuilder2.Append("</random></template>");
                    AIMLDatei aIMLDatei3 = new AIMLDatei(this);
                    aIMLDatei3.LeerFuellen();
                    aIMLDatei3.Dateiname = string.Format("{0}\\_stars_.aiml", exportVerzeichnis);
                    AIMLCategory aIMLCategory = aIMLDatei3.RootTopic.AddNewCategory();
                    aIMLCategory.ContentNode.InnerXml = stringBuilder2.ToString();
                    bool flag2 = false;
                    if (File.Exists(aIMLDatei3.Dateiname))
                    {
                        File.Delete(aIMLDatei3.Dateiname);
                    }
                    aIMLDatei3.Save(out flag2);
                }
                foreach (IArbeitsbereichDatei item3 in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
                {
                    if (item3 is StartupDatei)
                    {
                        StartupDatei  startupDatei        = (StartupDatei)item3;
                        StringBuilder stringBuilder3      = new StringBuilder();
                        string[]      unterverzeichnisse2 = item3.Unterverzeichnisse;
                        foreach (string baustein in unterverzeichnisse2)
                        {
                            stringBuilder3.AppendFormat("{0}_", this.DateinameBausteinBereinigt(baustein));
                        }
                        string text5     = "startup";
                        string text6     = string.Format("{0}\\{1}{2}.{3}", exportVerzeichnis, stringBuilder3.ToString(), this.DateinameBausteinBereinigt(startupDatei.Titel), text5);
                        string dateiname = startupDatei.Dateiname;
                        if (string.IsNullOrEmpty(dateiname))
                        {
                            ToolboxStrings.String2File(startupDatei.XML.OuterXml, text6);
                        }
                        else
                        {
                            File.Copy(dateiname, text6, true);
                        }
                    }
                }
            }
            else
            {
                foreach (IArbeitsbereichDatei item4 in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
                {
                    StringBuilder stringBuilder4      = new StringBuilder();
                    string[]      unterverzeichnisse3 = item4.Unterverzeichnisse;
                    foreach (string baustein2 in unterverzeichnisse3)
                    {
                        stringBuilder4.AppendFormat("{0}_", this.DateinameBausteinBereinigt(baustein2));
                    }
                    string text7 = "";
                    if (item4 is AIMLDatei)
                    {
                        text7 = "aiml";
                        goto IL_05c3;
                    }
                    if (item4 is StartupDatei)
                    {
                        text7 = "startup";
                        goto IL_05c3;
                    }
                    throw new ApplicationException(string.Format("Datei '{0}' hat einen unbekannten Typ", item4.Titel));
IL_05c3:
                    string text8 = string.Format("{0}\\{1}{2}.{3}", exportVerzeichnis, stringBuilder4.ToString(), this.DateinameBausteinBereinigt(item4.Titel), text7);
                    string dateiname2 = item4.Dateiname;
                    if (string.IsNullOrEmpty(dateiname2))
                    {
                        ToolboxStrings.String2File(item4.XML.OuterXml, text8);
                    }
                    else
                    {
                        File.Copy(dateiname2, text8, true);
                    }
                }
            }
            abgebrochen = false;
        }
示例#19
0
 public void Exportieren(
     string exportVerzeichnis,
     Arbeitsbereich.VerzeichnisVorherLeeren verzeichnisVorherLeeren,
     bool alleStarTagsInExtraDateiExportieren,
     bool exportFuerGaitoBotDePublizierung,
     out bool abgebrochen)
 {
     if (!Directory.Exists(exportVerzeichnis))
     {
         throw new ApplicationException(string.Format("Exportverzeichnis '{0}' nicht vorhanden!", (object)exportVerzeichnis));
     }
     if ((uint)verzeichnisVorherLeeren > 0U)
     {
         if (verzeichnisVorherLeeren == Arbeitsbereich.VerzeichnisVorherLeeren.leerenUndVorherFragen && MessageBox.Show(string.Format(ResReader.Reader.GetString("ExportVerzeichnisWirklichLeeren"), (object)exportVerzeichnis), ResReader.Reader.GetString("Export"), MessageBoxButtons.YesNo) != DialogResult.Yes)
         {
             abgebrochen = true;
             return;
         }
         foreach (string directory in Directory.GetDirectories(exportVerzeichnis))
         {
             try
             {
                 Directory.Delete(directory, true);
             }
             catch (Exception ex)
             {
                 int num = (int)MessageBox.Show(string.Format(ml.ml_string(70, "Das Verzeichnis '{0}' konnte nicht gelöscht werden: {1}"), (object)directory, (object)ex.Message));
                 abgebrochen = true;
                 return;
             }
         }
         foreach (string file in Directory.GetFiles(exportVerzeichnis))
         {
             try
             {
                 File.Delete(file);
             }
             catch (Exception ex)
             {
                 int num = (int)MessageBox.Show(string.Format(ml.ml_string(71, "Die Datei '{0}' konnte nicht gelöscht werden: {1}"), (object)file, (object)ex.Message));
                 abgebrochen = true;
                 return;
             }
         }
     }
     if (alleStarTagsInExtraDateiExportieren)
     {
         StringCollection stringCollection = new StringCollection();
         foreach (IArbeitsbereichDatei arbeitsbereichDatei in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
         {
             if (arbeitsbereichDatei is AIMLDatei)
             {
                 AIMLDatei aimlDatei1 = (AIMLDatei)arbeitsbereichDatei;
                 AIMLDatei aimlDatei2 = new AIMLDatei(this);
                 aimlDatei2.LiesAusString(aimlDatei1.XML.OuterXml);
                 List <AIMLCategory> aimlCategoryList = new List <AIMLCategory>();
                 foreach (AIMLCategory category in aimlDatei2.RootTopic.Categories)
                 {
                     if (category.That == "" && category.Pattern == "*")
                     {
                         stringCollection.Add(category.Template);
                         aimlCategoryList.Add(category);
                     }
                 }
                 foreach (AIMLCategory category in aimlCategoryList)
                 {
                     aimlDatei2.RootTopic.LoescheCategory(category);
                 }
                 StringBuilder stringBuilder = new StringBuilder();
                 foreach (string str in aimlDatei1.Unterverzeichnisse)
                 {
                     stringBuilder.AppendFormat("{0}_", (object)str);
                 }
                 string str1 = string.Format("{0}\\{1}{2}.aiml", (object)exportVerzeichnis, (object)stringBuilder.ToString(), (object)aimlDatei1.Titel);
                 aimlDatei2.Dateiname = str1;
                 bool cancel = false;
                 aimlDatei2.Save(out cancel);
             }
         }
         if ((uint)stringCollection.Count > 0U)
         {
             StringBuilder stringBuilder = new StringBuilder();
             stringBuilder.Append("<pattern>*</pattern><template><random>");
             foreach (string str in stringCollection)
             {
                 stringBuilder.AppendFormat("<li>{0}</li>", (object)str);
             }
             stringBuilder.Append("</random></template>");
             AIMLDatei aimlDatei = new AIMLDatei(this);
             aimlDatei.LeerFuellen();
             aimlDatei.Dateiname = string.Format("{0}\\_stars_.aiml", (object)exportVerzeichnis);
             aimlDatei.RootTopic.AddNewCategory().ContentNode.InnerXml = stringBuilder.ToString();
             bool cancel = false;
             if (File.Exists(aimlDatei.Dateiname))
             {
                 File.Delete(aimlDatei.Dateiname);
             }
             aimlDatei.Save(out cancel);
         }
         foreach (IArbeitsbereichDatei arbeitsbereichDatei in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
         {
             if (arbeitsbereichDatei is StartupDatei)
             {
                 StartupDatei  startupDatei  = (StartupDatei)arbeitsbereichDatei;
                 StringBuilder stringBuilder = new StringBuilder();
                 foreach (string baustein in arbeitsbereichDatei.Unterverzeichnisse)
                 {
                     stringBuilder.AppendFormat("{0}_", (object)this.DateinameBausteinBereinigt(baustein));
                 }
                 string str1      = "startup";
                 string str2      = string.Format("{0}\\{1}{2}.{3}", (object)exportVerzeichnis, (object)stringBuilder.ToString(), (object)this.DateinameBausteinBereinigt(startupDatei.Titel), (object)str1);
                 string dateiname = startupDatei.Dateiname;
                 if (string.IsNullOrEmpty(dateiname))
                 {
                     ToolboxStrings.String2File(startupDatei.XML.OuterXml, str2);
                 }
                 else
                 {
                     File.Copy(dateiname, str2, true);
                 }
             }
         }
     }
     else
     {
         foreach (IArbeitsbereichDatei arbeitsbereichDatei in this.GetZuExportierendeDateien(exportFuerGaitoBotDePublizierung))
         {
             StringBuilder stringBuilder = new StringBuilder();
             foreach (string baustein in arbeitsbereichDatei.Unterverzeichnisse)
             {
                 stringBuilder.AppendFormat("{0}_", (object)this.DateinameBausteinBereinigt(baustein));
             }
             string str1;
             if (arbeitsbereichDatei is AIMLDatei)
             {
                 str1 = "aiml";
             }
             else
             {
                 if (!(arbeitsbereichDatei is StartupDatei))
                 {
                     throw new ApplicationException(string.Format("Datei '{0}' hat einen unbekannten Typ", (object)arbeitsbereichDatei.Titel));
                 }
                 str1 = "startup";
             }
             string str2      = string.Format("{0}\\{1}{2}.{3}", (object)exportVerzeichnis, (object)stringBuilder.ToString(), (object)this.DateinameBausteinBereinigt(arbeitsbereichDatei.Titel), (object)str1);
             string dateiname = arbeitsbereichDatei.Dateiname;
             if (string.IsNullOrEmpty(dateiname))
             {
                 ToolboxStrings.String2File(arbeitsbereichDatei.XML.OuterXml, str2);
             }
             else
             {
                 File.Copy(dateiname, str2, true);
             }
         }
     }
     abgebrochen = false;
 }
示例#20
0
 private void DateiListenAnzeige_DragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(AIMLCategory)))
     {
         AIMLCategory aIMLCategory = (AIMLCategory)e.Data.GetData(typeof(AIMLCategory));
         if (aIMLCategory != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei != null && !arbeitsbereichDatei.ReadOnly)
             {
                 if (arbeitsbereichDatei != aIMLCategory.AIMLTopic.AIMLDatei)
                 {
                     if (arbeitsbereichDatei is AIMLDatei)
                     {
                         AIMLDatei    aIMLDatei     = (AIMLDatei)arbeitsbereichDatei;
                         string       innerXml      = aIMLCategory.ContentNode.InnerXml;
                         AIMLCategory aIMLCategory2 = aIMLDatei.RootTopic.AddNewCategory();
                         aIMLCategory2.ContentNode.InnerXml = innerXml;
                         e.Effect = DragDropEffects.Move;
                     }
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
     }
     else if (e.Data.GetDataPresent(typeof(AIMLTopic)))
     {
         AIMLTopic aIMLTopic = (AIMLTopic)e.Data.GetData(typeof(AIMLTopic));
         if (aIMLTopic != null)
         {
             IArbeitsbereichDatei arbeitsbereichDatei2 = this.DateiUnterPos(new Point(e.X, e.Y));
             if (arbeitsbereichDatei2 != null && !arbeitsbereichDatei2.ReadOnly)
             {
                 if (arbeitsbereichDatei2 != aIMLTopic.AIMLDatei)
                 {
                     if (arbeitsbereichDatei2 is AIMLDatei)
                     {
                         AIMLDatei aIMLDatei2 = (AIMLDatei)arbeitsbereichDatei2;
                         AIMLTopic aIMLTopic2 = aIMLDatei2.AddNewTopic();
                         aIMLTopic2.TopicNode.InnerXml = aIMLTopic.TopicNode.InnerXml;
                         aIMLTopic2.Name = aIMLTopic.Name;
                         e.Effect        = DragDropEffects.Move;
                     }
                 }
                 else
                 {
                     e.Effect = DragDropEffects.None;
                 }
             }
             else
             {
                 e.Effect = DragDropEffects.None;
             }
         }
     }
     else
     {
         e.Effect = DragDropEffects.None;
     }
 }