private static PersistableGeometry CreateGeometry(IMacroStabilityInwardsSoilProfileUnderSurfaceLine soilProfile, MacroStabilityInwardsExportStageType stageType, IdFactory idFactory, MacroStabilityInwardsExportRegistry registry) { var geometry = new PersistableGeometry { Id = idFactory.Create(), Layers = MacroStabilityInwardsSoilProfile2DLayersHelper.GetLayersRecursively(soilProfile.Layers) .Select(l => CreateLayer(l, stageType, idFactory, registry)) .ToArray() }; registry.AddGeometry(stageType, geometry.Id); return(geometry); }
virtual public void Save(IPersistStream stream) { if (this is IConstructable && ((IConstructable)this).hasVertices && _template != null) { IGeometry geometry = TransformGeometry(); if (geometry != null) { PersistableGeometry pGeometry = new PersistableGeometry(geometry); stream.Save("Geometry", pGeometry); } } stream.Save("scaleX", _scaleX); stream.Save("scaleY", _scaleY); stream.Save("xOffset", _xOffset); stream.Save("yOffset", _yOffset); stream.Save("Angle", _angle); }
virtual public void Load(IPersistStream stream) { _scaleX = (double)stream.Load("scaleX", 1.0); _scaleY = (double)stream.Load("scaleY", 1.0); _xOffset = (double)stream.Load("xOffset", 0.0); _yOffset = (double)stream.Load("yOffset", 0.0); _angle = (double)stream.Load("Angle"); if (this is IConstructable && ((IConstructable)this).hasVertices) { PersistableGeometry pGeometry = stream.Load("Geometry", null, new PersistableGeometry()) as PersistableGeometry; if (pGeometry != null && pGeometry.Geometry != null) { TemplateFromTransformedGeomety(pGeometry.Geometry); } } if (Ghost != null) { Ghost.Scale(_scaleX, _scaleY); Ghost.Rotation = _angle * 180.0 / Math.PI; Ghost.Translation(_xOffset, _yOffset); } }
public void Create_WithValidData_ReturnsStages() { // Setup var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); var stageTypes = new[] { MacroStabilityInwardsExportStageType.Daily, MacroStabilityInwardsExportStageType.Extreme }; var settingsList = new List <PersistableCalculationSettings>(); var geometryList = new List <PersistableGeometry>(); var soilLayersList = new List <PersistableSoilLayerCollection>(); var waternetList = new List <PersistableWaternet>(); var waternetCreatorSettingsList = new List <PersistableWaternetCreatorSettings>(); var stateList = new List <PersistableState>(); foreach (MacroStabilityInwardsExportStageType stageType in stageTypes) { var settings = new PersistableCalculationSettings { Id = idFactory.Create() }; settingsList.Add(settings); var geometry = new PersistableGeometry { Id = idFactory.Create() }; geometryList.Add(geometry); var persistableSoilLayerCollection = new PersistableSoilLayerCollection { Id = idFactory.Create() }; soilLayersList.Add(persistableSoilLayerCollection); var waternet = new PersistableWaternet { Id = idFactory.Create() }; waternetList.Add(waternet); var waternetCreatorSettings = new PersistableWaternetCreatorSettings { Id = idFactory.Create() }; waternetCreatorSettingsList.Add(waternetCreatorSettings); var state = new PersistableState { Id = idFactory.Create() }; stateList.Add(state); registry.AddSettings(stageType, settings.Id); registry.AddGeometry(stageType, geometry.Id); registry.AddSoilLayer(stageType, persistableSoilLayerCollection.Id); registry.AddWaternet(stageType, waternet.Id); registry.AddWaternetCreatorSettings(stageType, waternetCreatorSettings.Id); registry.AddState(stageType, state.Id); } // Call IEnumerable <PersistableStage> stages = PersistableStageFactory.Create(idFactory, registry); // Assert PersistableDataModelTestHelper.AssertStages(stages, settingsList, geometryList, soilLayersList, waternetList, waternetCreatorSettingsList, stateList); }