public void MapList() { var x = new FvSchemesData(true); var y = new VSchemes(); x.ddtSchemes.Add(new TimeScheme() { function = "default1", isDefault = false, psi = 128, scheme = "abcd", type = TimeSchemeType.CrankNicholson }); x.ddtSchemes.Add(new TimeScheme() { function = "default2", isDefault = false, psi = 256, scheme = "efgh", type = TimeSchemeType.Euler }); /* * var mapper = ObjectMapperManager.DefaultInstance.GetMapper<TimeScheme, VTimeScheme>(); * //y.ddtSchemes = x.ddtSchemes.Select(mapper.Map); * foreach (var a in x.ddtSchemes) * { * y.ddtSchemes.Add(mapper.Map(a)); * } */ ListMapper <TimeScheme, VTimeScheme>(x.ddtSchemes, y.ddtSchemes); x.divSchemes.Clear(); }
public Action GetSaveCommand() { return(() => { var path = _fileHandler.GetPath(_vProject.ProjectDir); var d = new FvSchemesData(true); foreach (var x in schemes.cInterpolation) { d.interpolationSchemes.Add(new InterpolationScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, interpolation = x.InterpolationType, view = x.BoundView, lower_limit = (x.BoundView != BoundView.None) ? x.LowerLimit : 0, upper_limit = (x.BoundView != BoundView.None) ? x.UpperLimit : 0, flux = x.Flux, psi = x.Psi }); } foreach (var x in schemes.cSnGrad) { d.snGradSchemes.Add(new SurfaceNormalGradientScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, type = x.SurfaceNoramGradientType, psi = x.Psi }); } foreach (var x in schemes.cGradient) { d.gradSchemes.Add(new GradientScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, interpolation = x.InterpolationType, discretisation = x.DiscretisationType, limited = x.LimitedType, psi = x.Psi }); } foreach (var x in schemes.cDivergence) { d.divSchemes.Add(new DivergenceScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, discretisation = x.DiscretisationType, interpolation = x.InterpolationType, view = x.BoundView, lower_limit = (x.BoundView != BoundView.None) ? x.LowerLimit : 0, upper_limit = (x.BoundView != BoundView.None) ? x.UpperLimit : 0, psi = x.Psi }); } foreach (var x in schemes.cLaplacian) { d.laplacianSchemes.Add(new LaplacianScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, interpolation = x.InterpolationType, discretisation = x.DiscretisationType, snGradScheme = x.SurfaceNoramGradientType, psi = x.Psi }); } foreach (var x in schemes.cTime) { d.ddtSchemes.Add(new TimeScheme() { scheme = x.Scheme, use_default = (x.Scheme == "default"), function = x.Function, type = x.TimeSchemeType, psi = x.Psi }); } foreach (var x in schemes.cFlux) { d.fluxCalculation.Add(new FluxCalculation() { flux = x.Flux, enable = x.Enable }); } _fileHandler.Write(path, d); schemes.AcceptChanges(); }); }