private static PersistableLayer CreateLayer(MacroStabilityInwardsSoilLayer2D layer, MacroStabilityInwardsExportStageType stageType, IdFactory idFactory, MacroStabilityInwardsExportRegistry registry) { var persistableLayer = new PersistableLayer { Id = idFactory.Create(), Label = layer.Data.MaterialName, Points = layer.OuterRing.Points.Select(p => new PersistablePoint(p.X, p.Y)).ToArray() }; registry.AddGeometryLayer(stageType, layer, persistableLayer.Id); return(persistableLayer); }
/// <summary> /// Asserts whether the <see cref="PersistableGeometry"/> contains the data /// that is representative for the <paramref name="layers"/>. /// </summary> /// <param name="layers">The layers that contain the original data.</param> /// <param name="geometries">The <see cref="PersistableGeometry"/> that needs to be asserted.</param> /// <exception cref="AssertionException">Thrown when the data in <paramref name="geometries"/> /// is not correct.</exception> public static void AssertPersistableGeometry(IEnumerable <MacroStabilityInwardsSoilLayer2D> layers, IEnumerable <PersistableGeometry> geometries) { Assert.AreEqual(2, geometries.Count()); foreach (PersistableGeometry persistableGeometry in geometries) { Assert.IsNotNull(persistableGeometry.Id); IEnumerable <PersistableLayer> persistableGeometryLayers = persistableGeometry.Layers; Assert.AreEqual(layers.Count(), persistableGeometryLayers.Count()); for (int i = 0; i < layers.Count(); i++) { MacroStabilityInwardsSoilLayer2D soilLayer = layers.ElementAt(i); PersistableLayer persistableLayer = persistableGeometryLayers.ElementAt(i); Assert.IsNotNull(persistableLayer.Id); Assert.AreEqual(soilLayer.Data.MaterialName, persistableLayer.Label); CollectionAssert.AreEqual(soilLayer.OuterRing.Points.Select(p => new PersistablePoint(p.X, p.Y)), persistableLayer.Points); } } }