}//End getList method.

        // =====================================================================================
        /// <summary>
        /// This class filters out the Option object items that the user should not be seeing.
        /// </summary>
        /// <param name="CurrentUser">Evado.Model.Digital.EdUserProfile: a current user profile object</param>
        /// <param name="Project">The current project</param>
        /// <param name="View">List of EvOption: a list options</param>
        /// <remarks>
        /// This method consists of the following steps:
        ///
        /// 1. Loop through the Options list and validate
        /// whether the Current user is not the trailUser and VisitId is not empty.
        ///
        /// 2. Remove the option items that has no role to access Project.
        /// </remarks>
        // -------------------------------------------------------------------------------------
        private void FilterLists(
            Evado.Model.Digital.EdUserProfile CurrentUser,
            Evado.Model.Digital.EdApplication Project,
            List <EvOption> View)
        {
            this.LogMethod("FilterLists method. ");

            //
            // Filter out the studies the user should not be seeing.
            //
            for (int iCount = 0; iCount < View.Count; iCount++)
            {
                string sProjectId = (View [iCount]).Value;

                this.LogDebug("ProjectId: " + sProjectId);

                //
                // If the User is Cro staff or the trial Id is null then skip the
                // row in the currentSchedule.
                //
                if (CurrentUser.hasRecordAccess == false &&
                    sProjectId.Length > 0)
                {
                    //CurrentUser.setProjectRole ( Project );

                    if (CurrentUser.hasRecordAccess == false)
                    {
                        this.LogDebug(" DELETED");
                        View.RemoveAt(iCount);
                        iCount--;
                    }
                } //END If remove Option items
            }     //END For loop
        }         //End FilterLists method.
        }//End getMilestoneList method.

        // =====================================================================================
        /// <summary>
        /// This class filters out the alert object items that the user should not be seeing.
        /// </summary>
        /// <param name="CurrentUser">Evado.Model.Digital.EdUserProfile: The currentMonth user's profile</param>
        /// <param name="Project">the current Project</param>
        /// <param name="View">List of EvAlert: a list of alert object.</param>
        /// <remarks>
        /// This method consists of the following steps:
        ///
        /// 1. Loop through the Alerts list and validate whether the currentuser is not a ProjectStaff.
        ///
        /// 2. Remove the Alert object
        /// </remarks>
        // -------------------------------------------------------------------------------------
        private void FilterViews(
            Evado.Model.Digital.EdUserProfile CurrentUser,
            Evado.Model.Digital.EdApplication Project,
            List <EvAlert> View)
        {
            this.LogMethod("FilterViews method. ");
            //
            // Filter out the studies the user should not be seeing.
            //
            for (int iCount = 0; iCount < View.Count; iCount++)
            {
                if (CurrentUser.hasManagementAccess == false)
                {
                    string sProjectId = ((EvAlert)View [iCount]).ProjectId;
                    this.LogDebug("ProjectId: " + sProjectId);

                    //CurrentUser.setProjectRole ( Project );

                    if (CurrentUser.hasManagementEditAccess == true)
                    {
                        continue;
                    }

                    if (CurrentUser.hasRecordEditAccess == true)
                    {
                        continue;
                    }
                }
            }

            this.LogDebug("Count: " + View.Count);
            this.LogMethodEnd("FilterViews");
        }//End FilterViews method.
        }//End FilterViews method.

        // =====================================================================================
        /// <summary>
        /// This class returns a list of option objects based on VisitId, OrgId, CurrentUser and State.
        /// </summary>
        /// <param name="Project">string: (Optional) The trial identifier.</param>
        /// <param name="OrgId">string: (Optional) The Organisation identifier.</param>
        /// <param name="CurrentUser">Evado.Model.Digital.EdUserProfile: (Optional) The user profile.</param>
        /// <param name="State">EvAlert.AlertStates: (Optional) The option state.</param>
        /// <returns>List of EvOption: A list of Options</returns>
        /// <remarks>
        /// This method consists of the following steps:
        ///
        /// 1. Get the Options list of selection alert objects
        ///
        /// 2. Filter the options list with the current user profile.
        ///
        /// 3. Return the filtered options list.
        /// </remarks>
        // -------------------------------------------------------------------------------------
        public List <EvOption> getList(
            Model.Digital.EdApplication Project,
            String OrgId,
            Evado.Model.Digital.EdUserProfile CurrentUser,
            EvAlert.AlertStates State)
        {
            this.LogMethod("getList method.");
            this.LogDebug("ProjectId: " + Project.ApplicationId);
            this.LogDebug("OrgId: " + OrgId);
            this.LogDebug("UserName: "******"State: " + State);

            //
            // Get the list of trial alerts.
            //
            List <EvOption> list = this._dalProjectAlerts.getList(
                Project.ApplicationId,
                OrgId,
                CurrentUser.CommonName,
                State,
                false);

            this.LogDebug(this._dalProjectAlerts.Status);

            //
            // Filter the studies based on user profile.
            //
            this.FilterLists(CurrentUser, Project, list);

            //
            // Return selectionList to UI
            //
            return(list);
        }//End getList method.
        // =====================================================================================
        /// <summary>
        /// This class returns a list of Alert objects based on the passed parameters.
        /// </summary>
        /// <param name="Project">Evado.Model.Digital.EvProject: The project identifier.</param>
        /// <param name="ProjectOrganisation">Evado.Model.Digital.EvOrganisation: The Current User profile.</param>
        /// <param name="CurrentUser">Evado.Model.Digital.EdUserProfile: The Current User profile.</param>
        /// <param name="AlertState">EvAlert.AlertStates: (Optional) The alert state.</param>
        /// <param name="AlertType">EvAlert.AlertTypes: (Optional) The alert QueryType.</param>
        /// <returns>List of EvAlert: a list of Alert object</returns>
        /// <remarks>
        /// This method consists of the following steps:
        ///
        /// 1. Exeute the method for retrieving the selection Alerts list
        ///
        /// 2. Return the selection list.
        ///
        /// </remarks>
        // -------------------------------------------------------------------------------------
        public List <EvAlert> getView(
            Evado.Model.Digital.EdUserProfile CurrentUser,
            EvAlert.AlertStates AlertState,
            EvAlert.AlertTypes AlertType)
        {
            this.LogMethod("getView method. ");
            this.LogDebug("UserName: "******"Alert State: " + AlertState);

            //
            // Initialise the methods variables and objects.
            //
            String  orgId         = String.Empty;
            Boolean bNotification = false;

            //
            // Set the bNotification and userCommonName to default values,
            // if the role is ProjectManager or Monitor or Sponsor.
            //
            if (CurrentUser.hasManagementAccess == true)
            {
                bNotification = true;
                orgId         = String.Empty;
            }

            this.LogDebug("bNotification: " + bNotification);
            this.LogDebug("orgId: " + orgId);
            //
            // Get the list of raised alerts.
            //
            List <EvAlert> view = this._dalProjectAlerts.getView(
                Project.ApplicationId,
                bNotification,
                orgId,
                String.Empty,
                AlertState,
                AlertType);

            this.LogDebug(this._dalProjectAlerts.Status);

            //
            // Filter the studies based on user profile.
            //
            this.FilterViews(CurrentUser, Project, view);

            //
            // Return selectionList to UI
            //
            return(view);
        }//End getMilestoneList method.