/// <summary> /// Look into the file system and see what tiles with the given identifier /// can be found. /// </summary> /// <param name="name"></param> /// <returns></returns> public async Task <IEnumerable <IGeometryItem> > InitializeLayer(string name) { if (!Models.Any(m => m.Name.ToLower() == name.ToLower())) { throw new NotSupportedException($"The Layer named {name} was not found in the Models collection"); } var model = Models.First(m => m.Name.ToLower() == name.ToLower()); if (model.Properties.Any(p => p.Name.ToLower() == LayerProperties.FileExt && p.Value != null && !string.IsNullOrEmpty(p.Value.ToString()))) { return(GetFeatures(model.GetPropertyValueAs <string>(LayerProperties.FileExt), await GetText(model.Path))); } else if (model.Properties.Any(p => p.Name == LayerProperties.Features)) { // this is loading from memory // var features = model.Properties.First(p => p.Name == LayerProperties.Features); return(featureCache.GetBy(model.Identifier)); } else { throw new NotSupportedException($"The features of the requested layer with name: {name}, could not be found."); } }