/// <summary> /// (cached) Get all species observation field mappings. /// </summary> /// <param name="context">Web service request context.</param> /// <returns>A List with all species observation field mappings.</returns> private List <WebSpeciesObservationFieldMapping> GetSpeciesObservationFieldMappings(WebServiceContext context) { List <WebSpeciesObservationFieldMapping> fieldMappings; String cacheKey; WebSpeciesObservationFieldMapping speciesObservationFieldMapping; // Get cached information. cacheKey = Settings.Default.DarwinCoreFieldMappingCacheKey; fieldMappings = (List <WebSpeciesObservationFieldMapping>)(context.GetCachedObject(cacheKey)); if (fieldMappings.IsEmpty()) { // Data not in cache. Get information from database. using (DataReader dataReader = context.GetDatabase().GetSpeciesObservationFieldMappings()) { fieldMappings = new List <WebSpeciesObservationFieldMapping>(); while (dataReader.Read()) { speciesObservationFieldMapping = new WebSpeciesObservationFieldMapping(); speciesObservationFieldMapping.Load(dataReader); fieldMappings.Add(speciesObservationFieldMapping); } } // Add information to cache. context.AddCachedObject(cacheKey, fieldMappings, DateTime.Now + new TimeSpan(1, 0, 0, 0), CacheItemPriority.High); } return(fieldMappings); }
/// <summary> /// Check the data in current object /// </summary> /// <param name='webSpeciesObservationFieldMapping'>The Species Observation Field Description.</param> public static void CheckData(this WebSpeciesObservationFieldMapping webSpeciesObservationFieldMapping) { if (!webSpeciesObservationFieldMapping.IsDataChecked) { webSpeciesObservationFieldMapping.CheckStrings(); webSpeciesObservationFieldMapping.IsDataChecked = true; } }
/// <summary> /// Get the GUID value, a string that can be used to map fields by their lsid for this Data provider /// </summary> /// <param name="webSpeciesObservationFieldMapping">The object</param> /// <returns>The GUID value, if none found an empty string is returned</returns> public static string GetGUID(this WebSpeciesObservationFieldMapping webSpeciesObservationFieldMapping) { if (webSpeciesObservationFieldMapping.DataFields == null) { return(string.Empty); } var field = webSpeciesObservationFieldMapping.DataFields.FirstOrDefault(item => item.Name == "GUID"); return(field == null ? string.Empty : field.Value); }
/// <summary> /// Load data into a Web Species Observation Field Mapping object from database. /// </summary> /// <param name="webSpeciesObservationFieldMapping">Species Observation Field Mapping object.</param> /// <param name="dataReader">An open data reader.</param> public static void Load(this WebSpeciesObservationFieldMapping webSpeciesObservationFieldMapping, DataReader dataReader) { webSpeciesObservationFieldMapping.Id = dataReader.GetInt32(SpeciesObservationFieldMappingData.ID); webSpeciesObservationFieldMapping.FieldId = dataReader.GetInt32(SpeciesObservationFieldMappingData.FIELD_ID); webSpeciesObservationFieldMapping.DataProviderId = dataReader.GetInt32(SpeciesObservationFieldMappingData.DATA_PROVIDER_ID); webSpeciesObservationFieldMapping.SetGUID(dataReader.GetString(SpeciesObservationFieldMappingData.GUID)); webSpeciesObservationFieldMapping.IsImplemented = dataReader.GetBoolean(SpeciesObservationFieldMappingData.IS_IMPLEMENTED); webSpeciesObservationFieldMapping.IsPlanned = dataReader.GetBoolean(SpeciesObservationFieldMappingData.IS_PLANNED); webSpeciesObservationFieldMapping.DefaultValue = dataReader.GetString(SpeciesObservationFieldMappingData.DEFAULT_VALUE); webSpeciesObservationFieldMapping.Documentation = dataReader.GetString(SpeciesObservationFieldMappingData.DOCUMENTATION); webSpeciesObservationFieldMapping.Method = dataReader.GetString(SpeciesObservationFieldMappingData.METHOD); if (dataReader.IsNotDbNull(SpeciesObservationFieldMappingData.PROJECT_ID)) { webSpeciesObservationFieldMapping.SetProjectId(dataReader.GetInt32(SpeciesObservationFieldMappingData.PROJECT_ID)); } webSpeciesObservationFieldMapping.SetProjectName(dataReader.GetString(SpeciesObservationFieldMappingData.PROJECT_NAME)); webSpeciesObservationFieldMapping.SetPropertyIdentifier(dataReader.GetString(SpeciesObservationFieldMappingData.PROPERTY_IDENTIFIER)); webSpeciesObservationFieldMapping.ProviderFieldName = dataReader.GetString(SpeciesObservationFieldMappingData.PROVIDER_FIELD_NAME); // webSpeciesObservationFieldMapping.Type = dataReader.GetString(SpeciesObservationFieldDescriptionData.TYPE); }
/// <summary> /// Set the GUID value, a string that can be used to map fields by their lsid for this Data provider /// </summary> /// <param name="webSpeciesObservationFieldMapping">The object</param> /// <param name="value">The value</param> public static void SetGUID(this WebSpeciesObservationFieldMapping webSpeciesObservationFieldMapping, string value) { if (webSpeciesObservationFieldMapping.DataFields == null) { webSpeciesObservationFieldMapping.DataFields = new List <WebDataField>(); } var field = webSpeciesObservationFieldMapping.DataFields.FirstOrDefault(item => item.Name == "GUID"); if (field == null) { webSpeciesObservationFieldMapping.DataFields.Add(new WebDataField { Type = WebDataType.String, Name = "GUID", Value = value }); } else { field.Value = value; } }
/// <summary> /// Set the ProjectName value, it is the name of the related project, used for columns of a ProjectParameter type. /// </summary> /// <param name="webSpeciesObservationFieldMapping">The object</param> /// <param name="value">The value</param> public static void SetProjectId(this WebSpeciesObservationFieldMapping webSpeciesObservationFieldMapping, Int32 value) { if (webSpeciesObservationFieldMapping.DataFields == null) { webSpeciesObservationFieldMapping.DataFields = new List <WebDataField>(); } var field = webSpeciesObservationFieldMapping.DataFields.FirstOrDefault(item => item.Name == "ProjectId"); if (field == null) { webSpeciesObservationFieldMapping.DataFields.Add(new WebDataField { Type = WebDataType.Int32, Name = "ProjectId", Value = value.WebToString() }); } else { field.Value = value.WebToString(); } }