/// <summary>
        /// Get information about organism groups of specified type.
        /// </summary>
        /// <param name="userContext">
        /// Information about the user that makes this method call.
        /// </param>
        /// <param name='organismGroupType'>Type of organism groups.</param>
        /// <returns>Information about organism groups of specified type.</returns>
        public virtual OrganismGroupList GetOrganismGroups(IUserContext userContext,
                                                           OrganismGroupType organismGroupType)
        {
            IOrganismGroup    organismGroup;
            OrganismGroupList organismGroups;

            organismGroups = new OrganismGroupList();
            foreach (FactorFieldEnumValue enumValue in GetFactorFieldEnum(userContext, FactorFieldEnumId.OrganismGroup).Values)
            {
                organismGroup             = new OrganismGroup();
                organismGroup.DataContext = enumValue.DataContext;
                organismGroup.Definition  = enumValue.Information;
                // ReSharper disable once PossibleInvalidOperationException
                organismGroup.Id        = enumValue.KeyInt.Value;
                organismGroup.Name      = enumValue.OriginalLabel;
                organismGroup.SortOrder = enumValue.SortOrder;
                organismGroup.Type      = organismGroupType;
                organismGroups.Add(organismGroup);
            }

            organismGroups.Sort();
            return(organismGroups);
        }