/// <summary> /// Check that data is valid. /// </summary> /// <param name="speciesObservationProperty">Species observation property.</param> public static void CheckData(this WebSpeciesObservationProperty speciesObservationProperty) { if (speciesObservationProperty.IsNotNull()) { speciesObservationProperty.Identifier = speciesObservationProperty.Identifier.CheckJsonInjection(); if (speciesObservationProperty.GetProperty().IsEmpty()) { throw new ArgumentException("Species observation property has not been specified."); } } }
/// <summary> /// Get property as string. /// </summary> /// <param name="speciesObservationProperty">Species observation property.</param> /// <returns>Property as string.</returns> public static String GetProperty(this WebSpeciesObservationProperty speciesObservationProperty) { String propertyString; propertyString = null; if (speciesObservationProperty.IsNotNull()) { if (speciesObservationProperty.Id == SpeciesObservationPropertyId.None) { propertyString = speciesObservationProperty.Identifier; } else { propertyString = speciesObservationProperty.Id.ToString(); } } return(propertyString); }
/// <summary> /// Get value for a spiecesObservationField /// </summary> /// <param name="speciesObservation">Species observation.</param> /// <param name="speciesObservationClass">WebSpeciesObservationClass that the field belongs to.</param> /// <param name="speciesObservationProperty">WebSpeciesObservationProperty for the field.</param> /// <returns>Field value as string.</returns> public static String GetFieldValue(this WebSpeciesObservation speciesObservation, WebSpeciesObservationClass speciesObservationClass, WebSpeciesObservationProperty speciesObservationProperty) { String speciesObservationClassIdentifier, speciesObservationPropertyIdentifier, fieldValue = null; speciesObservationClassIdentifier = speciesObservationClass.Id.ToString(); speciesObservationPropertyIdentifier = speciesObservationProperty.Id.ToString(); foreach (WebSpeciesObservationField speciesObservationField in speciesObservation.Fields) { if (speciesObservationField.ClassIdentifier.Equals(speciesObservationClassIdentifier) && speciesObservationField.PropertyIdentifier.Equals(speciesObservationPropertyIdentifier)) { fieldValue = speciesObservationField.Value; continue; } } return(fieldValue); }
/// <summary> /// Load data into a Species Observation Field Description object from database. /// </summary> /// <param name="dataReader">An open data reader.</param> public void Load(DataReader dataReader) { String classIdentifier; SpeciesObservationClassId classId; SpeciesObservationPropertyId propertyId; classIdentifier = dataReader.GetString(SpeciesObservationFieldDescriptionData.CLASS); Class = new WebSpeciesObservationClass(); if (Enum.TryParse(classIdentifier, true, out classId)) { Class.Id = classId; } else { Class.Id = SpeciesObservationClassId.None; Class.Identifier = classIdentifier; } Definition = dataReader.GetString(SpeciesObservationFieldDescriptionData.DEFINITION); DefinitionUrl = dataReader.GetString(SpeciesObservationFieldDescriptionData.DEFINITION_URL); Documentation = dataReader.GetString(SpeciesObservationFieldDescriptionData.DOCUMENTATION); DocumentationUrl = dataReader.GetString(SpeciesObservationFieldDescriptionData.DOCUMENTATION_URL); Guid = dataReader.GetString(SpeciesObservationFieldDescriptionData.GUID); Id = dataReader.GetInt32(SpeciesObservationFieldDescriptionData.ID); if (dataReader.IsNotDbNull(SpeciesObservationFieldDescriptionData.IMPORTANCE)) { Importance = dataReader.GetInt32(SpeciesObservationFieldDescriptionData.IMPORTANCE); } IsAcceptedByTdwg = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_ACCEPTED_BY_TDWG); IsClass = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_CLASS_NAME); IsDarwinCoreProperty = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_DARWINCORE); IsImplemented = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_IMPLEMENTED); IsMandatory = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_MANDATORY); IsMandatoryFromProvider = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_MANDATORY_FROM_PROVIDER); IsObtainedFromProvider = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_OBTAINED_FROM_PROVIDER); IsPlanned = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_PLANNED); IsPublic = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_PUBLIC); IsSearchable = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_SEARCHABLEFIELD); IsSortable = dataReader.GetBoolean(SpeciesObservationFieldDescriptionData.IS_SORTABLE); Label = dataReader.GetString(SpeciesObservationFieldDescriptionData.LABEL); Name = dataReader.GetString(SpeciesObservationFieldDescriptionData.NAME); PersistedInTable = dataReader.GetString(SpeciesObservationFieldDescriptionData.PERSISTED_IN_TABLE); Remarks = dataReader.GetString(SpeciesObservationFieldDescriptionData.REMARKS); if (dataReader.IsNotDbNull(SpeciesObservationFieldDescriptionData.SORT_ORDER)) { SortOrder = dataReader.GetInt32(SpeciesObservationFieldDescriptionData.SORT_ORDER); } String type; type = dataReader.GetString(SpeciesObservationFieldDescriptionData.TYPE); switch (type) { case "Boolean": Type = WebDataType.Boolean; break; case "DateTime": Type = WebDataType.DateTime; break; case "Double": case "Single": case "Float64": Type = WebDataType.Float64; break; case "Byte": case "SByte": case "Int16": case "UInt16": case "Int32": case "UInt32": Type = WebDataType.Int32; break; case "Int64": case "UInt64": Type = WebDataType.Int64; break; default: Type = WebDataType.String; break; } Uuid = dataReader.GetString(SpeciesObservationFieldDescriptionData.UUID); if (!IsClass) { Property = new WebSpeciesObservationProperty(); if (Enum.TryParse(Name, true, out propertyId)) { Property.Id = propertyId; } else { Property.Id = SpeciesObservationPropertyId.None; Property.Identifier = Name; } } }
/// <summary> /// Get a spiecesObservationField /// </summary> /// <param name="speciesObservation">Species observation.</param> /// <param name="speciesObservationClass">WebSpeciesObservationClass that the field belongs to.</param> /// <param name="speciesObservationProperty">WebSpeciesObservationProperty for the field.</param> /// <returns>WebSpeciesObservationField.</returns> public static WebSpeciesObservationField GetField(this WebSpeciesObservation speciesObservation, WebSpeciesObservationClass speciesObservationClass, WebSpeciesObservationProperty speciesObservationProperty) { WebSpeciesObservationField field = null; String speciesObservationClassIdentifier, speciesObservationPropertyIdentifier; speciesObservationClassIdentifier = speciesObservationClass.Id.ToString(); speciesObservationPropertyIdentifier = speciesObservationProperty.Id.ToString(); foreach (WebSpeciesObservationField speciesObservationField in speciesObservation.Fields) { if (speciesObservationField.ClassIdentifier.Equals(speciesObservationClassIdentifier) && speciesObservationField.PropertyIdentifier.Equals(speciesObservationPropertyIdentifier)) { field = speciesObservationField; continue; } } return(field); }