Exemple #1
0
        public void CaseAssignedToUserSaveLink_OnClick(Object sender, EventArgs e)
        {
            Server.Application.MemberCaseModificationResponse response = null;


            Int64 securityAuthorityId = Convert.ToInt64(CaseAssignedToUserSelection.SelectedValue.Split('|')[0]);

            String userAccountId = CaseAssignedToUserSelection.SelectedValue.Split('|')[1];


            // DETERMINE IF THERE WAS AN ACTUAL CHANGE

            if (!((Case.AssignedToSecurityAuthorityId == securityAuthorityId) && (Case.AssignedToUserAccountId == userAccountId)))
            {
                if (securityAuthorityId != 0)
                {
                    // FIND WORK TEAM MEMBERSHIP RECORD THAT IS SELETED

                    Mercury.Server.Application.WorkTeamMembership membership = null;

                    foreach (Mercury.Server.Application.WorkTeamMembership currentMembership in Case.AssignedToWorkTeam.Membership)
                    {
                        if ((currentMembership.SecurityAuthorityId == securityAuthorityId) && (currentMembership.UserAccountId == userAccountId))
                        {
                            membership = currentMembership;
                        }
                    }

                    if (membership != null)
                    {
                        response = MercuryApplication.MemberCase_AssignToUser(Case,

                                                                              membership.SecurityAuthorityId,

                                                                              membership.UserAccountId,

                                                                              membership.UserAccountName,

                                                                              membership.UserDisplayName

                                                                              );
                    }
                }

                else   // REQUEST TO UNASSIGN FROM CURRENT USER

                {
                    response = MercuryApplication.MemberCase_AssignToUser(Case, 0, String.Empty, String.Empty, String.Empty);
                }
            }

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

                // UPDATE FORM FROM UPDATED CASE RECEVIED THROUGH RESPONSE

                if (response.MemberCase != null)
                {
                    Case = new Client.Core.Individual.Case.MemberCase(MercuryApplication, response.MemberCase);
                }
            }

            return;
        }
Exemple #2
0
        private void InitializeWorkTeamAssignment()
        {
            // IF WE REACH THIS POINT, THE RECORD IS UNLOCKED OR LOCKED BY REQUESTING USER,

            // TO ASSIGN, ONE OF THE FOLLOWING MUST BE TRUE

            // 1. CASE IS NOT CURRENTLY ASSIGNED TO CASE AND REQUESTING USER IS MEMBER OF DESTINATION TEAM (ANY ROLE)

            // 2. CASE IS CURRENTLY ASSIGNED, REQUEST IS TO REMOVE ASSIGNMENT FROM TEAM, USER IS MANAGER OF TEAM

            // 3. CASE IS CURRENTLY ASSIGNED, REQUEST IS TO MOVE TO ANOTHER TEAM, USER IS MANAGER OF BOTH TEAMS

            // TODO: CHECK FOR CARE PLAN ASSIGNMENTS, AS THIS WILL REPLACE THEM


            CaseAssignedToWorkTeamLabel.Text = ((Case.HasWorkTeamAssignment) ? Case.AssignedToWorkTeamName : String.Empty);


            Boolean isAssignedToWorkTeamChangeVisible = false;

            // IF ASSIGNED TO WORK TEAM EMPTY, THE USER MUST BE A MANAGER OF A CARE TEAM

            if (!Case.HasWorkTeamAssignment)
            {
                // CYCLE THROUGH ALL CARE TEAMS AND FIND ONE THAT THE USER IS A MEMBER OF

                foreach (Client.Core.Work.WorkTeam currentWorkTeam in MercuryApplication.WorkTeamsForSession(true))
                {
                    if (currentWorkTeam.WorkTeamType == Mercury.Server.Application.WorkTeamType.CareTeam)
                    {
                        Mercury.Server.Application.WorkTeamMembership membership = currentWorkTeam.MembershipGetForSession();

                        if (membership != null)
                        {
                            isAssignedToWorkTeamChangeVisible = true;
                        }
                    }
                }
            }

            else
            {
                // IF A WORK TEAM IS ASSIGNED, THE USER MUST BE A MANAGER OF THE WORK TEAM TO CHANGE IT

                isAssignedToWorkTeamChangeVisible = Case.AssignedToThisSessionTeamManager;
            }

            CaseAssignedToWorkTeamChangeLink.Style.Add("display", ((isAssignedToWorkTeamChangeVisible) ? "inline" : "none"));


            // ADD AVAILABLE CARE TEAMS TO SELECTION AVAILABILITY

            if (isAssignedToWorkTeamChangeVisible)
            {
                CaseAssignedToWorkTeamSelection.Items.Clear();

                CaseAssignedToWorkTeamSelection.Items.Add(new Telerik.Web.UI.RadComboBoxItem("** Not Assigned", "0"));

                foreach (Client.Core.Work.WorkTeam currentWorkTeam in MercuryApplication.WorkTeamsForSession(true))
                {
                    if (currentWorkTeam.WorkTeamType == Mercury.Server.Application.WorkTeamType.CareTeam)
                    {
                        Mercury.Server.Application.WorkTeamMembership membership = currentWorkTeam.MembershipGetForSession();

                        if (membership != null)
                        {
                            if ((membership.WorkTeamRole == Mercury.Server.Application.WorkTeamRole.Manager) || (!Case.HasWorkTeamAssignment))
                            {
                                CaseAssignedToWorkTeamSelection.Items.Add(new Telerik.Web.UI.RadComboBoxItem(currentWorkTeam.Name, currentWorkTeam.Id.ToString()));
                            }
                        }
                    }
                }

                CaseAssignedToWorkTeamSelection.SelectedValue = Case.AssignedToWorkTeamId.ToString();
            }



            return;
        }