public void ProblemClassAssignedToProviderSaveLink_OnClick(Object sender, EventArgs e)
        {
            // GET REFERENCE TO CURRENT SAVE LINK BUTTON

            System.Web.UI.WebControls.LinkButton currentSaveLinkButton = (System.Web.UI.WebControls.LinkButton)sender;

            // GET REFERENCE TO CURRENT PROBLEM CLASS RAD LIST VIEW ITEM

            Telerik.Web.UI.RadListViewItem currentProblemClassRadListViewItem = (Telerik.Web.UI.RadListViewItem)currentSaveLinkButton.Parent;

            // GET REFERENCE TO CURRENT PROBLEM CLASS ASSIGNED TO PROVIDER SELECTION RAD COMBO BOX

            Telerik.Web.UI.RadComboBox currentProblemClassAssignedToProviderSelection = (Telerik.Web.UI.RadComboBox)currentProblemClassRadListViewItem.FindControl("ProblemClassAssignedToProviderSelection");

            // CREATE REFERENCE TO SELECTED PROVIDER ID AND DEFAULT IT TO 0

            Int64 selectedProviderId = 0;

            // IF SELECTED VALUE OF CURRENT PROBLEM CLASS ASSIGNED TO PROVIDER SELECTION RAD COMBO BOX IS NOT AN EMPTY STRING, THEN TRY TO PARSE SELECTED VALUE TO INT64

            if (currentProblemClassAssignedToProviderSelection.SelectedValue != "")
            {
                // SET SELECTED VALUE AS SELECTED VALUE OF CURRENT PROBLEM CLASS ASSIGNED TO PROVIDER SELECTION

                String selectedValue = currentProblemClassAssignedToProviderSelection.SelectedValue;

                // CREATE REFERENCE TO PARSED SELECTED PROVIDER ID AND DEFAULT IT TO 0

                Int64 parsedSelectedProviderId = 0;

                // IF SELECTED VALUE OF CURRENT PROBLAM CLASS ASSIGNED TO PROVIDER SELECTION CAN BE PARSED AS AN INT64, THEN SET SELECTED PROVIDER ID TO PARSED VALUE OF SELECTED VALUE OF CURRENT PROBLAM CLASS ASSIGNED TO PROVIDER SELECTION

                if (Int64.TryParse(selectedValue.Split('|')[0], out (parsedSelectedProviderId)))
                {
                    // SET SELECTED PROVIDER ID TO PARSED VALUE OF SELECTED VALUE OF CURRENT PROBLAM CLASS ASSIGNED TO PROVIDER SELECTION

                    selectedProviderId = Convert.ToInt64(selectedValue.Split('|')[0]);
                }

                // CREATE REFERENCE TO MEMBER CASE PROBLEM CLASS ID

                Int64 memberCaseProblemClassId = 0;

                // CREATE REFERENCE TO PARSED MEMBER CASE PROBLEM CLASS ID

                Int64 parsedMemberCaseProblemClassId = 0;

                // TRY TO PARSE FIRST INDEX OF SPIT STRING OF SELECTED VALUE AS INT64

                if (Int64.TryParse(selectedValue.Split('|')[1], out (parsedMemberCaseProblemClassId)))
                {
                    // SET MEMBER CASE PROBLEM CLASS ID TO INT64 OF FIRST INDEX OF SPLIT STRING OF SELECTED VALUE

                    memberCaseProblemClassId = Convert.ToInt64(selectedValue.Split('|')[1]);
                }

                // IF UNASSIGNING PROVIDER FOR MEMBER CASE PROBLEM CLASS (SELECTED PTOVIDER ID IS 0),

                if (selectedProviderId == 0)
                {
                    // CREATE REFERENCE TO MEMBER CASE MODIFICATION RESPONSE

                    Mercury.Server.Application.MemberCaseModificationResponse response = new Mercury.Server.Application.MemberCaseModificationResponse();

                    // ASSIGN MEMBER CASE PROBLEM CLASS TO PROVIDER

                    response = MercuryApplication.MemberCaseProblemClass_AssignToProvider(Case, memberCaseProblemClassId, selectedProviderId);

                    // IF RESPOSNE IS NOT NULL, THEN EVALUATE IF EXCEPTION EXISTS

                    if (response != null)
                    {
                        // IF RESPONSE HAS EXCEPTION, THEN SET EXCEPTION MESSAGE OF PARENT MEMBER CASE PAGE AS MESAGE OF EXCEPTION OF RESPONSE

                        if (response.HasException)
                        {
                            ParentMemberCasePage.ExceptionMessage = response.Exception.Message;
                        }

                        // UPDATE FORM FROM UPDATED CASE RECEVIED THROUGH RESPONSE

                        if (response.MemberCase != null)
                        {
                            // RELOAD MEMBER CASE

                            Case = new Client.Core.Individual.Case.MemberCase(MercuryApplication, response.MemberCase);
                        }
                    }
                }

                // IF ASSIGNING PROVIDER FOR MEMBER CASE PROBLEM CLASS (SELECTED PROVIDER ID IS NOT 0),

                else
                {
                    // GET REFERENCE TO MEMBER CASE MODIFICATION REPONSE

                    Mercury.Server.Application.MemberCaseModificationResponse response = new Mercury.Server.Application.MemberCaseModificationResponse();

                    // TRY TO ASSIGN MEMBER CASE PROBLEM CLASS TO PROVIDER

                    response = MercuryApplication.MemberCaseProblemClass_AssignToProvider(Case, memberCaseProblemClassId, selectedProviderId);

                    // IF RESPOSNE IS NOT NULL, THEN EVALUATE IF EXCEPTION EXISTS

                    if (response != null)
                    {
                        // IF RESPONSE HAS EXCEPTION, THEN SET EXCEPTION MESSAGE OF PARENT MEMBER CASE PAGE AS MESAGE OF EXCEPTION OF RESPONSE

                        if (response.HasException)
                        {
                            ParentMemberCasePage.ExceptionMessage = response.Exception.Message;
                        }

                        // UPDATE FORM FROM UPDATED CASE RECEVIED THROUGH RESPONSE

                        if (response.MemberCase != null)
                        {
                            // RELOAD MEMBER CASE

                            Case = new Client.Core.Individual.Case.MemberCase(MercuryApplication, response.MemberCase);
                        }
                    }
                }
            }

            return;
        }
        public void ProblemClassAssignedToUserSaveLink_OnClick(Object sender, EventArgs e)
        {
            // GET REFERENCE OF CURRENT SAVE LINK BUTTON

            System.Web.UI.WebControls.LinkButton currentSaveLinkButton = (System.Web.UI.WebControls.LinkButton)sender;

            // GET REFERENCE OF CURRENT PROBLEM CLASS RAD LIST VIEW ITEM

            Telerik.Web.UI.RadListViewItem currentProblemClassRadListViewItem = (Telerik.Web.UI.RadListViewItem)currentSaveLinkButton.Parent;

            // GET REFERENCE TO CURRENT PROBLEM CLASS ASSIGNED TO USER SELECTION

            Telerik.Web.UI.RadComboBox currentProblemClassAssignedToUserSelection = (Telerik.Web.UI.RadComboBox)currentProblemClassRadListViewItem.FindControl("ProblemClassAssignedToUserSelection");

            // IF SELECTED VALUE OF CURRENT PROBLEM CLASS ASSIGNED TO USER SELECT IS NOT AN EMPTY STRING, THEN EVALUATE SELECTED VALUE

            if (currentProblemClassAssignedToUserSelection.SelectedValue != "")
            {
                // SET USER NAME AS TEXT OF SELECTED ITEM OF CURRENT PROBLEM CLASS ASSIGNED TO USER SELECTION

                String userName = currentProblemClassAssignedToUserSelection.SelectedItem.Text;

                // IF USER NAME IS NOT "NOT ASSIGNED", THEN GET ASSIGNED TO USER INFORMATION

                if (userName != "** Not Assigned")
                {
                    // SET SELECTED VALUE AS SELECTED VALUE OF CURRENT PROBLEM CLASS ASSIGNED TO USER SELECTION

                    String selectedValue = currentProblemClassAssignedToUserSelection.SelectedValue;

                    // SET ASSIGNED TO SECURITY AUTHORITY ID AS 0 INDEX OF SELECTED VALUE

                    Int64 assignedToSecurityAuthorityId = Convert.ToInt64(selectedValue.Split('|')[0]);

                    // SET ASSIGNED TO USER ACCOUNT ID AS 2 INDEX OF SELECTED VALUE

                    String assignedToUserAccountId = selectedValue.Split('|')[1];

                    // SET MEMBER CASE PROBLEM CLASS ID AS 2 INDEX OF SELECTED VALUE

                    Int64 memberCaseProblemClassId = Convert.ToInt64(selectedValue.Split('|')[2]);

                    // SAVE MEMBER CASE PROBLEM CLASS ASSIGNMENT, ASSIGN USER TO MEMBER CASE PROBLEM CLASS

                    Mercury.Server.Application.MemberCaseModificationResponse response = new Mercury.Server.Application.MemberCaseModificationResponse();

                    // ASSIGN MEMBER CASE PROBLEM CLASS TO USER

                    response = MercuryApplication.MemberCaseProblemClass_AssignToUser(Case, memberCaseProblemClassId,

                                                                                      assignedToSecurityAuthorityId, assignedToUserAccountId, userName, userName);

                    // IF RESPOSNE IS NOT NULL, THEN EVALUATE IF EXCEPTION EXISTS

                    if (response != null)
                    {
                        // IF RESPONSE HAS EXCEPTION, THEN SET EXCEPTION MESSAGE OF PARENT MEMBER CASE PAGE AS MESAGE OF EXCEPTION OF RESPONSE

                        if (response.HasException)
                        {
                            ParentMemberCasePage.ExceptionMessage = response.Exception.Message;
                        }

                        // UPDATE FORM FROM UPDATED CASE RECEVIED THROUGH RESPONSE

                        if (response.MemberCase != null)
                        {
                            // RELOAD MEMBER CASE

                            Case = new Client.Core.Individual.Case.MemberCase(MercuryApplication, response.MemberCase);
                        }
                    }
                }

                // IF USER NAME IS NOT ASSIGNED, THEN CHECK IF CURRENT MEMBER PROBLEM CLASS IS CURRENTLY NOT ASSIGNED, IF NOT THEN SET CURRENT MEMBER PROBLEM CLASS AS NOT ASSIGNED

                else
                {
                    // SET SELECTED VALUE AS SELECTED VALUE OF CURRENT PROBLEM CLASS ASSIGNED TO USER SELECTION

                    String selectedValue = currentProblemClassAssignedToUserSelection.SelectedValue;

                    // SET MEMBER CASE PROBLEM CLASS ID AS 2 INDEX OF SELECTED VALUE

                    Int64 memberCaseProblemClassId = Convert.ToInt64(selectedValue.Split('|')[2]);

                    // SAVE MEMBER CASE PROBLEM CLASS ASSIGNMENT, UNASSIGN USER MEMBER CASE PROBLEM CLASS ASSIGNMENT

                    Mercury.Server.Application.MemberCaseModificationResponse response = new Server.Application.MemberCaseModificationResponse();

                    // ASSIGN MEMBER CASE PROBLEM CLASS TO USER

                    response = MercuryApplication.MemberCaseProblemClass_AssignToUser(Case, memberCaseProblemClassId, 0, String.Empty, String.Empty, String.Empty);

                    // IF RESPOSNE IS NOT NULL, THEN EVALUATE IF EXCEPTION EXISTS

                    if (response != null)
                    {
                        // IF RESPONSE HAS EXCEPTION, THEN SET EXCEPTION MESSAGE OF PARENT MEMBER CASE PAGE AS MESAGE OF EXCEPTION OF RESPONSE

                        if (response.HasException)
                        {
                            ParentMemberCasePage.ExceptionMessage = response.Exception.Message;
                        }

                        // UPDATE FORM FROM UPDATED CASE RECEVIED THROUGH RESPONSE

                        if (response.MemberCase != null)
                        {
                            // RELOAD MEMBER CASE

                            Case = new Client.Core.Individual.Case.MemberCase(MercuryApplication, response.MemberCase);
                        }
                    }
                }
            }

            return;
        }