protected void lnkFileName_Click(object sender, EventArgs e)
    {
        string documentId = Request["id"]; //check for id in URL

        if (!string.IsNullOrEmpty(documentId))
        {
            Article article = DocoManager.GetArticle(documentId);
            AuditManager.Audit(Page.User.Identity.Name, article.Id, AuditRecord.AuditAction.Viewed);
            article = DocoManager.GetArticle(documentId);
            SetTrafficLight(article);

            string navigateUrl =
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resource.NewObjectPath,
                    "Files",
                    article.Category.Id);

            if (!string.IsNullOrEmpty(article.FileName))
            {
                navigateUrl = string.Format(
                    CultureInfo.InvariantCulture,
                    Resource.DocoFilesLoc + Resource.FileOpen,
                    UrlEncoding.Encode(Path.Combine(navigateUrl, article.FileName)));
                navigateUrl = navigateUrl.Insert(navigateUrl.IndexOf("&"), "&aid=" + article.Id);

                // go to that url
                Page.Response.Redirect(navigateUrl);
            }
        }
    }
Example #2
0
    protected void btnAcknowledge_Click(object sender, EventArgs e)
    {
        BusiBlocks.DocoBlock.Article latestArticle = BusiBlocks.DocoBlock.DocoManager.GetArticleByName(ArticleName, false);

        AuditManager.Audit(Page.User.Identity.Name, latestArticle.Id + latestArticle.Version.ToString(), AuditRecord.AuditAction.Acknowledged);

        Response.Redirect(hidReferrer.Value);
    }
    protected void btnAcknowledge_Click(object sender, EventArgs e)
    {
        string documentId;

        documentId = Request["id"]; //check for id in URL

        if (!string.IsNullOrEmpty(documentId))
        {
            Article article = DocoManager.GetArticle(documentId);
            AuditManager.Audit(Page.User.Identity.Name, article.Id, AuditRecord.AuditAction.Acknowledged);
            article = DocoManager.GetArticle(documentId);
            SetTrafficLight(article);
        }
    }
Example #4
0
    private void BindTrafficLight()
    {
        // The RadTabStrip1 is the edit/preview strip. This is visible when we are in edit mode.
        // Therefore don't show the acknowledge checkbox if we are in edit mode.

        if (this.RadTabStrip1.Visible)
        {
            ackText.Visible = false;
        }
        else
        {
            Article article = DocoManager.GetArticle(ArticleId);
            if (SecurityHelper.CanUserView(Page.User.Identity.Name, article.Category.Id))
            {
                if (!string.IsNullOrEmpty(Request.QueryString["mode"]) && Request.QueryString["mode"].Equals("approve"))
                {
                    divAckButton.Attributes["class"] = "divAckChecked";
                    btnAcknowledge.Enabled           = false;
                }
                else if (article.RequiresAck)
                {
                    if (article.Acknowledged)
                    {
                        divAckButton.Attributes["class"] = "divAckChecked";
                        btnAcknowledge.Enabled           = false;
                    }
                    else
                    {
                        divAckButton.Attributes["class"] = "divAckButton";
                    }
                }
                else
                {
                    //check the auti record for the article- audit if no records found.
                    IList <AuditRecord> records = AuditManager.GetAuditItems(Page.User.Identity.Name, ArticleId, AuditRecord.AuditAction.Viewed);
                    if (records.Count == 0)
                    {
                        AuditManager.Audit(Page.User.Identity.Name, ArticleId, AuditRecord.AuditAction.Viewed);
                    }
                    ackText.Visible = false;
                }
            }
            else
            {
                divAckButton.Visible = false;
                spanAcked.Visible    = false;
            }
        }
    }
