예제 #1
0
        private void ExportEquipmentPsiFile(TransformationConfig config, CIMGraph graph)
        {
            var stopWatch = Stopwatch.StartNew();

            var cimObjects = GetIdentifiedObjects(config, graph, true, false, true).ToList();

            var exportFileName = base.ExportFolderName + "\\konstant_equipment_psi.xml";

            Console.WriteLine("Serializing to PSI/Visue CIM Equipment XML: " + exportFileName + " (can take several minutes)...");

            var converter = new NetSamEquipmentXMLConverter(cimObjects, new List <IPreProcessor> {
                new AddMissingBayProcessor(), new DisconnectedLinkProcessor(), new EnsureACLSUniqueNames()
            });

            var result = converter.GetCimObjects().ToList();

            var xmlProfile = converter.GetXMLData(result);

            XmlSerializer xmlSerializer = new XmlSerializer(xmlProfile.GetType());

            System.IO.StreamWriter file = new System.IO.StreamWriter(exportFileName);
            xmlSerializer.Serialize(file, xmlProfile);
            file.Close();

            Console.WriteLine("Finish exporting Equipment CIM XML!");
        }
예제 #2
0
        private void ExportAsset(TransformationConfig config, CIMGraph graph)
        {
            var allCimObjects = GetIdentifiedObjects(config, graph, false, true, false).ToList();


            // Create folder if not exists
            if (!System.IO.Directory.Exists(base.ExportFolderName))
            {
                System.IO.Directory.CreateDirectory(base.ExportFolderName);
            }


            var cson = new CsonSerializer();

            using (var destination = File.Open(base.ExportFolderName + "\\konstant_asset.jsonl", FileMode.Create))
            {
                using (var source = cson.SerializeObjects(allCimObjects))
                {
                    source.CopyTo(destination);
                }
            }
        }
예제 #3
0
        private void ExportAssetPsiFile(TransformationConfig config, CIMGraph graph)
        {
            var stopWatch = Stopwatch.StartNew();

            var cimObjects = GetIdentifiedObjects(config, graph, false, true, false).ToList();

            var exportFileName = base.ExportFolderName + "\\konstant_asset_psi.xml";

            Console.WriteLine("Serializing to PSI/Visue CIM Asset XML: " + exportFileName + " (can take several minutes)...");

            var converter = new NetSamAssetXMLConverter(cimObjects);

            var result = converter.GetCimObjects().ToList();

            var xmlProfile = converter.GetXMLData(result);

            XmlSerializer xmlSerializer = new XmlSerializer(xmlProfile.GetType());

            System.IO.StreamWriter file = new System.IO.StreamWriter(exportFileName);
            xmlSerializer.Serialize(file, xmlProfile);
            file.Close();

            Console.WriteLine("Finish exporting Asset CIM XML!");
        }
예제 #4
0
        static void Main(string[] args)
        {
            if (args.Length < 6)
            {
                System.Console.Out.WriteLine("Usage: Gis2PowerFactoryBatchRunner.exe inputAdapterConfigFileName outputCimArchiveFolder outputCimArchiveName outputLogFile extent highVoltageOnly(true/false)");
                return;
            }

            try
            {
                string cimAdapterConfig = args[0];
                string cimArchiveFolder = args[1];
                string cimArchiveName   = args[2];
                Guid   cimModeRdfId     = Guid.Parse(args[3]);
                string logFileName      = args[4];
                string extent           = args[5];
                bool   highVoltageOnly  = false;

                if (args.Length == 7 && args[6].ToLower() == "true")
                {
                    highVoltageOnly = true;
                }

                var cimFileName = cimArchiveName + ".jsonl";

                Log.Logger = new LoggerConfiguration()
                             .WriteTo.File(logFileName, rollingInterval: RollingInterval.Day)
                             .WriteTo.Console()
                             .WriteTo.EventLog("NRGi.Gis2PowerFactoryBatchRunner", manageEventSource: true, restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Error)
                             .CreateLogger();

                Logger.WriteToConsole = true;

                var config = new TransformationConfig().LoadFromFile(cimAdapterConfig);

                // Sæt extent
                if (extent != null)
                {
                    config.DataReaders[0].ConfigParameters.Add(new ConfigParameter()
                    {
                        Name = "Extent", Value = extent
                    });
                }

                var transformer = config.InitializeDataTransformer("test");

                // Log ikke til database tabel, da vi køre på prod
                ((CIMGraphWriter)transformer.GetFirstDataWriter()).DoNotLogToTable();
                ((CIMGraphWriter)transformer.GetFirstDataWriter()).DoNotRunPreCheckConnectivity();

                transformer.TransferData();

                CIMGraphWriter writer = transformer.GetFirstDataWriter() as CIMGraphWriter;
                CIMGraph       graph  = writer.GetCIMGraph();

                // Serialize
                var serializer = config.InitializeSerializer("DAX") as IDAXSerializeable;

                var cimObjects = ((DAXCIMSerializer)serializer).GetIdentifiedObjects(CIMMetaDataManager.Repository, graph.CIMObjects, true, true, true).ToList();

                var pfWriter = new KonstantCimArchiveWriter(cimObjects, cimArchiveFolder, cimArchiveName, cimModeRdfId, highVoltageOnly);

                Logger.Log(LogLevel.Info, "Export to Power Factory CIM Archive: " + cimArchiveFolder + "\\" + cimArchiveName + ".zip finished.");
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }
예제 #5
0
        static IEnumerable <IdentifiedObject> GetIdentifiedObjects(TransformationConfig config, CIMGraph graph, bool includeEquipment = false, bool includeAssets = false, bool includeLocations = false)
        {
            var serializer       = config.InitializeSerializer("DAX") as IDAXSerializeable;
            var daxcimSerializer = (DAXCIMSerializer)serializer;
            var dataRepository   = CIMMetaDataManager.Repository;
            var objects          = graph.CIMObjects;

            return(daxcimSerializer.GetIdentifiedObjects(dataRepository, objects, includeEquipment, includeAssets, includeLocations));
        }