コード例 #1
0
ファイル: Unsubscribe.aspx.cs プロジェクト: bigWebApps/KB-Old
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["token"]))
            {
                string decrypted = Utils.Decrypt(Request.QueryString["token"], "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                string[] splitted = decrypted.Split('&');
                if (splitted.Length > 3)
                {
                    string email = splitted[0];
                    int type; int.TryParse(splitted[1], out type);
                    int commentId; int.TryParse(splitted[2], out commentId);
                    Guid instanceId = new Guid(splitted[3]);
                    Guid organizationId = new Guid(splitted[4]);

                    if (type == 1) // Unsubscribe from article
                    {
                        if (InstanceAdminEmails(organizationId, instanceId).Contains(email))
                        {
                            string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", email, 2, commentId.ToString(CultureInfo.InvariantCulture), instanceId.ToString(), organizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);

                            int indexUrl = Request.Url.AbsoluteUri.IndexOf(":" + Request.Url.Port.ToString());
                            if (indexUrl <= 0) indexUrl = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath);
                            string siteUrl = Request.Url.AbsoluteUri.Substring(0, indexUrl) + Request.ApplicationPath;
                            string url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                            Message.Text = String.Format("You cannot unsubscribe from this article, you are receiving emails because you are administrator of the KB system.<br><br><a href='{0}'>Click here to stop receiving all emails</a>", url);
                            CanCloseLiteral.Visible = false;
                        }
                        else
                        {
                            MainDataSetTableAdapters.CommentTableAdapter comments = new MainDataSetTableAdapters.CommentTableAdapter();
                            MainDataSet.CommentDataTable commentDataTable = comments.GetDataByCommentId(commentId);
                            if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                            {
                                if (commentDataTable[0].ReceiveEmailUpdate)
                                {
                                    comments.Unsubscribe(commentId);
                                    Message.Text = "You have succussfuly unsubscribe from this article.";
                                }
                                else
                                    Message.Text = "You have been already unsubscribed from this article.";
                            }
                        }
                    }
                    else  // Unsubscribe from all emails
                    {
                        MainDataSetTableAdapters.DoNotEmailTableAdapter doNotEmail = new MainDataSetTableAdapters.DoNotEmailTableAdapter();
                        MainDataSet.DoNotEmailDataTable doNotEmailDataTable = doNotEmail.GetDataByEmail(instanceId, email);
                        if (doNotEmailDataTable == null || doNotEmailDataTable.Rows.Count == 0)
                        {
                            doNotEmail.Insert(Guid.NewGuid(), instanceId, email);
                            Message.Text = "You have succussfuly unsubscribe from all emails.";
                        }
                        else
                            Message.Text = "You have been already unsubscribed from all emails.";
                    }
                }
            }
        }
コード例 #2
0
 protected void DataListComments_DeleteCommand(object source, DataListCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         int commentId = 0;
         int.TryParse(e.CommandArgument.ToString(), out commentId);
         if (commentId > 0)
         {
             using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
             {
                 taComment.Inactive(commentId);
             }
             this.DataBind();
             RegisterGoAnchor();
         }
     }
 }
コード例 #3
0
 protected void DataListComments_DeleteCommand(object source, DataListCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         int commentId = 0;
         int.TryParse(e.CommandArgument.ToString(), out commentId);
         if (commentId > 0)
         {
             using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
             {
                 taComment.Inactive(commentId);
             }
             this.DataBind();
             RegisterGoAnchor();
         }
     }
 }
