Exemple #1
0
        /// <summary>
        /// Startet einen neuen Forum-Thread und speichert darin den neuen Artikel.
        /// </summary>
        /// <param name="threadFile"></param>
        /// <param name="name"></param>
        /// <param name="email"></param>
        /// <param name="title"></param>
        /// <param name="text"></param>
        public void AddForumArticle(string threadFile,
                                    string name,
                                    string email,
                                    string title,
                                    string text)
        {
            object objLock = new object();

            lock (objLock)
            {
                // Existiert das Thread-File bereits, so ist etwas schief gelaufen und
                // die Daten dürfen hier nicht gespeichert werden.
                if (!File.Exists(GetDataPath(threadFile)))
                {
                    // Laden der Forumsdaten.
                    ForumData CurrentForumData = ThreadRootData;

                    // Merken des aktuellen Zeitpunktes.
                    DateTime CurrentDate = DateTime.Now;

                    // Speichern des neuen Artikels.
                    ForumData.ForumRow fRow = CurrentForumData.Forum.NewForumRow();
                    fRow.ThreadFile   = HttpUtility.HtmlEncode(threadFile);
                    fRow.DateTime     = CurrentDate;
                    fRow.Author       = HttpUtility.HtmlEncode(name);
                    fRow.Email        = HttpUtility.HtmlEncode(email);
                    fRow.Title        = HttpUtility.HtmlEncode(title);
                    fRow.Text         = HttpUtility.HtmlEncode(text);
                    fRow.CommentCount = 0;
                    CurrentForumData.Forum.AddForumRow(fRow);
                    ThreadRootData = CurrentForumData;

                    // Erzeugen des Thread-Datenobjektes.
                    ThreadData CurrentThreadData = GetThreadData(threadFile);

                    // Speichern des neuen Artikels.
                    ThreadData.ThreadRow tRow = CurrentThreadData.Thread.NewThreadRow();
                    tRow.Title    = HttpUtility.HtmlEncode(title);
                    tRow.Text     = HttpUtility.HtmlEncode(text);
                    tRow.Author   = HttpUtility.HtmlEncode(name);
                    tRow.Email    = HttpUtility.HtmlEncode(email);
                    tRow.DateTime = CurrentDate;
                    tRow.Id       = 0;
                    CurrentThreadData.Thread.AddThreadRow(tRow);
                    WriteThreadData(CurrentThreadData, threadFile);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Speichert einen neuen Artikel innerhalb eines bestehenden Threads.
        /// </summary>
        /// <param name="threadFile"></param>
        /// <param name="parentMessage"></param>
        /// <param name="name"></param>
        /// <param name="email"></param>
        /// <param name="title"></param>
        /// <param name="text"></param>
        public void AddThreadArticle(string threadFile,
                                     int parentMessage,
                                     string name,
                                     string email,
                                     string title,
                                     string text)
        {
            object objLock = new object();

            lock (objLock)
            {
                // Existiert das Thread-File nicht, so ist etwas schief gelaufen und
                // die Daten dürfen hier nicht gespeichert werden.
                if (File.Exists(GetDataPath(threadFile)))
                {
                    // Merken des aktuellen Zeitpunktes.
                    DateTime CurrentDate = DateTime.Now;

                    // Erzeugen des Thread-Datenobjektes.
                    ThreadData CurrentThreadData = GetThreadData(threadFile);

                    // Speichern des neuen Artikels.
                    ThreadData.ThreadRow tRow = CurrentThreadData.Thread.NewThreadRow();
                    tRow.Title    = HttpUtility.HtmlEncode(title);
                    tRow.Text     = HttpUtility.HtmlEncode(text);
                    tRow.Author   = HttpUtility.HtmlEncode(name);
                    tRow.Email    = HttpUtility.HtmlEncode(email);
                    tRow.DateTime = CurrentDate;
                    tRow.Parent   = parentMessage;
                    CurrentThreadData.Thread.AddThreadRow(tRow);
                    WriteThreadData(CurrentThreadData, threadFile);

                    // Laden der Forumsdaten.
                    ForumData CurrentForumData = ThreadRootData;

                    // Holen der entsprechenden Zeile.
                    ForumData.ForumRow fRow = (ForumData.ForumRow)CurrentForumData.Forum.Select("ThreadFile = '" + threadFile + "'", "DateTime DESC")[0];
                    fRow.DateTime       = CurrentDate;
                    fRow.CommentCount   = CurrentThreadData.Thread.Rows.Count - 1;
                    fRow.LastPosterName = HttpUtility.HtmlEncode(name);
                    ThreadRootData      = CurrentForumData;
                }
            }
        }