/// <summary> /// Sets the status for a species fact. /// </summary> /// <param name="speciesFact">The species fact to change.</param> /// <param name="statusId">The new status Id.</param> public static void SetStatus(this ISpeciesFact speciesFact, int?statusId) { int?currentStatusId = GetStatusId(speciesFact); if (currentStatusId.HasValue && currentStatusId.Value == statusId) { return; } IFactorFieldEnumValue factorFieldEnumValue = speciesFact.MainField.FactorFieldEnum.Values.FirstOrDefault(enumValue => statusId == enumValue.Id); if (factorFieldEnumValue != null) { speciesFact.MainField.Value = factorFieldEnumValue; } }
/// <summary> /// Sets the value for an enumeration data type. /// </summary> /// <param name="value">Value to set.</param> private void SetEnumValue(IFactorFieldEnumValue value) { CheckDataType(FactorFieldDataTypeId.Enum); if (value.IsNull()) { HasValue = false; _stringValue = null; } else { if (IsTextField) { _stringValue = value.KeyText; } else { _numericValue = value.KeyInt.HasValue ? value.KeyInt.Value : Double.MinValue; } HasValue = true; } }