static public OrganizationRolesDataObject.Role[] SelectThisByOrganization(int organizationId)
 {
     try
     {
         BasicPersonRole[] personRoles         = Roles.GetAllDownwardRolesRoles(organizationId, Geography.IgnoreGeography);
         Dictionary <int, List <Role> > result = new Dictionary <int, List <Role> >();
         foreach (BasicPersonRole br in personRoles)
         {
             if (br.OrganizationId == organizationId)
             {
                 if (!result.ContainsKey(br.OrganizationId))
                 {
                     result[br.OrganizationId] = new List <Role>();
                 }
                 result[br.OrganizationId].Add(new Role(br));
             }
         }
         List <Role> result2 = new List <Role>();
         lock (dataLock)
         {
             hierarchicalSortOrder = Geographies.GetHierarchicalSortOrder();
             RecursiveAddInTreeOrder(result2, result, organizationId, 0);
         }
         return(result2.ToArray());
     }
     catch
     {
         return(new OrganizationRolesDataObject.Role[0]);
     }
 }