示例#1
0
        public void TestUserAccounts()
        {
            GreyFoxUserManager um = new GreyFoxUserManager();

            um.CreateTable();
            GreyFoxRoleManager rm = new GreyFoxRoleManager();

            rm.CreateTable();
            um.CreateReferences();

            int userAID;
            int userBID;
            int userCID;

            bool adminRoleAdded;

            SecurityTestData.GetInstance().RoleAdmin.Save();
            SecurityTestData.GetInstance().RoleUser.Save();
            SecurityTestData.GetInstance().RoleGuest.Save();

            userAID = SecurityTestData.GetInstance().UserA.Save();
            userBID = SecurityTestData.GetInstance().UserB.Save();
            userCID = SecurityTestData.GetInstance().UserC.Save();

            GreyFoxUser user = new GreyFoxUser(userBID);

            user.Roles.Add(SecurityTestData.GetInstance().RoleAdmin);
            user.Save();

            user = null;

            user = new GreyFoxUser(userBID);

            adminRoleAdded = false;

            foreach (GreyFoxRole role in user.Roles)
            {
                if (role.Name == SecurityTestData.GetInstance().RoleAdmin.Name)
                {
                    adminRoleAdded = true;
                }
            }

            if (!adminRoleAdded)
            {
                throw new Exception("Admin role was not correctly added.");
            }

            // Delete Users - 'User Roles should be clear
            SecurityTestData.GetInstance().UserA.Delete();
            SecurityTestData.GetInstance().UserB.Delete();
            SecurityTestData.GetInstance().UserC.Delete();

            // Delete Roles - 'User Roles should be clear
            SecurityTestData.GetInstance().RoleAdmin.Delete();
            SecurityTestData.GetInstance().RoleUser.Delete();
            SecurityTestData.GetInstance().RoleGuest.Delete();
        }
示例#2
0
        /// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void RenderContent(HtmlTextWriter output)
        {
            GreyFoxUserManager    m = new GreyFoxUserManager();
            GreyFoxUserCollection userCollection = m.GetCollection(string.Empty, "Username", GreyFoxUserFlags.Contact);

            bool   rowflag = false;
            string rowCssClass;

            //
            // Render Records
            //
            foreach (GreyFoxUser user in userCollection)
            {
                if (!Page.Response.IsClientConnected)
                {
                    return;
                }

                if (rowflag)
                {
                    rowCssClass = this.DefaultRowCssClass;
                }
                else
                {
                    rowCssClass = this.AlternateRowCssClass;
                }

                rowflag = !rowflag;

                output.WriteBeginTag("tr");
                output.WriteAttribute("i", user.ID.ToString());
                output.Write(HtmlTextWriter.TagRightChar);
                output.WriteLine();
                output.Indent++;

                //
                // Render Main Representation of Record
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("valign", "top");
                output.WriteAttribute("class", rowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.WriteFullBeginTag("strong");
                output.Write(user.userName);
                output.WriteEndTag("strong");
                output.Write("<br>");
                output.Write(user.Contact.FullName);
                output.WriteEndTag("td");
                output.WriteLine();

                output.Indent--;
                output.WriteEndTag("tr");
                output.WriteLine();
            }
        }
示例#3
0
        public static GreyFoxUser GetUser(string username)
        {
            GreyFoxUserManager    userManager;
            GreyFoxUserCollection users;

            userManager = new GreyFoxUserManager();
            users       = userManager.GetCollection(
                "UserName='******'", "''") + "'", string.Empty);
            if (users.Count > 0)
            {
                return(users[0]);
            }
            return(null);
        }
        private void bindDropDownLists()
        {
            #region Bind New Folder Child Data

            msUser.Items.Add(new ListItem("Null", "Null"));
            GreyFoxUserManager    userManager    = new GreyFoxUserManager();
            GreyFoxUserCollection userCollection = userManager.GetCollection(string.Empty, string.Empty, null);
            foreach (GreyFoxUser user in userCollection)
            {
                ListItem i = new ListItem(user.ToString(), user.ID.ToString());
                msUser.Items.Add(i);
            }

            #endregion
        }
