public static void PubliserLeveranse(string id, NinRavenDb arkiv, IUserDatabase userDb) { Log.i("DDL", "Publiser dataleveranse #" + id); var dataDelivery = arkiv.HentDataleveranse(id); switch (dataDelivery.Publisering) { case Status.Gjeldende: throw new Exception("Leveransen er allerede gjeldende."); case Status.Utgått: throw new Exception("Leveransen er utgått og kan ikke publiseres."); } var dataDeliveryMsSql = new Dataleveranse(dataDelivery); MapProjection.ConvertGeometry(dataDeliveryMsSql); var userInstitution = userDb.GetUserInstitution(dataDelivery.Username); foreach (var natureArea in dataDeliveryMsSql.Metadata.NatureAreas) { natureArea.Institution = userInstitution; } SqlServer.DeleteDataDelivery(dataDeliveryMsSql.Metadata.UniqueId.LocalId); SqlServer.LagreDataleveranse(dataDeliveryMsSql); MarkerSistGjeldendeLeveranseSomUtgått(arkiv, dataDelivery); dataDelivery.Publisering = Status.Gjeldende; arkiv.LagreDataleveranse(dataDelivery); arkiv.SaveChanges(); }