コード例 #1
0
 /// <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.");
         }
     }
 }
コード例 #2
0
        /// <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);
        }