}//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.