internal List<WmsLayerViewModel> CreateMetadataForLayers(string uuid, List<WmsLayerViewModel> layers, string[] keywords, string username)
{
SimpleMetadata parentMetadata = new SimpleMetadata(_geoNorge.GetRecordByUuid(uuid));
List<SimpleKeyword> selectedKeywordsFromParent = CreateListOfKeywords(keywords);
List<string> layerIdentifiers = new List<string>();
foreach (WmsLayerViewModel layer in layers)
{
try
{
SimpleMetadata simpleLayer = createMetadataForLayer(parentMetadata, selectedKeywordsFromParent, layer);
MetadataTransaction transaction = _geoNorge.MetadataInsert(simpleLayer.GetMetadata(), CreateAdditionalHeadersWithUsername(username));
if (transaction.Identifiers != null && transaction.Identifiers.Count > 0)
{
layer.Uuid = transaction.Identifiers[0];
layerIdentifiers.Add(layer.Uuid);
}
}
catch (Exception e)
{
layer.ErrorMessage = e.Message;
Log.Error("Error while creating metadata for layer: " + layer.Title, e);
}
}
parentMetadata.OperatesOn = layerIdentifiers;
_geoNorge.MetadataUpdate(parentMetadata.GetMetadata());
return layers;
}