public override void SaveModel(DslModeling::SerializationResult serializationResult, MetaModel modelRoot, string fileName, global::System.Text.Encoding encoding, bool writeOptionalPropertiesWithDefaultValue)
        {
            base.SaveModel(serializationResult, modelRoot, fileName, encoding, writeOptionalPropertiesWithDefaultValue);

            System.IO.FileInfo info = new System.IO.FileInfo(fileName);
            string fileNameDiagram = info.DirectoryName + "\\" + info.Name.Remove(info.Name.Length - info.Extension.Length, info.Extension.Length) + DiagramExtension;

            // save view information
            using (global::System.IO.MemoryStream newFileContent = new global::System.IO.MemoryStream())
            {
                DslModeling::DomainXmlSerializerDirectory directory = this.GetDirectory(modelRoot.Store);

                DslModeling::SerializationContext serializationContext = new DslModeling::SerializationContext(directory, fileName, serializationResult);
                this.InitializeSerializationContext(modelRoot.Partition, serializationContext, false);
                // MonikerResolver shouldn't be required in Save operation, so not calling SetupMonikerResolver() here.
                serializationContext.WriteOptionalPropertiesWithDefaultValue = writeOptionalPropertiesWithDefaultValue;
                global::System.Xml.XmlWriterSettings settings = LanguageDSLSerializationHelper.Instance.CreateXmlWriterSettings(serializationContext, false, encoding);
                using (global::System.Xml.XmlWriter writer = global::System.Xml.XmlWriter.Create(newFileContent, settings))
                {
                    ViewSerializer serializer = directory.GetSerializer(View.DomainClassId) as ViewSerializer;
                    serializer.Write(serializationContext, modelRoot.View, writer);
                }

                if (!serializationResult.Failed && newFileContent != null)
                {	// Only write the content if there's no error encountered during serialization.
                    using (global::System.IO.FileStream fileStream = new global::System.IO.FileStream(fileNameDiagram, global::System.IO.FileMode.Create, global::System.IO.FileAccess.Write, global::System.IO.FileShare.None))
                    {
                        using (global::System.IO.BinaryWriter writer = new global::System.IO.BinaryWriter(fileStream, encoding))
                        {
                            writer.Write(newFileContent.ToArray());
                        }
                    }
                }
            }
        }
        public void SetUp()
        {
            _scatterPlot  = new ScatterPlotBuilder().Build();
            _xScatterPlot = new XElement("scatter-plot");

            _columns = new List <Column>();

            _mockScatterPlotSerializer = new Mock <IScatterPlotSerializer>();
            _mockScatterPlotSerializer.Setup(p => p.Serialize(_scatterPlot)).Returns(_xScatterPlot);
            _mockScatterPlotSerializer.Setup(p => p.Deserialize(_xScatterPlot, _columns)).Returns(_scatterPlot);

            _serializer = new ViewSerializer(_mockScatterPlotSerializer.Object);
        }
Beispiel #3
0
        public void LoadView(string viewPath)
        {
            ViewSerializer serializer = new ViewSerializer();
            IList          view       = serializer.Load(viewPath);

            foreach (INamedView namedView in view)
            {
                INamedView test = (INamedView)namedViews[namedView.Name];
                if (test != null)
                {
                    throw new Exception("A view with the name " + namedView.Name + " is already loaded!");
                }
                namedViews[namedView.Name] = namedView;
            }
        }