Example #5
0
 private void BindTrafficLight()
 {
     //check for reader access. If not in reader's access than do not apply traffic lights and no auditing required.
     if (SecurityHelper.CanUserView(Page.User.Identity.Name, Item.Category.Id))
     {
         if (!string.IsNullOrEmpty(Request.QueryString["mode"]) && Request.QueryString["mode"].Equals("approve"))
         {
             lblAck.CssClass = "ack";
             divAckButton.Attributes["class"] = "divAckChecked";
             btnAcknowledge.Enabled           = false;
         }
         else if (Item.RequiresAck)
         {
             if (Item.Acknowledged)
             {
                 lblAck.CssClass = "ack";
                 divAckButton.Attributes["class"] = "divAckChecked";
                 btnAcknowledge.Enabled           = false;
             }
             else
             {
                 lblAck.CssClass = "notAck";
                 divAckButton.Attributes["class"] = "divAckButton";
             }
             IList <AuditRecord> records = AuditManager.GetAuditItems(Page.User.Identity.Name, Item.Id, AuditRecord.AuditAction.Acknowledged);
             if (records.Count > 0)
             {
                 lblAck.Text = records[0].TimeStamp.ToString();
             }
         }
         else
         {
             IList <AuditRecord> records = AuditManager.GetAuditItems(Page.User.Identity.Name, Item.Id, AuditRecord.AuditAction.Viewed);
             if (records.Count == 0)
             {
                 AuditManager.Audit(Page.User.Identity.Name, Item.Id, AuditRecord.AuditAction.Viewed);
             }
             ackText.Visible = false;
             lblAck.CssClass = "view";
         }
     }
     else
     {
         HideTrafficLight();
     }
 }
Example #6
0
    /// <summary>
    /// Retrieves a URL friendly string that points to an article.
    /// </summary>
    /// <param name="name">The name of the article</param>
    /// <returns>A user friendly Url for the article</returns>
    protected string GetViewArticleUrl(string name)
    {
        // If it is an uploaded document, then view the document and set the acknowledged flag
        // to true (via audit).
        Article article = DocoManager.GetArticleByName(name, false);

        if (article.IsUpload)
        {
            if (!article.Acknowledged)
            {
                // todo Popup to say that this will be acknowledged.
                AuditManager.Audit(Page.User.Identity.Name, article.Id + article.Version.ToString(CultureInfo.InvariantCulture), AuditRecord.AuditAction.Acknowledged);
            }

            string root = Server.MapPath(System.IO.Path.Combine("../Doco/", System.Web.Configuration.WebConfigurationManager.AppSettings.Get(Resource.Root)));
            string path =
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resource.NewObjectPath,
                    root,
                    article.Category.Id);

            if (!string.IsNullOrEmpty(article.FileName))
            {
                string url = string.Format(
                    CultureInfo.InvariantCulture,
                    Resource.DocoFilesLoc + Resource.FileOpen,
                    UrlEncoding.Encode(System.IO.Path.Combine(path, article.FileName)));
                return(url);
            }
            else
            {
                return(string.Empty);
            }
        }
        else
        {
            return(Navigation.Doco_ViewArticle(name, 0).GetClientUrl(this, true) + "&cMode=pub&id=" + article.Category.Id);
        }
    }
Example #7
0
    /// <summary>
    /// Loads the meta information for the selected document. Called once on PageInit.
    /// </summary>
    protected void LoadArticle()
    {
        BusiBlocks.DocoBlock.ArticleBase article;

        BusiBlocks.DocoBlock.Article latestArticle = BusiBlocks.DocoBlock.DocoManager.GetArticleByName(ArticleName, false);

        //if (BusiBlocks.SecurityHelper.CanRead(Page.User, latestArticle.Category, latestArticle) == false)
        //  throw new BusiBlocks.InvalidPermissionException("read article");

        if (!BusiBlocks.SecurityHelper.CanUserView(Page.User.Identity.Name, latestArticle.Category.Id) &&
            !BusiBlocks.SecurityHelper.CheckWriteAccess(Page.User.Identity.Name, latestArticle.Category.Id))
        {
            throw new BusiBlocks.InvalidGroupMembershipException();
        }

        EditMode(latestArticle.Category.Id);

        if (ArticleVersion == 0)
        {
            article = latestArticle;
        }
        else
        {
            article = BusiBlocks.DocoBlock.DocoManager.GetArticleByVersion(latestArticle, ArticleVersion);
        }

        LoadArticleMeta(article);

        IsNumbChaps = latestArticle.NumberedChaps;

        //if admin is adding or editing the document then don't audit it.
        if (Request.UrlReferrer != null)
        {
            if (Request.UrlReferrer.AbsoluteUri.Contains("NewArticle.aspx") == false && Request.UrlReferrer.AbsoluteUri.Contains("EditArticle.aspx") == false)
            {
                AuditManager.Audit(Page.User.Identity.Name, article.Id + article.Version.ToString(), AuditRecord.AuditAction.Viewed);
            }
        }
    }
