Dev2.Activities.GetSystemInformationHelper.GetUserRolesInformation C# (CSharp) Method

GetUserRolesInformation() public method

public GetUserRolesInformation ( IIdentity currentIdentity = null ) : string
currentIdentity IIdentity
return string
        public string GetUserRolesInformation(IIdentity currentIdentity = null)
        {
            var stringBuilder = new StringBuilder();
            WindowsIdentity identity = currentIdentity as WindowsIdentity ?? WindowsIdentity.GetCurrent();
            if(identity != null)
            {
                if(identity.Groups != null)
                {
                    foreach(var sid in identity.Groups)
                    {
                        try
                        {
                            var translatedGroup = sid.Translate(typeof(NTAccount));
                            var name = translatedGroup.Value;
                            stringBuilder.AppendFormat(name + ",");
                        }
                        catch(Exception)
                        {
                            var winQuery = new ObjectQuery("SELECT * FROM Win32_Group WHERE SID='" + sid.Value + "'");
                            var searcher = new ManagementObjectSearcher(winQuery);
                            foreach(var o in searcher.Get())
                            {
                                var item = (ManagementObject)o;
                                var name = Convert.ToString(item["Name"]);
                                stringBuilder.AppendFormat(name + ",");
                            }
                        }
                    }
                }
            }
            return stringBuilder.ToString().TrimEnd(',');
        }