示例#5
0
        /// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void RenderContent(HtmlTextWriter output)
        {
            GreyFoxUserManager    m = new GreyFoxUserManager();
            GreyFoxUserCollection greyFoxUserCollection = m.GetCollection(string.Empty, string.Empty, null);

            // Render Header Row
            this.headerLockEnabled = true;
            RenderRow(this.HeaderRowCssClass, );

            bool   rowflag = false;
            string rowCssClass;

            //
            // Render Records
            //
            foreach (GreyFoxUser greyFoxUser in greyFoxUserCollection)
            {
                if (rowflag)
                {
                    rowCssClass = defaultRowCssClass;
                }
                else
                {
                    rowCssClass = alternateRowCssClass;
                }
                rowflag = !rowflag;
                output.WriteBeginTag("tr");
                output.WriteAttribute("i", greyFoxUser.ID.ToString());
                output.WriteLine(HtmlTextWriter.TagRightChar);
                output.Indent++;

                output.Indent--;
                output.WriteEndTag("tr");
                output.WriteLine();
            }
        }
示例#6
0
        private void bindDropDownLists()
        {
            #region Bind General Child Data

            msUser.Items.Add(new ListItem("Null", "Null"));
            GreyFoxUserManager    userManager    = new GreyFoxUserManager();
            GreyFoxUserCollection userCollection = userManager.GetCollection(string.Empty, string.Empty, null);
            foreach (GreyFoxUser user in userCollection)
            {
                ListItem i = new ListItem(user.ToString(), user.ID.ToString());
                msUser.Items.Add(i);
            }

            msRequestContent.Items.Add(new ListItem("Null", "Null"));
            DbContentClipManager    requestContentManager    = new DbContentClipManager();
            DbContentClipCollection requestContentCollection = requestContentManager.GetCollection(string.Empty, string.Empty, null);
            foreach (DbContentClip requestContent in requestContentCollection)
            {
                ListItem i = new ListItem(requestContent.ToString(), requestContent.ID.ToString());
                msRequestContent.Items.Add(i);
            }

            #endregion
        }
示例#7
0
        public GreyFoxUserPreferenceCollection GetCollection(int topCount, string whereClause, string sortClause, params GreyFoxUserPreferenceFlags[] optionFlags)
        {
            StringBuilder query;
            Database      database;
            DbCommand     dbCommand;
            IDataReader   r;
            GreyFoxUserPreferenceCollection greyFoxUserPreferenceCollection;

            int innerJoinOffset;

            query = new StringBuilder("SELECT ");

            if (topCount > 0)
            {
                query.Append("TOP ");
                query.Append(topCount);
                query.Append(" ");
            }

            foreach (string columnName in InnerJoinFields)
            {
                query.Append("GreyFoxUserPreference.");
                query.Append(columnName);
                query.Append(",");
            }

            innerJoinOffset = InnerJoinFields.GetUpperBound(0) + 1;
            int userOffset        = -1;
            int userContactOffset = -1;

            //
            // Append Option Flag Fields
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case GreyFoxUserPreferenceFlags.User:
                        for (int i = 0; i <= GreyFoxUserManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("User.");
                            query.Append(GreyFoxUserManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        userOffset      = innerJoinOffset;
                        innerJoinOffset = userOffset + GreyFoxUserManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case GreyFoxUserPreferenceFlags.UserContact:
                        for (int i = 0; i <= GreyFoxContactManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("User_Contact.");
                            query.Append(GreyFoxContactManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        userContactOffset = innerJoinOffset;
                        innerJoinOffset   = userContactOffset + GreyFoxContactManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;
                    }
                }
            }

            //
            // Remove trailing comma
            //
            query.Length--;
            if (optionFlags != null)
            {
                query.Append(" FROM ");

                //
                // Start INNER JOIN expressions
                //
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    query.Append("(");
                }

                query.Append("sysGlobal_UserPreferences AS GreyFoxUserPreference");
            }
            else
            {
                query.Append(" FROM sysGlobal_UserPreferences AS GreyFoxUserPreference");
            }
            //
            // Finish INNER JOIN expressions
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case GreyFoxUserPreferenceFlags.User:
                        query.Append(" LEFT JOIN sysGlobal_Users AS User ON GreyFoxUserPreference.UserID = User.GreyFoxUserID)");
                        break;

                    case GreyFoxUserPreferenceFlags.UserContact:
                        query.Append(" LEFT JOIN sysGlobal_Contacts AS User_Contact ON User.ContactID = User_Contact.GreyFoxContactID)");
                        break;
                    }
                }
            }

            //
            // Render where clause
            //
            if (whereClause != string.Empty)
            {
                query.Append(" WHERE ");
                query.Append(whereClause);
            }

            //
            // Render sort clause
            //
            if (sortClause != string.Empty)
            {
                query.Append(" ORDER BY ");
                query.Append(sortClause);
            }

            //
            // Render final semicolon
            //
            query.Append(";");
            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
                        #if DEBUG
            try
            {
                r = database.ExecuteReader(dbCommand);
            }
            catch (Exception e)
            {
                string msg = e.Message;
                throw(new Exception(msg + " --- Query: " + query.ToString()));
            }
                        #else
            r = database.ExecuteReader(dbCommand);
                        #endif

            greyFoxUserPreferenceCollection = new GreyFoxUserPreferenceCollection();

            while (r.Read())
            {
                GreyFoxUserPreference greyFoxUserPreference = ParseFromReader(r, 0, 1);

                // Fill User
                if (userOffset != -1 && !r.IsDBNull(userOffset))
                {
                    GreyFoxUserManager.FillFromReader(greyFoxUserPreference.user, r, userOffset, userOffset + 1);

                    // Fill
                    if (userContactOffset != -1 && !r.IsDBNull(userContactOffset))
                    {
                        GreyFoxContactManager.FillFromReader(greyFoxUserPreference.user.Contact, "sysGlobal_Contacts", r, userContactOffset, userContactOffset + 1);
                    }
                }

                greyFoxUserPreferenceCollection.Add(greyFoxUserPreference);
            }

            // Microsoft DAAB still needs to close readers.
            r.Close();

            return(greyFoxUserPreferenceCollection);
        }
