public static BasicOrganization GetOrganization(int OrganizationId)
        {
            lock (loadCacheLock)
            {
                Dictionary <int, List <BasicOrganization> > hashedOrganisations = OrganizationCache.GetHashedOrganizations();
                if (hashedOrganisations.ContainsKey(OrganizationId))
                {
                    return(hashedOrganisations[OrganizationId][0]);
                }
                else
                {
                    //Didn't find, strange, id's should exist, try reloading the cache, it could be newly added.

                    needsReload         = true;
                    hashedOrganisations = OrganizationCache.GetHashedOrganizations();
                    if (hashedOrganisations.ContainsKey(OrganizationId))
                    {
                        return(hashedOrganisations[OrganizationId][0]);
                    }
                    else
                    {
                        throw new ArgumentException("No such OrganizationId: " + OrganizationId.ToString());
                    }
                };
            }
        }
        public static BasicOrganization[] GetOrganizationTree(int startOrganizationId)
        {
            lock (loadCacheLock)
            {
                Dictionary <int, List <BasicOrganization> > organizations = OrganizationCache.GetHashedOrganizations();

                return(GetOrganizationTree(organizations, startOrganizationId, 0));
            }
        }
 public static BasicOrganization[] GetAll()
 {
     lock (loadCacheLock)
     {
         Dictionary <int, List <BasicOrganization> > hashedOrganisations = OrganizationCache.GetHashedOrganizations();
         List <BasicOrganization> returnList = new List <BasicOrganization>();
         foreach (int id in hashedOrganisations.Keys)
         {
             returnList.Add(hashedOrganisations[id][0]);
         }
         return(returnList.ToArray());
     }
 }