Example #8
0
    /// <summary>
    /// Display the given file.
    /// </summary>
    void OpenFile()
    {
        // Someone clicked on a file or folder...
        // Doesn't matter what's in x: if it has anything then open the file.
        if (!string.IsNullOrEmpty(Request.QueryString[Resource.QSX]))
        {
            // Get the object.
            string   file = Request.QueryString[Resource.QSO];
            FileInfo fi   = new FileInfo(Path.Combine(Server.MapPath("."), file));

            if (!fi.Exists)
            {
                // The file does not exist.
                throw new FileNotFoundException("File not found: " + fi.DirectoryName + "\\" + fi.Name);
            }

            // Set it as viewed
            string articleId = Request.QueryString["aid"];
            if (!string.IsNullOrEmpty(articleId))
            {
                AuditManager.Audit(Page.User.Identity.Name, articleId, AuditRecord.AuditAction.Viewed);
            }

            // Display the file.
            // 'application/octet-stream' should be okay for most cases.
            string attachment =
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resource.ContentDispositionAttachment,
                    fi.Name);
            Response.ContentType = Resource.ContentType;
            Response.AppendHeader(Resource.ContentDisposition, attachment);
            Response.TransmitFile(fi.FullName);
            Response.End();

            // Clear the querystring.
            Request.QueryString.Remove(Resource.QSX);
        }
    }
Example #9
0
    private void BindItem()
    {
        try
        {
            Item item = NewsManager.GetItem(Item.Id);

            lblPageHeading.Text = Item.Title;
            lblAuthor.Text      = Item.Author;
            lblDate.Text        = Utilities.GetDateTimeForDisplay(Item.NewsDate);
            txtDetails.Text     = Item.Description;

            if (!Item.RequiresAck)
            {
                ackText.Visible = false;
                // If this page has the Approval menu, then don't set it as viewed.
                if (!approveFooter.Visible)
                {
                    AuditManager.Audit(Page.User.Identity.Name, Item.Id, AuditRecord.AuditAction.Viewed);
                }
            }

            VersionItem versionItem = VersionManager.GetVersionById(VersionId);

            if (versionItem != null)
            {
                int    index            = versionItem.VersionNumber.IndexOf(".", versionItem.VersionNumber.IndexOf(".") + 1);
                string publishedVersion = versionItem.VersionNumber.Substring(0, index);
                lnkVersion.Text        = "Version&nbsp;" + versionItem.VersionNumber;
                lblVersionNumber.Text  = publishedVersion;
                lnkVersion.NavigateUrl = Navigation.Communication_NewsVersionHistory(versionItem.GroupId).GetServerUrl(true);
            }
        }
        catch (Exception exception)
        {
            throw exception;
            ((IFeedback)Master).SetException(GetType(), exception);
        }
    }
Example #10
0
 protected void btnAcknowledge_Click(object sender, EventArgs e)
 {
     AuditManager.Audit(Utilities.GetUserName(Page.User.Identity.Name), Item.Id, AuditRecord.AuditAction.Acknowledged);
     BindTrafficLight();
 }
Example #11
0
    protected void onLoggedIn(object sender, EventArgs e)
    {
        var loginControl = sender as Login;

        AuditManager.Audit(loginControl.UserName, "Logged In", AuditRecord.AuditAction.LogOn);
    }
Example #12
0
 protected void onLoggedOut(object sender, EventArgs e)
 {
     AuditManager.Audit(Page.User.Identity.Name, "Logged Out", AuditRecord.AuditAction.LogOn);
 }
