/// <summary>
        /// Convert a web factor field enumeration into
        /// an factor field enumeration instance.
        /// </summary>
        /// <param name="userContext">
        /// Information about the user that makes this method call.
        /// </param>
        /// <param name="factorFieldEnum">The enumeration value belongs to this enumeration.</param>
        /// <param name="webFactorFieldEnumValue">A web factor field enumeration instance.</param>
        /// <returns>A factor field enumeration instance.</returns>
        private IFactorFieldEnumValue GetFactorFieldEnumValue(IUserContext userContext,
                                                              IFactorFieldEnum factorFieldEnum,
                                                              WebFactorFieldEnumValue webFactorFieldEnumValue)
        {
            IFactorFieldEnumValue factorFieldEnumValue;

            factorFieldEnumValue             = new FactorFieldEnumValue();
            factorFieldEnumValue.DataContext = GetDataContext(userContext);
            factorFieldEnumValue.Enum        = factorFieldEnum;
            factorFieldEnumValue.Id          = webFactorFieldEnumValue.Id;
            factorFieldEnumValue.Information = webFactorFieldEnumValue.Information;
            if (webFactorFieldEnumValue.IsKeyIntegerSpecified)
            {
                factorFieldEnumValue.KeyInt = webFactorFieldEnumValue.KeyInteger;
            }

            factorFieldEnumValue.KeyText = webFactorFieldEnumValue.KeyText;
            factorFieldEnumValue.Label   = (webFactorFieldEnumValue.IsKeyIntegerSpecified
                                              ? "[" + webFactorFieldEnumValue.KeyInteger + "] "
                                              : "[" + webFactorFieldEnumValue.KeyText + "] ")
                                           + webFactorFieldEnumValue.Label;
            factorFieldEnumValue.OriginalLabel = webFactorFieldEnumValue.Label;
            factorFieldEnumValue.ShouldBeSaved = webFactorFieldEnumValue.ShouldBeSaved;
            factorFieldEnumValue.SortOrder     = webFactorFieldEnumValue.SortOrder;
            return(factorFieldEnumValue);
        }
        public static ExportSpeciesFactFactorValue Create(FactorFieldEnumValue factorFieldEnumValue, bool isChecked)
        {
            var model = new ExportSpeciesFactFactorValue();

            model.IsChecked = isChecked;
            model.Id        = factorFieldEnumValue.KeyInt.Value;
            model.Name      = factorFieldEnumValue.OriginalLabel;
            return(model);
        }
        /// <summary>
        /// Gets the status original label.
        /// </summary>
        /// <param name="speciesFact">The species fact.</param>
        /// <returns>Species fact status original label; otherwise null.</returns>
        public static String GetStatusOriginalLabel(this ISpeciesFact speciesFact)
        {
            if (speciesFact == null)
            {
                return(null);
            }

            FactorFieldEnumValue val = speciesFact.MainField.Value as FactorFieldEnumValue;

            if (val != null)
            {
                return(val.OriginalLabel);
            }

            return(null);
        }
        /// <summary>
        /// Gets the status identifier.
        /// </summary>
        /// <param name="speciesFact">The species fact.</param>
        /// <returns>Species fact status id; otherwise null.</returns>
        public static Int32?GetStatusId(this ISpeciesFact speciesFact)
        {
            if (speciesFact == null)
            {
                return(null);
            }

            FactorFieldEnumValue val = speciesFact.MainField.Value as FactorFieldEnumValue;

            if (val != null)
            {
                return(val.Id);
            }

            return(null);
        }
 public static ExportSpeciesFactFactorValue Create(FactorFieldEnumValue factorFieldEnumValue)
 {
     return(Create(factorFieldEnumValue, false));
 }