Nie powtarzanie fragmentu kodu

0
        private void ValidateProjectStatus(SPItemEventProperties properties)
        {
            try
            {
                string projectStatus = properties.AfterProperties[Constants.ProjectStatus].ToString();
                if (projectStatus == Constants.ColorRed || projectStatus == Constants.ColorYellow || projectStatus == Constants.ColorGreen)
                {
                    var list = properties.List;
                    string fieldSupervisor = properties.AfterProperties[Constants.SupervisorFieldName].ToString();
                    if (!fieldSupervisor.IsNullOrEmpty())
                    {
                        var fldSupervisoruser = properties.Web.Lists[list.ToString()].Fields.GetField(Constants.SupervisorFieldName) as SPFieldUser;
                        var fldSupervisorValue = fldSupervisoruser.GetFieldValue(fieldSupervisor) as SPFieldUserValue;
                        var supervisorUser = fldSupervisorValue.User as SPUser;

                        if (!IsUserMemberOfGroup(supervisorUser, ResourceHelper.SiteGroupName))
                        {
                            properties.Cancel = true;
                            properties.ErrorMessage = Constants.ErrorMessageFromPMO;
                        }
                    }

                    string fieldSupervisorAdvisor = properties.AfterProperties[Constants.SupervisorAdvisorFieldName].ToString();
                    if (!fieldSupervisorAdvisor.IsNullOrEmpty())
                    {
                        var fldSupervisorAdvisoruser = properties.Web.Lists[list.ToString()].Fields.GetField(Constants.SupervisorAdvisorFieldName) as SPFieldUser;
                        var fldSupervisorAdvisorValue = fldSupervisorAdvisoruser.GetFieldValue(fieldSupervisorAdvisor) as SPFieldUserValue;
                        var supervisorAdvisoruser = fldSupervisorAdvisorValue.User as SPUser;

                        if (!IsUserMemberOfGroup(supervisorAdvisoruser, ResourceHelper.SiteGroupName))
                        {
                            properties.Cancel = true;
                            properties.ErrorMessage = Constants.ErrorMessageFromPMO;
                        }
                    }
                }
            }

Czy ktoś ma pomysł na metode która będzie wywoływana dwa razy w metodzie ValidateProjectStatus, żeby nie powtarzać kodu ?

0

dwuelementowa pętla?

0

Głównie się rozchodzi o to żeby nie powtarzać tego fragmetu kodu:

                    if (!fieldSupervisor.IsNullOrEmpty())
                    {
                        var fldSupervisoruser = properties.Web.Lists[list.ToString()].Fields.GetField(Constants.SupervisorFieldName) as SPFieldUser;
                        var fldSupervisorValue = fldSupervisoruser.GetFieldValue(fieldSupervisor) as SPFieldUserValue;
                        var supervisorUser = fldSupervisorValue.User as SPUser;
 
                        if (!IsUserMemberOfGroup(supervisorUser, ResourceHelper.SiteGroupName))
                        {
                            properties.Cancel = true;
                            properties.ErrorMessage = Constants.ErrorMessageFromPMO;
                        }
                    }

Potrzebna metoda która będzie wywoływana dwa razy (w prametrach: properties, listName - lists.ToString i columnName - SupervisorFieldName)
Próbowałem to zrobić sam ale coś źle wyszło.. może ktoś inny ma lepszy pomysł..

0

for(int i=0;i<2;i++)
{
//tutaj kod
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1