Example #13
0
    private void LoadArticle(BusiBlocks.DocoBlock.Article latestArticle)
    {
        try
        {
            BusiBlocks.DocoBlock.ArticleBase article;

            if (!BusiBlocks.SecurityHelper.CanUserView(Page.User.Identity.Name, latestArticle.Category.Id))
            {
                throw new BusiBlocks.InvalidGroupMembershipException();
            }

            if (ArticleVersion == 0)
            {
                article = latestArticle;
            }
            else
            {
                article = BusiBlocks.DocoBlock.DocoManager.GetArticleByVersion(latestArticle, ArticleVersion);
            }

            lblArticleTitle.InnerText       = article.Title;
            lblAuthor.InnerText             = Utilities.GetDisplayUser(article.Author);
            lblDate.InnerText               = Utilities.GetDateTimeForDisplay(article.UpdateDate);
            lblVersion.InnerText            = article.Version.ToString();
            lblArticleDescription.InnerText = article.Description;

            string body = article.Body;
            if (ElaborateOutput)
            {
                body = ElaborateXHTML(latestArticle, article);
            }

            if (Printing)
            {
                sectionTOC.Visible    = false;
                sectionBody.InnerHtml = body;
            }
            else
            {
                if (article.TOC == null)
                {
                    sectionTOC.Visible = false;
                    sectionBody.Attributes["class"] = "sectionNoTOC";
                }
                else if (article.TOC.Length > 0)
                {
                    Control TOC = ParseControl(article.TOC);
                    SetControlVisibility(TOC);
                    sectionTOC.Controls.Add(TOC);
                }
                else
                {
                    sectionBody.Attributes["class"] = "sectionNoTOC";
                    sectionTOC.Visible = false;
                }
                AuditManager.Audit(Page.User.Identity.Name, article.Id + article.Version.ToString(), AuditRecord.AuditAction.Viewed);
            }

            sectionBody.InnerHtml = body;

            linkLatestVersion.HRef  = Navigation.Doco_ViewArticle(latestArticle.Name, 0).GetServerUrl(true);
            linkBrowseVersions.HRef = Navigation.Doco_ViewArticleVersions(latestArticle.Name).GetServerUrl(true);

            //Show the edit only if EditLinkVisible and this is the latest article version
            bool enabledEdit = BusiBlocks.SecurityHelper.CanUserEdit(Page.User.Identity.Name, latestArticle.Category.Id);
            linkEdit.Visible = enabledEdit && latestArticle == article;
            linkEdit.HRef    = Navigation.Doco_EditArticle(ArticleName).GetServerUrl(true);
            linkPrint.HRef   = Navigation.Doco_PrintArticle(ArticleName, ArticleVersion).GetServerUrl(true);

            sectionActions.Visible = SectionActionsVisible;

            sectionProperties.Visible = SectionPropertiesVisible;

            btnAcknowledge.Visible = article.RequiresAck && !article.Acknowledged;
        }
        catch (Exception ex)
        {
            throw ex;
            ((IFeedback)Page.Master).SetException(GetType(), ex);
        }
    }
    protected void RadGrid1ItemCommand(object sender, GridCommandEventArgs e)
    {
        ((IFeedback)Page.Master).HideFeedback();

        if (e.CommandName == "view")
        {
            GridDataItem item       = (GridDataItem)e.Item;
            var          lnkbtnView = (LinkButton)e.Item.FindControl("imgBtnView");
            AuditManager.Audit(Page.User.Identity.Name, item["Id"].Text, AuditRecord.AuditAction.Viewed);
            Navigation.Communication_NewsViewItem(lnkbtnView.CommandArgument.ToString(CultureInfo.InvariantCulture)).Redirect(this);
        }
        else if (e.CommandName == "editVersion")
        {
            //edit link to be be the VersionID
            VersionItem versionByItem = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());
            string      groupId       = string.Empty;
            if (versionByItem != null)
            {
                groupId = versionByItem.GroupId;
                string versionId = (VersionManager.GetVersionByGroupId(groupId)).Id;

                string checkedoutUser = VersionManager.GetCheckedOutUser(groupId);
                if ((!string.IsNullOrEmpty(checkedoutUser)) && (checkedoutUser != Page.User.Identity.Name))
                {
                    ((IFeedback)Page.Master).SetError(GetType(), "Unable to edit: News Item is checked out to " + checkedoutUser);
                }
                else
                {
                    //perform checkout by the user here
                    VersionManager.CheckOutVersion(versionId, Page.User.Identity.Name);
                    Navigation.Communication_NewsEditItem(versionId).Redirect(this);
                }
            }
            else //for existing announcements which dont have a version
            {
                //create a version out of the existing announcement

                string itemId        = e.CommandArgument.ToString();
                string VersionNumber = VersionManager.GetVersionNumber(VersionType.New, string.Empty);

                VersionManager.CreateVersionItem(new VersionItem()
                {
                    ItemId        = itemId,
                    GroupId       = itemId,
                    VersionNumber = VersionNumber,
                    DateCreated   = DateTime.Now,
                    Comments      = string.Empty,
                    ModifiedBy    = Utilities.GetUserName(Page.User.Identity.Name)
                });

                //get the version by itemId and then check out.
                string versionId = VersionManager.GetVersionByItemId(itemId).Id;


                VersionManager.CheckOutVersion(versionId, Utilities.GetUserName(Page.User.Identity.Name));

                Navigation.Communication_NewsEditItem(versionId).Redirect(this);
            }
        }
        else if (e.CommandName == "delete")
        {
            Item   itemToDelete         = NewsManager.GetItem(e.CommandArgument.ToString());
            string itemNameBeforeDelete = itemToDelete.Title;
            string groupID = VersionManager.GetVersionByItemId(itemToDelete.Id).GroupId;

            string checkedoutUser = VersionManager.GetCheckedOutUser(groupID);
            if ((!string.IsNullOrEmpty(checkedoutUser)) && (checkedoutUser != Page.User.Identity.Name))
            {
                ((IFeedback)Page.Master).SetError(GetType(), "Unable to delete: News Item is checked out to " + checkedoutUser);
            }
            else
            {
                string itemIdBeforeDelete = itemToDelete.Category.Id;
                NewsManager.DeleteItemByGroup(groupID);

                //Controls_TreeView tree = (Controls_TreeView)this.Parent.FindControl("tree1");
                //tree.PopulateTreeView<Category>(NewsManager.GetViewableCategories(Page.User.Identity.Name), false, false, string.Empty);
                //tree.RebindNode(itemIdBeforeDelete, false);

                ((IFeedback)Page.Master).ShowFeedback(BusiBlocksConstants.Blocks.Administration.ShortName, itemToDelete.GetType().Name, Feedback.Actions.Deleted, itemNameBeforeDelete);
            }
        }
        else if (e.CommandName == RadGrid.FilterCommandName)
        {
            Pair filterPair           = (Pair)e.CommandArgument;
            List <NewsGridItem> items = new List <NewsGridItem>();

            switch (filterPair.Second.ToString())
            {
            case "Category":
                TextBox tbPattern = (e.Item as GridFilteringItem)["Category"].Controls[0] as TextBox;
                FilterExpression = tbPattern.Text;
                BindWithFilter(items);
                RadGridManage.DataBind();
                if (!string.IsNullOrEmpty(FilterExpression))
                {
                    var foundNews  = NewsManager.GetCategoryByLikeName(FilterExpression.Split(',').First(), true);
                    int foundCount = foundNews.Count;
                    if (foundCount > 0)
                    {
                        //Controls_TreeView tree = (Controls_TreeView)this.Parent.FindControl("tree1");
                        //tree.PopulateTreeView<Category>(NewsManager.GetViewableCategories(Page.User.Identity.Name), false, false, string.Empty);
                        //string selectedNode = (foundNews.FirstOrDefault()).Id;
                        //tree.RebindNode(selectedNode, true);
                    }
                }
                break;

            default:
                break;
            }
        }
        else if (e.CommandName == "approveItem")
        {
            VersionItem versionByItem = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());
            string      groupId       = string.Empty;
            if (versionByItem != null)
            {
                groupId = versionByItem.GroupId;

                string checkedoutUser = VersionManager.GetCheckedOutUser(groupId);
                if ((!string.IsNullOrEmpty(checkedoutUser)) && (checkedoutUser != Page.User.Identity.Name))
                {
                    ((IFeedback)Page.Master).SetError(GetType(), "Unable to approve: News Item is checked out to " + checkedoutUser);
                }
                else
                {
                    string versionId = (VersionManager.GetVersionByGroupId(groupId)).Id;
                    Navigation.Communication_NewsViewItemApproval(versionId).Redirect(this);
                }
            }
            else
            {
                Navigation.Communication_NewsViewItemApproval(e.CommandArgument.ToString()).Redirect(this);
            }
        }
        else if (e.CommandName == "checkinItem")
        {
            VersionManager.CheckInVersion(e.CommandArgument.ToString());
            Navigation.Communication_News().Redirect(this);
        }
        else if (e.CommandName == "viewStatus")
        {
            // Navigate to the user view status page and pass the item id
            VersionItem versionByItem = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());
            if (versionByItem != null)
            {
                Navigation.Communication_UserViewStatus(versionByItem.ItemId, versionByItem.Id).Redirect(this);
            }
        }
        //else if (e.CommandName == "UsersViewed")
        //{
        //    Item item = NewsManager.GetItem(e.CommandArgument.ToString());
        //    VersionItem version = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());

        //    IList<User> totalUsers = GetTotalUsers(item.Category.Id);
        //    List<User> usersViewed = new List<BusiBlocks.Membership.User>();
        //    IList<string> personsViewed = new List<string>();

        //    //get the published id.
        //    List<string> publishedIds = new List<string>();
        //    publishedIds = GetRespectivePublishedVersions(version.GroupId, version.VersionNumber);

        //    usersViewed = GetViewUsers(AuditRecord.AuditAction.Viewed, totalUsers, publishedIds);

        //    foreach (User user in usersViewed)
        //        personsViewed.Add(user.Person.Id);

        //    Session["personList"] = personsViewed;

        //    Navigation.Directory_Search().Redirect(this);
        //}
        //else if (e.CommandName == "UsersNotViewed")
        //{
        //    Item item = NewsManager.GetItem(e.CommandArgument.ToString());
        //    VersionItem version = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());

        //    IList<User> totalUsers = GetTotalUsers(item.Category.Id);
        //    List<User> usersViewed = new List<BusiBlocks.Membership.User>();
        //    IList<string> personsNotViewed = new List<string>();

        //    //get the published id.
        //    List<string> publishedIds = new List<string>();
        //    publishedIds = GetRespectivePublishedVersions(version.GroupId, version.VersionNumber);

        //    usersViewed = GetViewUsers(AuditRecord.AuditAction.Viewed, totalUsers, publishedIds);

        //    foreach (User user in totalUsers)
        //        if (!usersViewed.Contains(user))
        //            personsNotViewed.Add(user.Person.Id);

        //    Session["personList"] = personsNotViewed;

        //    Navigation.Directory_Search().Redirect(this);
        //}
        //else if (e.CommandName == "UsersAcked")
        //{
        //    Item item = NewsManager.GetItem(e.CommandArgument.ToString());
        //    VersionItem version = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());

        //    IList<User> totalUsers = GetTotalUsers(item.Category.Id);
        //    List<User> usersViewed = new List<BusiBlocks.Membership.User>();
        //    IList<string> personsViewed = new List<string>();

        //    //get the published id.
        //    List<string> publishedIds = new List<string>();
        //    publishedIds = GetRespectivePublishedVersions(version.GroupId, version.VersionNumber);

        //    usersViewed = GetViewUsers(AuditRecord.AuditAction.Acknowledged, totalUsers, publishedIds);

        //    foreach (User user in usersViewed)
        //        personsViewed.Add(user.Person.Id);

        //    Session["personList"] = personsViewed;

        //    Navigation.Directory_Search().Redirect(this);
        //}
        //else if (e.CommandName == "UsersNotAcked")
        //{
        //    Item item = NewsManager.GetItem(e.CommandArgument.ToString());
        //    VersionItem version = VersionManager.GetVersionByItemId(e.CommandArgument.ToString());

        //    IList<User> totalUsers = GetTotalUsers(item.Category.Id);
        //    List<User> usersViewed = new List<BusiBlocks.Membership.User>();
        //    IList<string> personsNotViewed = new List<string>();

        //    //get the published id.
        //    List<string> publishedIds = new List<string>();
        //    publishedIds = GetRespectivePublishedVersions(version.GroupId, version.VersionNumber);

        //    usersViewed = GetViewUsers(AuditRecord.AuditAction.Acknowledged, totalUsers, publishedIds);

        //    foreach (User user in totalUsers)
        //        if (!usersViewed.Contains(user))
        //            personsNotViewed.Add(user.Person.Id);

        //    Session["personList"] = personsNotViewed;

        //    Navigation.Directory_Search().Redirect(this);
        //}
    }