コード例 #4
0
        protected void ButtonPostComment_Click(object sender, EventArgs e)
        {
            // check the Honeypot
            if (TextBoxPhone.Text == string.Empty && this.InstanceGuid != Guid.Empty)
            {
                int indexUrl = Request.Url.AbsoluteUri.IndexOf(":" + Request.Url.Port.ToString());
                if (indexUrl <= 0) indexUrl = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath);
                string siteUrl = Request.Url.AbsoluteUri.Substring(0, indexUrl) + Request.ApplicationPath + "/";
                using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
                {
                    Organization currOrganization = null;
                    MainDataSet.Mc_InstanceRow currInstance = null;
                    using (MainDataSetTableAdapters.Mc_InstanceTableAdapter taInstance = new MainDataSetTableAdapters.Mc_InstanceTableAdapter())
                    {
                        MainDataSet.Mc_InstanceDataTable instances = taInstance.GetDataByInstanceId(this.InstanceGuid);
                        if (instances.Count > 0)
                        {
                            currInstance = instances[0];
                            currOrganization = Micajah.Common.Bll.Providers.OrganizationProvider.GetOrganization(currInstance.OrganizationId);
                        }
                    }
                    DateTime dtNow = DateTime.Now;
                    if (this.ArticleGuid == Guid.Empty)
                    {
                        // create a reqest
                        Guid newId = Guid.NewGuid();
                        // create a request
                        if (this.ArticleTableAdapter.Insert(newId,
                            this.InstanceGuid,
                            new Guid?(),
                            ArticleType.Request.ToString(),
                            (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                            (string)this.GetLocalResourceObject("BodyNotArticle"),
                            string.Empty,
                            0,
                            0,
                            0,
                            false,
                            new DateTime?(),
                            new DateTime?(),
                            new DateTime?(),
                            new Guid?(),
                            new Guid?(),
                            new Guid?()) > 0)
                        {
                            MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(newId,
                                TextBoxName.Text,
                                TextBoxEmail.Text,
                                string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                                HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                                HttpUtility.HtmlEncode(TextBoxComment.Text),
                                false,
                                true,
                                DateTime.Now, true);
                            if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                            {
                                if (CommentPosted != null) CommentPosted(this, new ArticleEventArgs(newId, true));
                                if (currOrganization != null && currInstance != null)
                                {
                                    string subj;
                                    Micajah.Common.Dal.OrganizationDataSet.UserDataTable users = Micajah.Common.Bll.Providers.UserProvider.GetUsers(
                                        currOrganization.OrganizationId,
                                        this.InstanceGuid,
                                        new string[] { "InstAdmin" });

                                    ArrayList admins = new ArrayList();
                                    ArrayList SendTo = new ArrayList();

                                    admins.AddRange(this.InputListAdmin);

                                    foreach (Micajah.Common.Dal.OrganizationDataSet.UserRow row in users)
                                        admins.Add(row.Email);

                                    SendTo.AddRange(admins);

                                    MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                    foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                    {
                                        if (!SendTo.Contains(row["UserEmail"].ToString()))
                                            SendTo.Add(row["UserEmail"].ToString());
                                    }

                                    foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                        SendTo.Remove(row["UserEmail"].ToString());

                                    string SendToList = string.Empty;
                                    bool separated = false;
                                    for (int i = 0; i < SendTo.Count; i++)
                                    {
                                        if (!separated && !admins.Contains(SendTo[i].ToString()))
                                        {
                                            SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                            separated = true;
                                        }
                                        else
                                            SendToList += ", " + SendTo[i].ToString();
                                    }
                                    SendToList = SendToList.Remove(0, 1);

                                    if (SendTo.Count > 0)
                                    {
                                        for (int i = 0; i < SendTo.Count; i++)
                                        {
                                            subj = (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50));
                                            StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_Request"));
                                            body.Replace("{OrgName}", currOrganization.Name);
                                            body.Replace("{InstName}", currInstance.Name);
                                            body.Replace("{ArticleName}", subj);
                                            body.Replace("{ArticleUrl}", siteUrl + string.Format(CultureInfo.CurrentCulture, "?i={0}&t={1}", this.InstanceGuid.ToString("N"), newId.ToString("N")));
                                            body.Replace("{ArticleText}", HttpUtility.HtmlEncode(TextBoxComment.Text));
                                            body.Replace("{AuthorName}", TextBoxName.Text);
                                            body.Replace("{AuthorEmail}", string.IsNullOrEmpty(TextBoxEmail.Text) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", TextBoxEmail.Text));
                                            body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                            if (body.Length > 0)
                                            {
                                                string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                string url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                body.Replace("{UnsubscribeFromArticleUrl}", url);
                                                encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                body.Replace("{UnsubscribeFromAllUrl}", url);
                                                if (admins.Contains(SendTo[i]))
                                                    body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                                else
                                                    body.Replace("{SendToList}", string.Empty);
                                                Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), string.Format((string)this.GetLocalResourceObject("EmailSubjectRequest"), subj), body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                            }
                                        }
                                    }
                                }
                                ResetData();
                            }
                        }
                    }
                    else
                    {
                        // post to article
                        MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(this.ArticleGuid,
                            TextBoxName.Text,
                            TextBoxEmail.Text,
                            string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                            HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                            HttpUtility.HtmlEncode(TextBoxComment.Text),
                            false,
                            true,
                            dtNow, true);
                        if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                        {
                            if (CommentPosted != null) CommentPosted(this, new ArticleEventArgs(this.ArticleGuid, false));
                            MainDataSet.ArticleRow articleRow = this.GetCurrentArticle();
                            if (currOrganization != null && articleRow != null && !articleRow.IsUpdatedByNull() && currInstance != null)
                            {
                                string author = string.Empty, subj;
                                subj = string.Format((string)this.GetLocalResourceObject("EmailSubjectComment"), articleRow.Subject);

                                System.Data.DataRow mcuser = Micajah.Common.Bll.Providers.UserProvider.GetUserRow(articleRow.UpdatedBy, currOrganization.OrganizationId);
                                if (mcuser != null)
                                    author = (string)mcuser["Email"];

                                Micajah.Common.Dal.OrganizationDataSet.UserDataTable users = Micajah.Common.Bll.Providers.UserProvider.GetUsers(
                                        currOrganization.OrganizationId,
                                        this.InstanceGuid,
                                        new string[] { "InstAdmin" });

                                ArrayList admins = new ArrayList();
                                ArrayList SendTo = new ArrayList();

                                admins.AddRange(this.InputListAdmin);
                                foreach (Micajah.Common.Dal.OrganizationDataSet.UserRow row in users)
                                    admins.Add(row.Email);
                                SendTo.AddRange(admins);

                                if (!string.IsNullOrEmpty(author) && !SendTo.Contains(author))
                                    SendTo.Add(author);

                                MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                {
                                    if (!SendTo.Contains(row["UserEmail"].ToString()))
                                        SendTo.Add(row["UserEmail"].ToString());
                                }

                                foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                    SendTo.Remove(row["UserEmail"].ToString());

                                string SendToList = string.Empty;
                                bool separated = false;
                                for (int i = 0; i < SendTo.Count; i++)
                                {
                                    if (!separated && !admins.Contains(SendTo[i].ToString()))
                                    {
                                        SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                        separated = true;
                                    }
                                    else
                                        SendToList += ", " + SendTo[i].ToString();
                                }
                                SendToList = SendToList.Remove(0, 1);

                                if (SendTo.Count > 0)
                                {
                                    for (int i = 0; i < SendTo.Count; i++)
                                    {
                                        StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_PostToArticle"));
                                        body.Replace("{OrgName}", currOrganization.Name);
                                        body.Replace("{InstName}", currInstance.Name);
                                        body.Replace("{ArticleName}", articleRow.Subject);
                                        body.Replace("{ArticleUrl}", siteUrl + string.Format(CultureInfo.CurrentCulture, "?i={0}&t={1}", this.InstanceGuid.ToString("N"), this.ArticleGuid.ToString("N")));
                                        body.Replace("{ArticleText}", HttpUtility.HtmlEncode(TextBoxComment.Text));
                                        body.Replace("{AuthorName}", TextBoxName.Text);
                                        body.Replace("{AuthorEmail}", string.IsNullOrEmpty(TextBoxEmail.Text) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", TextBoxEmail.Text));
                                        body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                        if (admins.Contains(SendTo[i]))
                                            body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                        else
                                            body.Replace("{SendToList}", string.Empty);

                                        if (body.Length > 0)
                                        {
                                            string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                            string url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                            body.Replace("{UnsubscribeFromArticleUrl}", url);
                                            encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                            url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                            body.Replace("{UnsubscribeFromAllUrl}", url);
                                            Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), subj, body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                        }
                                    }
                                }
                            }
                            ResetData();
                        }
                    }
                }
            }
        }
