예제 #1
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);
            }
        }
예제 #2
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);
            }
        }