public async Task LastOppDataleveranse(DataleveranseXmlGreier dataDeliveryCore, IDataFile metadata, DataFiles files, string username) { if (metadata == null) { throw new Exception("Kan ikke lagre en tom leveranse."); } var dataDeliveryXml = metadata.ReadXml(); dataDeliveryCore.ValidateDataDelivery(dataDeliveryXml); var dataleveranse = DataleveranseXmlGreier.ParseDataDelivery(dataDeliveryXml); files.CheckDocuments(dataleveranse); DataleveranseXmlGreier.ValidateDataDeliveryContent(dataleveranse); OvertaForForrigeVersjon(dataleveranse); ImporterDataleveranse(dataleveranse, username); var metadataFile = new File { Id = dataleveranse.Id.Replace("DataDeliveries/", ""), FileName = metadata.Filename, ContentType = metadata.ContentType, Content = metadata.OpenReadStream() }; await LagreFil(metadataFile); foreach (var file in files.Values) { var fileName = file.Filename; var document = dataleveranse.Metadata.FindDocument(fileName); if (document == null) { throw new DataDeliveryParseException("Finner ingen referanse i datafilen til vedlegg '" + fileName + "'."); } var docFile = new File { Id = document.Guid.ToString(), FileName = fileName, ContentType = file.ContentType, Content = file.OpenReadStream() }; await LagreFil(docFile); } SaveChanges(); }