/// <summary> /// Reset species fact that has been deleted from database. /// Set all values to default or null. /// </summary> internal void Reset() { UpdateId(-1); _hasId = false; _quality = SpeciesFactManager.GetDefaultSpeciesFactQuality(); _oldQuality = _quality; _reference = null; _oldReference = null; _updateUserFullName = null; _updateDate = DateTime.MinValue; _hasUpdateDate = false; foreach (SpeciesFactField field in _fields) { field.Reset(); } }
/// <summary> /// Creates a species fact instance with no data from web service. /// </summary> /// <param name="taxon">Taxon object of the species fact</param> /// <param name="individualCategory">Individual category object of the species fact</param> /// <param name="factor">Factor object of the species fact</param> /// <param name="host">Host taxon object of the species fact</param> /// <param name="period">Period object of the species fact</param> public SpeciesFact( Taxon taxon, IndividualCategory individualCategory, Factor factor, Taxon host, Period period) : base(-1, -1) { Int32 fieldIndex; _fields = null; _substantialFields = null; _mainField = null; _hasId = false; _identifier = SpeciesFactManager.GetSpeciesFactIdentifier( taxon, individualCategory, factor, host, period); _taxon = taxon; _individualCategory = individualCategory; _factor = factor; _host = host; _hasHost = _host.IsNotNull(); _period = period; _hasPeriod = _period.IsNotNull(); _quality = SpeciesFactManager.GetDefaultSpeciesFactQuality(); _oldQuality = _quality; _reference = null; _oldReference = null; _updateUserFullName = null; _updateDate = DateTime.MinValue; _hasUpdateDate = false; if (!_factor.FactorUpdateMode.IsHeader) { _fields = new SpeciesFactFieldList(); _substantialFields = new SpeciesFactFieldList(); _fieldArray = new SpeciesFactField[FactorManager.GetFactorFieldMaxCount()]; for (fieldIndex = 0; fieldIndex < FactorManager.GetFactorFieldMaxCount(); fieldIndex++) { _fieldArray[fieldIndex] = null; } foreach (FactorField factorField in _factor.FactorDataType.Fields) { SpeciesFactField field; field = new SpeciesFactField(this, factorField, false, null); _fields.Add(field); _fieldArray[field.Index] = field; if (factorField.IsSubstantial) { _substantialFields.Add(field); } if (factorField.IsMain) { _mainField = field; } } } _shouldBeSaved = AllowUpdate; }