示例#8
0
        public DbContentHitCollection GetCollection(int topCount, string whereClause, string sortClause, params DbContentHitFlags[] optionFlags)
        {
            StringBuilder          query;
            Database               database;
            DbCommand              dbCommand;
            IDataReader            r;
            DbContentHitCollection dbContentHitCollection;

            int innerJoinOffset;

            query = new StringBuilder("SELECT ");

            if (topCount > 0)
            {
                query.Append("TOP ");
                query.Append(topCount);
                query.Append(" ");
            }

            foreach (string columnName in InnerJoinFields)
            {
                query.Append("DbContentHit.");
                query.Append(columnName);
                query.Append(",");
            }

            innerJoinOffset = InnerJoinFields.GetUpperBound(0) + 1;
            int userOffset                        = -1;
            int userContactOffset                 = -1;
            int requestContentOffset              = -1;
            int requestContentStatusOffset        = -1;
            int requestContentParentCatalogOffset = -1;
            int requestContentRatingOffset        = -1;
            int requestContentWorkingDraftOffset  = -1;

            //
            // Append Option Flag Fields
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DbContentHitFlags.User:
                        for (int i = 0; i <= GreyFoxUserManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("User.");
                            query.Append(GreyFoxUserManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        userOffset      = innerJoinOffset;
                        innerJoinOffset = userOffset + GreyFoxUserManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.UserContact:
                        for (int i = 0; i <= GreyFoxContactManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("User_Contact.");
                            query.Append(GreyFoxContactManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        userContactOffset = innerJoinOffset;
                        innerJoinOffset   = userContactOffset + GreyFoxContactManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.RequestContent:
                        for (int i = 0; i <= DbContentClipManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("RequestContent.");
                            query.Append(DbContentClipManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        requestContentOffset = innerJoinOffset;
                        innerJoinOffset      = requestContentOffset + DbContentClipManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.RequestContentStatus:
                        for (int i = 0; i <= DbContentStatusManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("RequestContent_Status.");
                            query.Append(DbContentStatusManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        requestContentStatusOffset = innerJoinOffset;
                        innerJoinOffset            = requestContentStatusOffset + DbContentStatusManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.RequestContentParentCatalog:
                        for (int i = 0; i <= DbContentCatalogManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("RequestContent_ParentCatalog.");
                            query.Append(DbContentCatalogManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        requestContentParentCatalogOffset = innerJoinOffset;
                        innerJoinOffset = requestContentParentCatalogOffset + DbContentCatalogManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.RequestContentRating:
                        for (int i = 0; i <= DbContentRatingManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("RequestContent_Rating.");
                            query.Append(DbContentRatingManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        requestContentRatingOffset = innerJoinOffset;
                        innerJoinOffset            = requestContentRatingOffset + DbContentRatingManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DbContentHitFlags.RequestContentWorkingDraft:
                        for (int i = 0; i <= DbContentClipManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("RequestContent_WorkingDraft.");
                            query.Append(DbContentClipManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        requestContentWorkingDraftOffset = innerJoinOffset;
                        innerJoinOffset = requestContentWorkingDraftOffset + DbContentClipManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;
                    }
                }
            }

            //
            // Remove trailing comma
            //
            query.Length--;
            if (optionFlags != null)
            {
                query.Append(" FROM ");

                //
                // Start INNER JOIN expressions
                //
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    query.Append("(");
                }

                query.Append("kitCms_Hits AS DbContentHit");
            }
            else
            {
                query.Append(" FROM kitCms_Hits AS DbContentHit");
            }
            //
            // Finish INNER JOIN expressions
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DbContentHitFlags.User:
                        query.Append(" LEFT JOIN sysGlobal_Users AS User ON DbContentHit.UserID = User.GreyFoxUserID)");
                        break;

                    case DbContentHitFlags.UserContact:
                        query.Append(" LEFT JOIN sysGlobal_Contacts AS User_Contact ON User.ContactID = User_Contact.GreyFoxContactID)");
                        break;

                    case DbContentHitFlags.RequestContent:
                        query.Append(" LEFT JOIN kitCms_Clips AS RequestContent ON DbContentHit.RequestContentID = RequestContent.DbContentClipID)");
                        break;

                    case DbContentHitFlags.RequestContentStatus:
                        query.Append(" LEFT JOIN kitCms_Statuses AS RequestContent_Status ON RequestContent.StatusID = RequestContent_Status.DbContentStatusID)");
                        break;

                    case DbContentHitFlags.RequestContentParentCatalog:
                        query.Append(" LEFT JOIN kitCms_Catalogs AS RequestContent_ParentCatalog ON RequestContent.ParentCatalogID = RequestContent_ParentCatalog.DbContentCatalogID)");
                        break;

                    case DbContentHitFlags.RequestContentRating:
                        query.Append(" LEFT JOIN kitCms_Ratings AS RequestContent_Rating ON RequestContent.RatingID = RequestContent_Rating.DbContentRatingID)");
                        break;

                    case DbContentHitFlags.RequestContentWorkingDraft:
                        query.Append(" LEFT JOIN kitCms_Clips AS RequestContent_WorkingDraft ON RequestContent.WorkingDraftID = RequestContent_WorkingDraft.DbContentClipID)");
                        break;
                    }
                }
            }

            //
            // Render where clause
            //
            if (whereClause != string.Empty)
            {
                query.Append(" WHERE ");
                query.Append(whereClause);
            }

            //
            // Render sort clause
            //
            if (sortClause != string.Empty)
            {
                query.Append(" ORDER BY ");
                query.Append(sortClause);
            }

            //
            // Render final semicolon
            //
            query.Append(";");
            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
                        #if DEBUG
            try
            {
                r = database.ExecuteReader(dbCommand);
            }
            catch (Exception e)
            {
                string msg = e.Message;
                throw(new Exception(msg + " --- Query: " + query.ToString()));
            }
                        #else
            r = database.ExecuteReader(dbCommand);
                        #endif

            dbContentHitCollection = new DbContentHitCollection();

            while (r.Read())
            {
                DbContentHit dbContentHit = ParseFromReader(r, 0, 1);

                // Fill User
                if (userOffset != -1 && !r.IsDBNull(userOffset))
                {
                    GreyFoxUserManager.FillFromReader(dbContentHit.user, r, userOffset, userOffset + 1);

                    // Fill
                    if (userContactOffset != -1 && !r.IsDBNull(userContactOffset))
                    {
                        GreyFoxContactManager.FillFromReader(dbContentHit.user.Contact, "sysGlobal_Contacts", r, userContactOffset, userContactOffset + 1);
                    }
                }

                // Fill RequestContent
                if (requestContentOffset != -1 && !r.IsDBNull(requestContentOffset))
                {
                    DbContentClipManager.FillFromReader(dbContentHit.requestContent, r, requestContentOffset, requestContentOffset + 1);

                    // Fill
                    if (requestContentStatusOffset != -1 && !r.IsDBNull(requestContentStatusOffset))
                    {
                        DbContentStatusManager.FillFromReader(dbContentHit.requestContent.Status, r, requestContentStatusOffset, requestContentStatusOffset + 1);
                    }

                    // Fill Parent Catalog
                    if (requestContentParentCatalogOffset != -1 && !r.IsDBNull(requestContentParentCatalogOffset))
                    {
                        DbContentCatalogManager.FillFromReader(dbContentHit.requestContent.ParentCatalog, r, requestContentParentCatalogOffset, requestContentParentCatalogOffset + 1);
                    }

                    // Fill
                    if (requestContentRatingOffset != -1 && !r.IsDBNull(requestContentRatingOffset))
                    {
                        DbContentRatingManager.FillFromReader(dbContentHit.requestContent.Rating, r, requestContentRatingOffset, requestContentRatingOffset + 1);
                    }

                    // Fill
                    if (requestContentWorkingDraftOffset != -1 && !r.IsDBNull(requestContentWorkingDraftOffset))
                    {
                        DbContentClipManager.FillFromReader(dbContentHit.requestContent.WorkingDraft, r, requestContentWorkingDraftOffset, requestContentWorkingDraftOffset + 1);
                    }
                }

                dbContentHitCollection.Add(dbContentHit);
            }

            return(dbContentHitCollection);
        }
示例#9
0
        private void bindDropDownLists()
        {
            #region Bind General Child Data

            msStatus.Items.Add(new ListItem("Null", "Null"));
            DbContentStatusManager    statusManager    = new DbContentStatusManager();
            DbContentStatusCollection statusCollection = statusManager.GetCollection(string.Empty, string.Empty);
            foreach (DbContentStatus status in statusCollection)
            {
                ListItem i = new ListItem(status.ToString(), status.ID.ToString());
                msStatus.Items.Add(i);
            }

            #endregion

            #region Bind Publishing Child Data

            msParentCatalog.Items.Add(new ListItem("Null", "Null"));
            DbContentCatalogManager    parentCatalogManager    = new DbContentCatalogManager();
            DbContentCatalogCollection parentCatalogCollection = parentCatalogManager.GetCollection(string.Empty, string.Empty, null);
            foreach (DbContentCatalog parentCatalog in parentCatalogCollection)
            {
                ListItem i = new ListItem(parentCatalog.ToString(), parentCatalog.ID.ToString());
                msParentCatalog.Items.Add(i);
            }

            msRating.Items.Add(new ListItem("Null", "Null"));
            DbContentRatingManager    ratingManager    = new DbContentRatingManager();
            DbContentRatingCollection ratingCollection = ratingManager.GetCollection(string.Empty, string.Empty, null);
            foreach (DbContentRating rating in ratingCollection)
            {
                ListItem i = new ListItem(rating.ToString(), rating.ID.ToString());
                msRating.Items.Add(i);
            }

            msReferences.Items.Add(new ListItem("Null", "Null"));
            DbContentClipManager    referencesManager    = new DbContentClipManager();
            DbContentClipCollection referencesCollection = referencesManager.GetCollection(string.Empty, string.Empty, null);
            foreach (DbContentClip references in referencesCollection)
            {
                ListItem i = new ListItem(references.ToString(), references.ID.ToString());
                msReferences.Items.Add(i);
            }

            #endregion

            #region Bind Contributors Child Data

            msAuthors.Items.Add(new ListItem("Null", "Null"));
            GreyFoxUserManager    authorsManager    = new GreyFoxUserManager();
            GreyFoxUserCollection authorsCollection = authorsManager.GetCollection(string.Empty, string.Empty, null);
            foreach (GreyFoxUser authors in authorsCollection)
            {
                ListItem i = new ListItem(authors.ToString(), authors.ID.ToString());
                msAuthors.Items.Add(i);
            }

            msEditors.Items.Add(new ListItem("Null", "Null"));
            GreyFoxUserManager    editorsManager    = new GreyFoxUserManager();
            GreyFoxUserCollection editorsCollection = editorsManager.GetCollection(string.Empty, string.Empty, null);
            foreach (GreyFoxUser editors in editorsCollection)
            {
                ListItem i = new ListItem(editors.ToString(), editors.ID.ToString());
                msEditors.Items.Add(i);
            }

            #endregion
        }
示例#10
0
        protected void ok_Click(object sender, EventArgs e)
        {
            if (dbContentClipID == 0)
            {
                editDbContentClip = new DbContentClip();
            }
            else
            {
                editDbContentClip = new DbContentClip(dbContentClipID);
            }

            editDbContentClip.Title             = tbTitle.Text;
            editDbContentClip.Description       = tbDescription.Text;
            editDbContentClip.Keywords          = tbKeywords.Text;
            editDbContentClip.OverrideUrl       = tbOverrideUrl.Text;
            editDbContentClip.Icon              = tbIcon.Text;
            editDbContentClip.Body              = tbBody.Text;
            editDbContentClip.PublishDate       = calPublishDateP.SelectedDate;
            editDbContentClip.ExpirationDate    = calExpirationDateP.SelectedDate;
            editDbContentClip.ArchiveDate       = calArchiveDateP.SelectedDate;
            editDbContentClip.Priority          = int.Parse(tbPriority.Text);
            editDbContentClip.SortOrder         = int.Parse(tbSortOrder.Text);
            editDbContentClip.CommentsEnabled   = cbCommentsEnabled.Checked;
            editDbContentClip.NotifyOnComments  = cbNotifyOnComments.Checked;
            editDbContentClip.MenuLabel         = tbMenuLabel.Text;
            editDbContentClip.MenuTooltip       = tbMenuTooltip.Text;
            editDbContentClip.MenuEnabled       = cbMenuEnabled.Checked;
            editDbContentClip.MenuOrder         = int.Parse(tbMenuOrder.Text);
            editDbContentClip.MenuLeftIcon      = tbMenuLeftIcon.Text;
            editDbContentClip.MenuLeftIconOver  = tbMenuLeftIconOver.Text;
            editDbContentClip.MenuRightIcon     = tbMenuRightIcon.Text;
            editDbContentClip.MenuRightIconOver = tbMenuRightIconOver.Text;
            editDbContentClip.MenuBreak         = cbMenuBreak.Checked;

            DbContentClipManager clipManager = new DbContentClipManager();

            editDbContentClip.References = clipManager.EncodeClips(tbReferences.Text);

            if (msParentCatalog.SelectedItem != null)
            {
                editDbContentClip.ParentCatalog = DbContentCatalog.NewPlaceHolder(
                    int.Parse(msParentCatalog.SelectedItem.Value));
            }
            else
            {
                editDbContentClip.ParentCatalog = null;
            }

            if (ratingComboBox.SelectedItem != null)
            {
                editDbContentClip.Rating = DbContentRating.NewPlaceHolder(
                    int.Parse(ratingComboBox.SelectedItem.Value));
            }
            else
            {
                editDbContentClip.Rating = null;
            }

            if (msStatus.SelectedItem != null)
            {
                editDbContentClip.Status = DbContentStatus.NewPlaceHolder(
                    int.Parse(msStatus.SelectedItem.Value));
            }
            else
            {
                editDbContentClip.Status = null;
            }


            GreyFoxUserManager userManager = new GreyFoxUserManager();

            editDbContentClip.Authors = userManager.DecodeString(tbAuthors.Text, ",");
            editDbContentClip.Editors = userManager.DecodeString(tbEditors.Text, ",");

            if (editOnAdd)
            {
                dbContentClipID = editDbContentClip.Save();
            }
            else
            {
                editDbContentClip.Save();
            }

            if (resetOnAdd)
            {
                tbTitle.Text                    = string.Empty;
                tbDescription.Text              = string.Empty;
                tbKeywords.Text                 = string.Empty;
                tbOverrideUrl.Text              = string.Empty;
                tbIcon.Text                     = string.Empty;
                tbBody.Text                     = string.Empty;
                calPublishDateP.SelectedDate    = DateTime.Now;
                calExpirationDateP.SelectedDate = DateTime.Now;
                calArchiveDateP.SelectedDate    = DateTime.Now;
                tbPriority.Text                 = string.Empty;
                tbSortOrder.Text                = string.Empty;
                cbCommentsEnabled.Checked       = false;
                cbNotifyOnComments.Checked      = false;
                tbMenuLabel.Text                = string.Empty;
                tbMenuTooltip.Text              = string.Empty;
                cbMenuEnabled.Checked           = false;
                tbMenuOrder.Text                = string.Empty;
                tbMenuLeftIcon.Text             = string.Empty;
                tbMenuLeftIconOver.Text         = string.Empty;
                tbMenuRightIcon.Text            = string.Empty;
                tbMenuRightIconOver.Text        = string.Empty;
                cbMenuBreak.Checked             = false;
                tbReferences.Text               = string.Empty;
                msParentCatalog.SelectedIndex   = 0;
                ratingComboBox.SelectedIndex    = 0;
                msStatus.SelectedIndex          = 0;
            }

            // Clear Caches
            Amns.GreyFox.Content.Caching.SiteMapCacheControl.ClearSiteMaps();
            Amns.GreyFox.Content.Caching.MenuCacheControl.ClearMenus();

            OnUpdated(EventArgs.Empty);
        }