コード例 #5
0
        protected void ButtonPostComment_Click(object sender, EventArgs e)
        {
            // check the Honeypot
            if (TextBoxPhone.Text == string.Empty && this.InstanceGuid != Guid.Empty)
            {
                int indexUrl = Request.Url.AbsoluteUri.IndexOf(":" + Request.Url.Port.ToString());
                if (indexUrl <= 0)
                {
                    indexUrl = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath);
                }
                string siteUrl = Request.Url.AbsoluteUri.Substring(0, indexUrl) + Request.ApplicationPath + "/";
                using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
                {
                    Organization currOrganization           = null;
                    MainDataSet.Mc_InstanceRow currInstance = null;
                    using (MainDataSetTableAdapters.Mc_InstanceTableAdapter taInstance = new MainDataSetTableAdapters.Mc_InstanceTableAdapter())
                    {
                        MainDataSet.Mc_InstanceDataTable instances = taInstance.GetDataByInstanceId(this.InstanceGuid);
                        if (instances.Count > 0)
                        {
                            currInstance     = instances[0];
                            currOrganization = Micajah.Common.Bll.Providers.OrganizationProvider.GetOrganization(currInstance.OrganizationId);
                        }
                    }
                    DateTime dtNow = DateTime.Now;
                    if (this.ArticleGuid == Guid.Empty)
                    {
                        // create a reqest
                        Guid newId = Guid.NewGuid();
                        // create a request
                        if (this.ArticleTableAdapter.Insert(newId,
                                                            this.InstanceGuid,
                                                            new Guid?(),
                                                            ArticleType.Request.ToString(),
                                                            (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                                                            (string)this.GetLocalResourceObject("BodyNotArticle"),
                                                            string.Empty,
                                                            0,
                                                            0,
                                                            0,
                                                            false,
                                                            new DateTime?(),
                                                            new DateTime?(),
                                                            new DateTime?(),
                                                            new Guid?(),
                                                            new Guid?(),
                                                            new Guid?()) > 0)
                        {
                            MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(newId,
                                                                                                    TextBoxName.Text,
                                                                                                    TextBoxEmail.Text,
                                                                                                    string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                                                                                                    HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                                                                                                    HttpUtility.HtmlEncode(TextBoxComment.Text),
                                                                                                    false,
                                                                                                    true,
                                                                                                    DateTime.Now, true);
                            if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                            {
                                if (CommentPosted != null)
                                {
                                    CommentPosted(this, new ArticleEventArgs(newId, true));
                                }
                                if (currOrganization != null && currInstance != null)
                                {
                                    string subj;
                                    Micajah.Common.Dal.OrganizationDataSet.UserDataTable users = Micajah.Common.Bll.Providers.UserProvider.GetUsers(
                                        currOrganization.OrganizationId,
                                        this.InstanceGuid,
                                        new string[] { "InstAdmin" });

                                    ArrayList admins = new ArrayList();
                                    ArrayList SendTo = new ArrayList();

                                    admins.AddRange(this.InputListAdmin);

                                    foreach (Micajah.Common.Dal.OrganizationDataSet.UserRow row in users)
                                    {
                                        admins.Add(row.Email);
                                    }

                                    SendTo.AddRange(admins);

                                    MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                    foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                    {
                                        if (!SendTo.Contains(row["UserEmail"].ToString()))
                                        {
                                            SendTo.Add(row["UserEmail"].ToString());
                                        }
                                    }

                                    foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                    {
                                        SendTo.Remove(row["UserEmail"].ToString());
                                    }

                                    string SendToList = string.Empty;
                                    bool   separated  = false;
                                    for (int i = 0; i < SendTo.Count; i++)
                                    {
                                        if (!separated && !admins.Contains(SendTo[i].ToString()))
                                        {
                                            SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                            separated   = true;
                                        }
                                        else
                                        {
                                            SendToList += ", " + SendTo[i].ToString();
                                        }
                                    }
                                    SendToList = SendToList.Remove(0, 1);

                                    if (SendTo.Count > 0)
                                    {
                                        for (int i = 0; i < SendTo.Count; i++)
                                        {
                                            subj = (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50));
                                            StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_Request"));
                                            body.Replace("{OrgName}", currOrganization.Name);
                                            body.Replace("{InstName}", currInstance.Name);
                                            body.Replace("{ArticleName}", subj);
                                            body.Replace("{ArticleUrl}", siteUrl + string.Format(CultureInfo.CurrentCulture, "?i={0}&t={1}", this.InstanceGuid.ToString("N"), newId.ToString("N")));
                                            body.Replace("{ArticleText}", HttpUtility.HtmlEncode(TextBoxComment.Text));
                                            body.Replace("{AuthorName}", TextBoxName.Text);
                                            body.Replace("{AuthorEmail}", string.IsNullOrEmpty(TextBoxEmail.Text) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", TextBoxEmail.Text));
                                            body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                            if (body.Length > 0)
                                            {
                                                string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                string url       = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                body.Replace("{UnsubscribeFromArticleUrl}", url);
                                                encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                url       = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                body.Replace("{UnsubscribeFromAllUrl}", url);
                                                if (admins.Contains(SendTo[i]))
                                                {
                                                    body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                                }
                                                else
                                                {
                                                    body.Replace("{SendToList}", string.Empty);
                                                }
                                                Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), string.Format((string)this.GetLocalResourceObject("EmailSubjectRequest"), subj), body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                            }
                                        }
                                    }
                                }
                                ResetData();
                            }
                        }
                    }
                    else
                    {
                        // post to article
                        MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(this.ArticleGuid,
                                                                                                TextBoxName.Text,
                                                                                                TextBoxEmail.Text,
                                                                                                string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                                                                                                HttpUtility.HtmlEncode(Utils.ShortCommentText(TextBoxComment.Text, 50)),
                                                                                                HttpUtility.HtmlEncode(TextBoxComment.Text),
                                                                                                false,
                                                                                                true,
                                                                                                dtNow, true);
                        if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                        {
                            if (CommentPosted != null)
                            {
                                CommentPosted(this, new ArticleEventArgs(this.ArticleGuid, false));
                            }
                            MainDataSet.ArticleRow articleRow = this.GetCurrentArticle();
                            if (currOrganization != null && articleRow != null && !articleRow.IsUpdatedByNull() && currInstance != null)
                            {
                                string author = string.Empty, subj;
                                subj = string.Format((string)this.GetLocalResourceObject("EmailSubjectComment"), articleRow.Subject);

                                System.Data.DataRow mcuser = Micajah.Common.Bll.Providers.UserProvider.GetUserRow(articleRow.UpdatedBy, currOrganization.OrganizationId);
                                if (mcuser != null)
                                {
                                    author = (string)mcuser["Email"];
                                }

                                Micajah.Common.Dal.OrganizationDataSet.UserDataTable users = Micajah.Common.Bll.Providers.UserProvider.GetUsers(
                                    currOrganization.OrganizationId,
                                    this.InstanceGuid,
                                    new string[] { "InstAdmin" });

                                ArrayList admins           = new ArrayList();
                                ArrayList SendTo           = new ArrayList();

                                admins.AddRange(this.InputListAdmin);
                                foreach (Micajah.Common.Dal.OrganizationDataSet.UserRow row in users)
                                {
                                    admins.Add(row.Email);
                                }
                                SendTo.AddRange(admins);

                                if (!string.IsNullOrEmpty(author) && !SendTo.Contains(author))
                                {
                                    SendTo.Add(author);
                                }

                                MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                {
                                    if (!SendTo.Contains(row["UserEmail"].ToString()))
                                    {
                                        SendTo.Add(row["UserEmail"].ToString());
                                    }
                                }

                                foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                {
                                    SendTo.Remove(row["UserEmail"].ToString());
                                }

                                string SendToList = string.Empty;
                                bool   separated  = false;
                                for (int i = 0; i < SendTo.Count; i++)
                                {
                                    if (!separated && !admins.Contains(SendTo[i].ToString()))
                                    {
                                        SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                        separated   = true;
                                    }
                                    else
                                    {
                                        SendToList += ", " + SendTo[i].ToString();
                                    }
                                }
                                SendToList = SendToList.Remove(0, 1);

                                if (SendTo.Count > 0)
                                {
                                    for (int i = 0; i < SendTo.Count; i++)
                                    {
                                        StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_PostToArticle"));
                                        body.Replace("{OrgName}", currOrganization.Name);
                                        body.Replace("{InstName}", currInstance.Name);
                                        body.Replace("{ArticleName}", articleRow.Subject);
                                        body.Replace("{ArticleUrl}", siteUrl + string.Format(CultureInfo.CurrentCulture, "?i={0}&t={1}", this.InstanceGuid.ToString("N"), this.ArticleGuid.ToString("N")));
                                        body.Replace("{ArticleText}", HttpUtility.HtmlEncode(TextBoxComment.Text));
                                        body.Replace("{AuthorName}", TextBoxName.Text);
                                        body.Replace("{AuthorEmail}", string.IsNullOrEmpty(TextBoxEmail.Text) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", TextBoxEmail.Text));
                                        body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                        if (admins.Contains(SendTo[i]))
                                        {
                                            body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                        }
                                        else
                                        {
                                            body.Replace("{SendToList}", string.Empty);
                                        }

                                        if (body.Length > 0)
                                        {
                                            string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                            string url       = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                            body.Replace("{UnsubscribeFromArticleUrl}", url);
                                            encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                            url       = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                            body.Replace("{UnsubscribeFromAllUrl}", url);
                                            Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), subj, body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                        }
                                    }
                                }
                            }
                            ResetData();
                        }
                    }
                }
            }
        }
コード例 #6
0
 public ActionCustomHandler()
 {
     taArticle = new MainDataSetTableAdapters.ArticleTableAdapter();
     taComment = new MainDataSetTableAdapters.CommentTableAdapter();
 }
コード例 #7
0
ファイル: Default.aspx.cs プロジェクト: bigWebApps/KB-Old
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (UserContext.Current != null && UserContext.Current.SelectedInstance != null && this.ArticleGuid != Guid.Empty && !IsPopup)
                {
                    Response.Redirect("ArticleViewAdmin.aspx?id=" + this.ArticleGuid.ToString("N"), false);
                    return;
                }
                else if (UserContext.Current != null && UserContext.Current.SelectedInstance != null && !IsPopup)
                {
                    Response.Redirect("InstanceHomeAdmin.aspx", false);
                    return;
                }

                //// todo: popup case
                //if (IsPopup)
                //{
                //}
                string loginUrl = Micajah.Common.Application.WebApplication.LoginProvider.GetLoginUrl();
                string pageUrl = Request.Url.AbsolutePath.ToLowerInvariant().Replace("default.aspx", string.Empty);
                int indexUrl = Request.Url.AbsoluteUri.IndexOf(":" + Request.Url.Port.ToString());
                if (indexUrl <= 0) indexUrl = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath);
                string siteUrl = Request.Url.AbsoluteUri.Substring(0, indexUrl) + Request.ApplicationPath;
                if (this.CurrentInstance != null)
                {
                    string orgInstName = string.Format(CultureInfo.CurrentCulture, "{0} {1}", this.CurrentInstance.Organization.Name, this.CurrentInstance.Name);
                    string instanceUrl = pageUrl + (UserContext.SelectedInstanceId == Guid.Empty ? "?i=" + this.InstanceGuid.ToString("N") : string.Empty);
                    string breadcrumbs = string.Format("<a href=\"{1}\">{0}</a>", (string)this.GetLocalResourceObject("Home"), instanceUrl);

                    #region Load Article
                    MainDataSet.ArticleDataTable dtArticle = null;
                    MainDataSet.ArticleRow articleRow = null;
                    StringBuilder textHeader = new StringBuilder((string)this.GetLocalResourceObject("Header"));
                    StringBuilder textFooter = new StringBuilder((string)this.GetLocalResourceObject("Footer"));
                    if (this.ArticleGuid != Guid.Empty)
                    {
                        dtArticle = this.ArticleTableAdapter.GetDataByArticleGuid(this.ArticleGuid);
                        if (dtArticle.Count > 0)
                            articleRow = dtArticle[0];

                        if (articleRow == null || articleRow.Deleted)
                            Response.Redirect(instanceUrl, false);
                    }
                    else if (this.AlternateId != string.Empty)
                    {
                        string strAltId = this.AlternateId;
                        MainDataSetTableAdapters.AlternateIdTableAdapter taAlternateId = new MainDataSetTableAdapters.AlternateIdTableAdapter();
                        Guid? articleGuid = null;
                        articleGuid = taAlternateId.GetArticleGuid(strAltId, this.InstanceGuid);
                        int idx = 0;
                        if (!articleGuid.HasValue)
                        {
                            idx = strAltId.LastIndexOf('/');
                            if (idx > 0)
                            {
                                strAltId = strAltId.Substring(0, idx + 1);
                                articleGuid = taAlternateId.GetArticleGuid(strAltId, this.InstanceGuid);
                            }
                        }
                        if (articleGuid.HasValue)
                        {
                            dtArticle = this.ArticleTableAdapter.GetDataByArticleGuid(articleGuid.Value);
                            if (dtArticle.Count > 0)
                                articleRow = dtArticle[0];

                            if (articleRow == null || articleRow.Deleted)
                                Response.Redirect(instanceUrl, false);
                        }
                    }
                    //else
                    //{
                    //Response.Redirect(instanceUrl, false);
                    //return;
                    //}
                    #endregion

                    #region Post Comment
                    // before write a comment we has to chek a new posted comment
                    if (!string.IsNullOrEmpty(Request.Form["Name"]) && !string.IsNullOrEmpty(Request.Form["Comment"]))
                    {
                        using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
                        {
                            string postName = Request.Form["Name"];
                            string postEmail = Request.Form["Email"];
                            if (postEmail == null) postEmail = string.Empty;
                            string postComment = Request.Form["Comment"];
                            string honeyPot = Request.Form["hpot"];
                            DateTime dtNow = DateTime.Now;

                            if (honeyPot == "micajah@@kb") // honeypot protection
                            {
                                if (articleRow == null)
                                {
                                    Guid newId = Guid.NewGuid();
                                    // create a request
                                    if (this.ArticleTableAdapter.Insert(newId,
                                        this.InstanceGuid,
                                        new Guid?(),
                                        ArticleType.Request.ToString(),
                                        (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(postComment, 50)),
                                        (string)this.GetLocalResourceObject("BodyNotArticle"),
                                        string.Empty,
                                        0,
                                        0,
                                        0,
                                        false,
                                        new DateTime?(),
                                        new DateTime?(),
                                        new DateTime?(),
                                        new Guid?(),
                                        new Guid?(),
                                        new Guid?()) > 0)
                                    {
                                        dtArticle = this.ArticleTableAdapter.GetDataByArticleGuid(newId);
                                        if (dtArticle.Count > 0)
                                            articleRow = dtArticle[0];
                                        MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(newId,
                                            postName,
                                            postEmail,
                                            string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                                            HttpUtility.HtmlEncode(Utils.ShortCommentText(postComment, 50)),
                                            HttpUtility.HtmlEncode(postComment),
                                            false,
                                            true,
                                            DateTime.Now, true);

                                        if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                                        {
                                            string subj;
                                            subj = (this.AlternateId != string.Empty) ? this.AlternateId : HttpUtility.HtmlEncode(Utils.ShortCommentText(postComment, 50));

                                            ArrayList SendTo = new ArrayList();
                                            SendTo.AddRange(this.InputListAdmin);
                                            SendTo.AddRange(InstanceAdminEmails);

                                            MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                            foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                            {
                                                if (!SendTo.Contains(row["UserEmail"].ToString()))
                                                    SendTo.Add(row["UserEmail"].ToString());
                                            }

                                            foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                                SendTo.Remove(row["UserEmail"].ToString());

                                            string SendToList = string.Empty;
                                            bool separated = false;
                                            for (int i = 0; i < SendTo.Count; i++)
                                            {
                                                if (!separated && !InputListAdmin.Contains(SendTo[i].ToString()) && !InstanceAdminEmails.Contains(SendTo[i].ToString()))
                                                {
                                                    SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                                    separated = true;
                                                }
                                                else
                                                    SendToList += ", " + SendTo[i].ToString();
                                            }
                                            SendToList = SendToList.Remove(0, 1);

                                            if (SendTo.Count > 0)
                                            {
                                                for (int i = 0; i < SendTo.Count; i++)
                                                {
                                                    StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_Request"));
                                                    body.Replace("{OrgName}", this.CurrentInstance.Organization.Name);
                                                    body.Replace("{InstName}", this.CurrentInstance.Name);
                                                    body.Replace("{ArticleName}", subj);
                                                    body.Replace("{ArticleUrl}", siteUrl + (UserContext.SelectedInstanceId != Guid.Empty ? "?" : string.Format(CultureInfo.CurrentCulture, "?i={0}&", this.InstanceGuid.ToString("N"))) + string.Format(CultureInfo.CurrentCulture, "t={0}", newId.ToString("N")));
                                                    body.Replace("{ArticleText}", HttpUtility.HtmlEncode(postComment));
                                                    body.Replace("{AuthorName}", postName);
                                                    body.Replace("{AuthorEmail}", string.IsNullOrEmpty(postEmail) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", postEmail));
                                                    body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                                    if (InputListAdmin.Contains(SendTo[i]) || InstanceAdminEmails.Contains(SendTo[i]))
                                                        body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                                    else
                                                        body.Replace("{SendToList}", string.Empty);

                                                    if (body.Length > 0)
                                                    {
                                                        string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                        string url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                        body.Replace("{UnsubscribeFromArticleUrl}", url);
                                                        encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                        url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                        body.Replace("{UnsubscribeFromAllUrl}", url);
                                                        Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), string.Format((string)this.GetLocalResourceObject("EmailSubjectRequest"), subj), body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    // post to article
                                    MainDataSet.CommentDataTable commentDataTable = taComment.InsertComment(this.ArticleGuid,
                                        postName,
                                        postEmail,
                                        string.Format("{0} ({1})", Request.UserHostName, Request.UserHostAddress),
                                        HttpUtility.HtmlEncode(Utils.ShortCommentText(postComment, 50)),
                                        HttpUtility.HtmlEncode(postComment),
                                        false,
                                        true,
                                        dtNow, true);

                                    if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                                    {
                                        ArrayList SendTo = new ArrayList();
                                        SendTo.AddRange(this.InputListAdmin);
                                        SendTo.AddRange(InstanceAdminEmails);

                                        MainDataSetTableAdapters.EmailsTableAdapter emailsTableAdapter = new MainDataSetTableAdapters.EmailsTableAdapter();
                                        foreach (DataRow row in emailsTableAdapter.GetArticleEmails(ArticleGuid).Rows)
                                        {
                                            if (!SendTo.Contains(row["UserEmail"].ToString()))
                                                SendTo.Add(row["UserEmail"].ToString());
                                        }

                                        foreach (DataRow row in emailsTableAdapter.GetUnsubscribedEmails(ArticleGuid, this.InstanceGuid).Rows)
                                            SendTo.Remove(row["UserEmail"].ToString());

                                        string SendToList = string.Empty;
                                        bool separated = false;
                                        for (int i = 0; i < SendTo.Count; i++)
                                        {
                                            if (!separated && !InputListAdmin.Contains(SendTo[i].ToString()) && !InstanceAdminEmails.Contains(SendTo[i].ToString()))
                                            {
                                                SendToList += "<br><br>Commentors:<br>" + SendTo[i].ToString();
                                                separated = true;
                                            }
                                            else
                                                SendToList += ", " + SendTo[i].ToString();
                                        }
                                        SendToList = SendToList.Remove(0, 1);

                                        if (SendTo.Count > 0)
                                        {
                                            if (!articleRow.IsUpdatedByNull())
                                            {
                                                string subj = String.Empty;
                                                subj = string.Format((string)this.GetLocalResourceObject("EmailSubjectComment"), articleRow.Subject);

                                                for (int i = 0; i < SendTo.Count; i++)
                                                {
                                                    StringBuilder body = new StringBuilder((string)this.GetLocalResourceObject("EmailBody_PostToArticle"));
                                                    body.Replace("{OrgName}", this.CurrentInstance.Organization.Name);
                                                    body.Replace("{InstName}", this.CurrentInstance.Name);
                                                    body.Replace("{ArticleName}", articleRow.Subject);
                                                    body.Replace("{ArticleUrl}", siteUrl + (UserContext.SelectedInstanceId != Guid.Empty ? "?" : string.Format(CultureInfo.CurrentCulture, "?i={0}&", this.InstanceGuid.ToString("N"))) + string.Format(CultureInfo.CurrentCulture, "t={0}", articleRow.ArticleGuid.ToString("N")));
                                                    body.Replace("{ArticleText}", HttpUtility.HtmlEncode(postComment));
                                                    body.Replace("{AuthorName}", postName);
                                                    body.Replace("{AuthorEmail}", string.IsNullOrEmpty(postEmail) ? string.Empty : string.Format(CultureInfo.CurrentCulture, "<a href=\"mailto:{0}\" target=\"_blank\">{0}</a>", postEmail));
                                                    body.Replace("{ImageUrl}", siteUrl + Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Copyright.CompanyLogoImageUrl);
                                                    if (InputListAdmin.Contains(SendTo[i]) || InstanceAdminEmails.Contains(SendTo[i]))
                                                        body.Replace("{SendToList}", "This message was also sent to:<br>" + SendToList);
                                                    else
                                                        body.Replace("{SendToList}", string.Empty);

                                                    if (body.Length > 0)
                                                    {
                                                        string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 1, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                        string url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                        body.Replace("{UnsubscribeFromArticleUrl}", url);
                                                        encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", SendTo[i].ToString(), 2, commentDataTable[0].CommentId.ToString(CultureInfo.InvariantCulture), InstanceGuid.ToString(), UserContext.SelectedOrganizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                                                        url = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                                                        body.Replace("{UnsubscribeFromAllUrl}", url);
                                                        Utils.SendEmail("*****@*****.**", SendTo[i].ToString(), subj, body.ToString(), true, Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.Email.SmtpServer, true);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                    #region Generate an Article
                    if (articleRow != null)
                    {
                        if (!articleRow.Deleted)
                        {
                            //Response.Redirect(instanceUrl, false);
                            //return;
                            textHeader = textHeader.Replace("{title}", string.Format(CultureInfo.CurrentCulture, "{2}{0} {1}", this.CurrentInstance.Organization.Name, this.CurrentInstance.Name, string.IsNullOrEmpty(articleRow.Subject) ? string.Empty : articleRow.Subject + " - "));
                            //textHeader = textHeader.Replace("{metakeywords}", articleRow.SearchDesc);
                            textHeader = textHeader.Replace("{metadescription}", articleRow.SearchDesc);
                            textHeader = textHeader.Replace("{canonical}", Canonical);
                            Response.Write(textHeader.ToString());
                            if (!this.IsPopup)
                            {
                                Response.Write("    <div id=\"header\"><div id=\"breadcrumbs\"><span>" + Environment.NewLine);
                                MainDataSet.ArticleDataTable dtBreadcrumbs = this.ArticleTableAdapter.GetRecursiveAllByArticleGuid(articleRow.ArticleGuid);
                                for (int i = dtBreadcrumbs.Count - 1; i >= 0; i--)
                                {
                                    if (dtBreadcrumbs[i].ArticleGuid == articleRow.ArticleGuid)
                                        breadcrumbs += string.Format("&nbsp; > &nbsp;{0}", dtBreadcrumbs[i].Subject);
                                    else
                                        breadcrumbs += string.Format("&nbsp; > &nbsp;<a href=\"{1}\">{0}</a>", dtBreadcrumbs[i].Subject, pageUrl + (UserContext.SelectedInstanceId != Guid.Empty ? "?" : "?i=" + this.InstanceGuid.ToString("N") + "&") + "t=" + dtBreadcrumbs[i].ArticleGuid.ToString("N"));
                                }
                                Response.Write(breadcrumbs);
                                Response.Write("</span></div><div id=\"search\">" + Environment.NewLine);
                                Response.Write(string.Format("<form action=\"{0}\" method=\"post\"><input type=\"text\" name=\"search\" size=\"40\" />{1}<input type=\"submit\" value=\"Search\" /></form>{1}", "SearchResult.aspx" + (UserContext.SelectedInstanceId == Guid.Empty ? "?i=" + this.InstanceGuid.ToString("N") : string.Empty), Environment.NewLine));
                                Response.Write("</div></div>");
                            }
                            // write a header
                            // write a body
                            Response.Write("    <div id=\"title\">" + Environment.NewLine);
                            Response.Write(string.Format("        <h1>{0}</h1>{1}", articleRow.Subject, Environment.NewLine));
                            Response.Write("    </div>" + Environment.NewLine);
                            if (articleRow.Type == ArticleType.Request.ToString())
                            {
                                //Response.Write("    <hr />" + Environment.NewLine);
                                Response.Write("    <div id=\"article\">" + Environment.NewLine);
                                Response.Write((string)this.GetLocalResourceObject("ArticleDoesNotExist"));
                                Response.Write("    </div>" + Environment.NewLine);
                            }
                            else
                            {
                                this.ArticleTableAdapter.IncReview(articleRow.ArticleGuid);
                                string body = this.ArticleTableAdapter.GetBody(articleRow.ArticleGuid);
                                if (body.Replace("<p>", string.Empty).Replace("</p>", string.Empty).Trim().Length > 0)
                                {
                                    body = body.Replace("<h2>", "<h2><span>");
                                    body = body.Replace("<H2>", "<H2><span>");
                                    body = body.Replace("</h2>", "</span></h2>");
                                    body = body.Replace("</H2>", "</span></H2>");
                                    //Response.Write("    <hr />" + Environment.NewLine);
                                    Response.Write("    <div id=\"article\">" + Environment.NewLine);
                                    Response.Write(body);
                                    Response.Write("    </div>" + Environment.NewLine);
                                }
                            }
                            // write a attachments
                            using (Micajah.FileService.Client.Dal.MetaDataSetTableAdapters.FileTableAdapter taFile = new Micajah.FileService.Client.Dal.MetaDataSetTableAdapters.FileTableAdapter())
                            {
                                Micajah.FileService.Client.Dal.MetaDataSet.FileDataTable dtFiles = taFile.GetFiles(this.CurrentInstance.OrganizationId, this.CurrentInstance.InstanceId, "Article", articleRow.ArticleGuid.ToString("N"), false);
                                StringBuilder stringAttachments = new StringBuilder();
                                foreach (Micajah.FileService.Client.Dal.MetaDataSet.FileRow frow in dtFiles)
                                {
                                    string ext = Path.GetExtension(frow.Name);
                                    string mimeType = Micajah.FileService.Client.MimeType.GetMimeType(ext);
                                    if (!Micajah.FileService.Client.MimeType.IsImageType(mimeType) &&
                                        !Micajah.FileService.Client.MimeType.IsFlash(mimeType))
                                        stringAttachments = stringAttachments.AppendFormat("        <li><a href=\"{1}\">{0}</a></li>", frow.Name, Access.GetFileUrl(frow.FileUniqueId, frow.OrganizationId, frow.DepartmentId));
                                }
                                if (stringAttachments.Length > 0)
                                {
                                    stringAttachments = stringAttachments.Insert(0, "    <div id=\"attachments\">" + Environment.NewLine + "     <ol>" + Environment.NewLine);
                                    stringAttachments = stringAttachments.AppendLine("     </ol>" + Environment.NewLine + "    </div>");
                                    //Response.Write("    <hr />" + Environment.NewLine);
                                    Response.Write(stringAttachments.ToString());
                                }
                            }
                            // write a child article list
                            MainDataSet.ArticleDataTable dtList = this.ArticleTableAdapter.GetChildArticles(new Guid?(articleRow.ArticleGuid), 1024);
                            //if (dtList.Count > 0)
                            Response.Write("    <div id=\"related\">" + Environment.NewLine + "     <ol>" + Environment.NewLine);
                            foreach (MainDataSet.ArticleRow arow in dtList.OrderBy(x => x.Subject))
                            {
                                Response.Write(this.GetRelatedString(arow, pageUrl));
                            }
                            if (articleRow.IsParentArticleGuidNull())
                            {
                                //this.CurrentInstance.Name
                                Response.Write(string.Format("        <li><a style='color:gray' href=\"{0}\">{1}</a>{2}          <span style=\"display:block;\">{3}</span>{2}        </li>",
                                    pageUrl + (UserContext.SelectedInstanceId == Guid.Empty ? "?i=" + this.InstanceGuid.ToString("N") : string.Empty),
                                    "< " + (string)this.GetLocalResourceObject("BackTo") + " " + this.CurrentInstance.Name + " " + (string)this.GetLocalResourceObject("Home"),
                                    Environment.NewLine,
                                    string.Empty));
                                //this.CurrentInstance.Description));
                            }
                            else
                            {
                                dtArticle = this.ArticleTableAdapter.GetDataByArticleGuid(articleRow.ParentArticleGuid);
                                if (dtArticle.Count > 0)
                                {
                                    MainDataSet.ArticleRow row = dtArticle[0];
                                    row.Subject = "< " + (string)this.GetLocalResourceObject("BackTo") + " " + row.Subject;
                                    Response.Write(this.GetRelatedString(row, pageUrl, true));
                                }
                            }
                            //if (dtList.Count > 0)
                            Response.Write("     </ol>" + Environment.NewLine + "    </div>" + Environment.NewLine);

                            // write a comments
                            using (MainDataSetTableAdapters.CommentTableAdapter taComments = new MainDataSetTableAdapters.CommentTableAdapter())
                            {
                                MainDataSet.CommentDataTable dtComments = taComments.GetDataByArticleGuid(articleRow.ArticleGuid);
                                if (dtComments.Count > 0)
                                {
                                    //Response.Write("    <hr />" + Environment.NewLine);
                                    Response.Write("    <div id=\"comments\">" + Environment.NewLine + "     <ol>" + Environment.NewLine);
                                    foreach (MainDataSet.CommentRow crow in dtComments)
                                    {
                                        Response.Write(string.Format("     <li><a name=\"{0}\">{1}</a>{2}           <span style=\"display:block;\">{3}</span></li>",
                                            crow.CommentId.ToString(),
                                            crow.UserName,
                                            Environment.NewLine,
                                            crow.Body.Replace(Environment.NewLine, "<br>")));
                                    }
                                    Response.Write("     </ol>" + Environment.NewLine + "    </div>" + Environment.NewLine);
                                }
                            }
                            // write a footer
                            string commentaction = "default.aspx?";
                            if (UserContext.SelectedInstanceId == Guid.Empty)
                                commentaction += "i=" + this.InstanceGuid.ToString("N") + "&";
                            commentaction += "t=" + articleRow.ArticleGuid.ToString("N");
                            if (this.InputUserName.Length > 0)
                                commentaction += "&un=" + this.InputUserName;
                            if (this.InputUserEmail.Length > 0)
                                commentaction += "&ue=" + this.InputUserEmail;
                            if (this.InputListAdmin.Length > 0)
                                commentaction += "&la=" + string.Join(";", this.InputListAdmin);

                            textFooter = textFooter.Replace("{username}", this.InputUserName);
                            textFooter = textFooter.Replace("{useremail}", this.InputUserEmail);
                            textFooter = textFooter.Replace("{homeurl}", instanceUrl);
                            if (articleRow != null)
                                textFooter = textFooter.Replace("{editurl}", string.Format("<a href=\"ArticleViewAdmin.aspx?id={0}&mode=edit\">Edit</a>", articleRow.ArticleGuid.ToString()));
                            else
                                textFooter = textFooter.Replace("{editurl}", string.Empty);
                            textFooter = textFooter.Replace("{micajahurl}", loginUrl);
                            textFooter = textFooter.Replace("{currentyear}", DateTime.Now.Year.ToString(CultureInfo.InvariantCulture));
                            textFooter = textFooter.Replace("{commentaction}", commentaction);
                            //textFooter = textFooter.Replace("{trackingcode}", string.Empty);

                            string trackingcode = string.Empty;
                            Setting trackCode = this.CurrentInstance.Settings.FindByShortName("TrackingCode");
                            if (trackCode != null && !string.IsNullOrEmpty(trackCode.Value))
                                trackingcode = trackCode.Value;
                            textFooter = textFooter.Replace("{trackingcode}", trackingcode + (string)this.GetLocalResourceObject("GlobalTrackingCode"));

                            Response.Write(textFooter);
                            return;
                        }
                    }
                    else if (this.AlternateId != string.Empty)
                    {
                        // add new article mode
                        textHeader = textHeader.Replace("{title}", (string)this.GetLocalResourceObject("NewArticle"));
                        textHeader = textHeader.Replace("{metadescription}", string.Empty);
                        // write a header
                        Response.Write(textHeader.ToString());
                        if (!this.IsPopup)
                        {
                            Response.Write("    <div id=\"header\"><div id=\"breadcrumbs\"><span>" + Environment.NewLine);
                            breadcrumbs += "&nbsp; > &nbsp;" + this.AlternateId;
                            //breadcrumbs += "&nbsp; > &nbsp;" + (string)this.GetLocalResourceObject("NewArticle");
                            Response.Write(breadcrumbs);
                            Response.Write("</span></div><div id=\"search\">" + Environment.NewLine);
                            Response.Write(string.Format("<form action=\"{0}\" method=\"post\"><input type=\"text\" name=\"search\" size=\"40\" /><input type=\"submit\" value=\"Search\" /></form>{1}", "SearchResult.aspx" + (UserContext.SelectedInstanceId == Guid.Empty ? "?i=" + this.InstanceGuid.ToString("N") : string.Empty), Environment.NewLine));
                            Response.Write("</div></div>");
                        }
                        // write a body
                        Response.Write("    <div id=\"title\">" + Environment.NewLine);
                        Response.Write(string.Format("        <H1>{0}</H1>{1}", (string)this.GetLocalResourceObject("ArticleIsNotFoundTitle"), Environment.NewLine));
                        Response.Write("    </div>" + Environment.NewLine);
                        //Response.Write("    <hr />" + Environment.NewLine);
                        Response.Write("    <div id=\"article\">" + Environment.NewLine);
                        Response.Write(string.Format("        <P>{0}</P>{1}", (string)this.GetLocalResourceObject("ArticleDoesNotExist"), Environment.NewLine));
                        Response.Write("    </div>" + Environment.NewLine);
                        //  = (string)this.GetLocalResourceObject("ArticleDoesNotExist");
                        // write a footer
                        string commentaction = "default.aspx?";
                        if (UserContext.SelectedInstanceId == Guid.Empty)
                            commentaction += "i=" + this.InstanceGuid.ToString("N") + "&";
                        commentaction += "a=" + this.AlternateId;
                        if (this.InputUserName.Length > 0)
                            commentaction += "&un=" + this.InputUserName;
                        if (this.InputUserEmail.Length > 0)
                            commentaction += "&ue=" + this.InputUserEmail;
                        if (this.InputListAdmin.Length > 0)
                            commentaction += "&la=" + string.Join(";", this.InputListAdmin);

                        textFooter = textFooter.Replace("{username}", this.InputUserName);
                        textFooter = textFooter.Replace("{useremail}", this.InputUserEmail);
                        textFooter = textFooter.Replace("{homeurl}", instanceUrl);
                        if (articleRow != null)
                            textFooter = textFooter.Replace("{editurl}", string.Format("<a href=\"ArticleViewAdmin.aspx?id={0}&mode=edit\">Edit</a>", articleRow.ArticleGuid.ToString()));
                        else
                            textFooter = textFooter.Replace("{editurl}", string.Empty);
                        textFooter = textFooter.Replace("{micajahurl}", loginUrl);
                        textFooter = textFooter.Replace("{currentyear}", DateTime.Now.Year.ToString(CultureInfo.InvariantCulture));
                        textFooter = textFooter.Replace("{commentaction}", commentaction);
                        //textFooter = textFooter.Replace("{trackingcode}", string.Empty);

                        string trackingcode = string.Empty;
                        Setting trackCode = this.CurrentInstance.Settings.FindByShortName("TrackingCode");
                        if (trackCode != null && !string.IsNullOrEmpty(trackCode.Value))
                            trackingcode = trackCode.Value;
                        textFooter = textFooter.Replace("{trackingcode}", trackingcode + (string)this.GetLocalResourceObject("GlobalTrackingCode"));

                        Response.Write(textFooter);
                        return;
                    }
                    #endregion

                    #region Generate the Instance Home page

                    StringBuilder textHeaderInst = new StringBuilder((string)this.GetLocalResourceObject("Header_Inst"));
                    StringBuilder textFooterInst = new StringBuilder((string)this.GetLocalResourceObject("Footer_Inst"));
                    textHeaderInst = textHeaderInst.Replace("{title}", orgInstName + " - Home");
                    textHeaderInst = textHeaderInst.Replace("{metadescription}", "KB Home Page");
                    textHeaderInst = textHeaderInst.Replace("{searchaction}", "SearchResult.aspx" + (UserContext.SelectedInstanceId == Guid.Empty ? "?i=" + this.InstanceGuid.ToString("N") : string.Empty));
                    textHeaderInst = textHeaderInst.Replace("{orgInstName}", orgInstName);
                    textHeaderInst = textHeaderInst.Replace("{orgUrl}", instanceUrl);
                    textHeaderInst = textHeaderInst.Replace("{canonical}", Canonical);

                    //textHeaderInst = textHeaderInst.Replace("{orgUrl}", this.CurrentInstance.Organization.WebsiteUrl);
                    Response.Write(textHeaderInst.ToString());
                    string listTreeView = string.Empty;
                    MainDataSet.ArticleDataTable articleTable = this.ArticleTableAdapter.GetRecursiveByDepartmentGuid(this.InstanceGuid);
                    this.SortRecursiveTable(ref listTreeView, ref articleTable, null, pageUrl);
                    Response.Write(listTreeView);
                    textFooterInst = textFooterInst.Replace("{micajahurl}", loginUrl);
                    textFooterInst = textFooterInst.Replace("{currentyear}", DateTime.Now.Year.ToString(CultureInfo.InvariantCulture));
                    //textFooterInst = textFooterInst.Replace("{trackingcode}", string.Empty);

                    string trackingcode2 = string.Empty;
                    Setting trackCode2 = this.CurrentInstance.Settings.FindByShortName("TrackingCode");
                    if (trackCode2 != null && !string.IsNullOrEmpty(trackCode2.Value))
                        trackingcode2 = trackCode2.Value;
                    textFooterInst = textFooterInst.Replace("{trackingcode}", trackingcode2 + (string)this.GetLocalResourceObject("GlobalTrackingCode"));

                    Response.Write(textFooterInst);
                    #endregion
                }
                else if (UserContext.SelectedOrganizationId != Guid.Empty && UserContext.SelectedInstanceId == Guid.Empty)
                {
                    Response.Redirect("OrganizationHome.aspx", false);
                    return;
                }
                else
                    Response.Redirect(loginUrl, false);

            }
        }
コード例 #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MagicFormRequest.ColorScheme = Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.DefaultColorScheme;
            if (!this.ClientScript.IsClientScriptBlockRegistered("TreeViewValidator"))
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "TreeViewValidator", string.Format(@"function StartActionValidate(source, arguments) {{ var _treeView = $find('{0}'); if (_treeView) arguments.IsValid = (_treeView.get_selectedNode() != null); }}", TreeViewParentArticleToDelete.ClientID), true);

            UploadControl.OrganizationId = UserContext.Current.SelectedOrganization.OrganizationId;
            UploadControl.OrganizationName = UserContext.Current.SelectedOrganization.Name;
            UploadControl.DepartmentName = UserContext.Current.SelectedInstance.Name;
            UploadControl.DepartmentId = UserContext.Current.SelectedInstance.InstanceId;

            if (!IsPostBack)
            {
                //                FileAdminListCtrl.UploadControlsUniqueId = ButtonUpdate.UniqueID;
                Master.AutoGenerateBreadcrumbs = false;
                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("Home"), UserContext.Current.StartPageUrl, string.Empty, false);
                //SearchArticleCtrl.InstanceGuid = UserContext.Current.SelectedInstance.InstanceId;

                if (!this.ArticleGuid.Equals(Guid.Empty))
                {
                    MainDataSet.ArticleRow articleRow = this.GetCurrentArticle();
                    if (articleRow != null)
                    {
                        using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
                        {
                            taComment.MarkAsRead(articleRow.ArticleGuid);
                        }
                        //Master.AutoGenerateBreadcrumbs = false;
                        ArticlesTreeCtrl.ArticleGuid = articleRow.ArticleGuid;

                        if (this.Mode == "edit")
                        {
                            DoArticleEdit(articleRow);
                            return;
                        }
                        if (articleRow.Type == ArticleType.Request.ToString())
                        {
                            UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheRequestsList"), "RequestList.aspx", string.Empty, false);
                            UserContext.Breadcrumbs.AddRange(Utils.GenerateBreadCrumbs(articleRow.ArticleGuid, UserContext.Current.SelectedInstance.InstanceId, true));
                            ShowRequestView();
                            MagicFormRequest.DataBind();
                            ImageListCtrl.Visible = FileListCtrl.Visible = false;
                            return;
                        }
                        else if (articleRow.Type == ArticleType.Article.ToString())
                        {
                            if (Request.QueryString["UC"] != null)
                                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheUnreadCommentsList"), "UnreadComments.aspx", string.Empty, false);
                            else
                                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheInstanceHome"), "InstanceHomeAdmin.aspx", string.Empty, false);
                            UserContext.Breadcrumbs.AddRange(Utils.GenerateBreadCrumbs(articleRow.ArticleGuid, UserContext.Current.SelectedInstance.InstanceId, true));
                            DoAricleView(articleRow);

                            return;
                        }
                    }
                    Master.AutoGenerateBreadcrumbs = false;
                    Master.ErrorMessage = (string)this.GetLocalResourceObject("ArticleNotFound");
                }
                else
                {
                    UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheInstanceHome"), "InstanceHomeAdmin.aspx", string.Empty, false);
                    UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("AddNewArticle"), string.Empty, string.Empty, false);
                    DoArticleEdit(null);
                }
            }
        }
コード例 #9
0
ファイル: Unsubscribe.aspx.cs プロジェクト: bigWebApps/KB-Old
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["token"]))
            {
                string   decrypted = Utils.Decrypt(Request.QueryString["token"], "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);
                string[] splitted  = decrypted.Split('&');
                if (splitted.Length > 3)
                {
                    string email = splitted[0];
                    int    type; int.TryParse(splitted[1], out type);
                    int    commentId; int.TryParse(splitted[2], out commentId);
                    Guid   instanceId     = new Guid(splitted[3]);
                    Guid   organizationId = new Guid(splitted[4]);

                    if (type == 1) // Unsubscribe from article
                    {
                        if (InstanceAdminEmails(organizationId, instanceId).Contains(email))
                        {
                            string encrypted = Utils.Encrypt(String.Format("{0}&{1}&{2}&{3}&{4}", email, 2, commentId.ToString(CultureInfo.InvariantCulture), instanceId.ToString(), organizationId.ToString()), "Dshd*&^*@dsdss", "237w&@2d", "SHA1", 2, "&s2hfyDjuf372*73", 256);

                            int indexUrl = Request.Url.AbsoluteUri.IndexOf(":" + Request.Url.Port.ToString());
                            if (indexUrl <= 0)
                            {
                                indexUrl = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath);
                            }
                            string siteUrl = Request.Url.AbsoluteUri.Substring(0, indexUrl) + Request.ApplicationPath;
                            string url     = siteUrl + String.Format("Unsubscribe.aspx?token={0}", encrypted);
                            Message.Text            = String.Format("You cannot unsubscribe from this article, you are receiving emails because you are administrator of the KB system.<br><br><a href='{0}'>Click here to stop receiving all emails</a>", url);
                            CanCloseLiteral.Visible = false;
                        }
                        else
                        {
                            MainDataSetTableAdapters.CommentTableAdapter comments = new MainDataSetTableAdapters.CommentTableAdapter();
                            MainDataSet.CommentDataTable commentDataTable         = comments.GetDataByCommentId(commentId);
                            if (commentDataTable != null && commentDataTable.Rows.Count > 0)
                            {
                                if (commentDataTable[0].ReceiveEmailUpdate)
                                {
                                    comments.Unsubscribe(commentId);
                                    Message.Text = "You have succussfuly unsubscribe from this article.";
                                }
                                else
                                {
                                    Message.Text = "You have been already unsubscribed from this article.";
                                }
                            }
                        }
                    }
                    else  // Unsubscribe from all emails
                    {
                        MainDataSetTableAdapters.DoNotEmailTableAdapter doNotEmail = new MainDataSetTableAdapters.DoNotEmailTableAdapter();
                        MainDataSet.DoNotEmailDataTable doNotEmailDataTable        = doNotEmail.GetDataByEmail(instanceId, email);
                        if (doNotEmailDataTable == null || doNotEmailDataTable.Rows.Count == 0)
                        {
                            doNotEmail.Insert(Guid.NewGuid(), instanceId, email);
                            Message.Text = "You have succussfuly unsubscribe from all emails.";
                        }
                        else
                        {
                            Message.Text = "You have been already unsubscribed from all emails.";
                        }
                    }
                }
            }
        }
コード例 #10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MagicFormRequest.ColorScheme = Micajah.Common.Configuration.FrameworkConfiguration.Current.WebApplication.DefaultColorScheme;
            if (!this.ClientScript.IsClientScriptBlockRegistered("TreeViewValidator"))
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "TreeViewValidator", string.Format(@"function StartActionValidate(source, arguments) {{ var _treeView = $find('{0}'); if (_treeView) arguments.IsValid = (_treeView.get_selectedNode() != null); }}", TreeViewParentArticleToDelete.ClientID), true);
            }

            UploadControl.OrganizationId   = UserContext.Current.SelectedOrganization.OrganizationId;
            UploadControl.OrganizationName = UserContext.Current.SelectedOrganization.Name;
            UploadControl.DepartmentName   = UserContext.Current.SelectedInstance.Name;
            UploadControl.DepartmentId     = UserContext.Current.SelectedInstance.InstanceId;

            if (!IsPostBack)
            {
                //                FileAdminListCtrl.UploadControlsUniqueId = ButtonUpdate.UniqueID;
                Master.AutoGenerateBreadcrumbs = false;
                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("Home"), UserContext.Current.StartPageUrl, string.Empty, false);
                //SearchArticleCtrl.InstanceGuid = UserContext.Current.SelectedInstance.InstanceId;

                if (!this.ArticleGuid.Equals(Guid.Empty))
                {
                    MainDataSet.ArticleRow articleRow = this.GetCurrentArticle();
                    if (articleRow != null)
                    {
                        using (MainDataSetTableAdapters.CommentTableAdapter taComment = new MainDataSetTableAdapters.CommentTableAdapter())
                        {
                            taComment.MarkAsRead(articleRow.ArticleGuid);
                        }
                        //Master.AutoGenerateBreadcrumbs = false;
                        ArticlesTreeCtrl.ArticleGuid = articleRow.ArticleGuid;

                        if (this.Mode == "edit")
                        {
                            DoArticleEdit(articleRow);
                            return;
                        }
                        if (articleRow.Type == ArticleType.Request.ToString())
                        {
                            UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheRequestsList"), "RequestList.aspx", string.Empty, false);
                            UserContext.Breadcrumbs.AddRange(Utils.GenerateBreadCrumbs(articleRow.ArticleGuid, UserContext.Current.SelectedInstance.InstanceId, true));
                            ShowRequestView();
                            MagicFormRequest.DataBind();
                            ImageListCtrl.Visible = FileListCtrl.Visible = false;
                            return;
                        }
                        else if (articleRow.Type == ArticleType.Article.ToString())
                        {
                            if (Request.QueryString["UC"] != null)
                            {
                                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheUnreadCommentsList"), "UnreadComments.aspx", string.Empty, false);
                            }
                            else
                            {
                                UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheInstanceHome"), "InstanceHomeAdmin.aspx", string.Empty, false);
                            }
                            UserContext.Breadcrumbs.AddRange(Utils.GenerateBreadCrumbs(articleRow.ArticleGuid, UserContext.Current.SelectedInstance.InstanceId, true));
                            DoAricleView(articleRow);

                            return;
                        }
                    }
                    Master.AutoGenerateBreadcrumbs = false;
                    Master.ErrorMessage            = (string)this.GetLocalResourceObject("ArticleNotFound");
                }
                else
                {
                    UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("TheInstanceHome"), "InstanceHomeAdmin.aspx", string.Empty, false);
                    UserContext.Breadcrumbs.Add((string)this.GetLocalResourceObject("AddNewArticle"), string.Empty, string.Empty, false);
                    DoArticleEdit(null);
                }
            }
        }