From 7dd31146f16bac831c2e460a3791ecc323a66553 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Tue, 3 Nov 2015 15:07:29 +0100
Subject: [PATCH] added json.net 7.0.1, added actual calls to VectoCore V3.0

---
 VECTO/GUI/F_MAINForm.vb | 161 ++++++++++++++++++----------------------
 VECTO/VECTO.vbproj      |  12 ++-
 VECTO/app.config        |  19 +++--
 VECTO/packages.config   |   4 +
 4 files changed, 99 insertions(+), 97 deletions(-)
 create mode 100644 VECTO/packages.config

diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb
index 07a496cb52..42dfec6422 100644
--- a/VECTO/GUI/F_MAINForm.vb
+++ b/VECTO/GUI/F_MAINForm.vb
@@ -11,8 +11,14 @@
 
 Imports System.Collections.Generic
 Imports System.ComponentModel
+Imports System.IO
 Imports System.Linq
 Imports System.Threading
+Imports TUGraz.VectoCore.Models.Simulation.Data
+Imports TUGraz.VectoCore.Models.Simulation.Impl
+Imports TUGraz.VectoCore
+Imports TUGraz.VectoCore.Configuration
+Imports TUGraz.VectoCore.Models.Simulation
 
 ''' <summary>
 ''' Main application form. Loads at application start. Closing form ends application.
@@ -519,86 +525,6 @@ Imports System.Threading
 		DeclOnOff()
 	End Sub
 
-	Private Sub VectoWorkerV3_OnRunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
-		Dim Result As tCalcResult
-
-		'Progbar reset
-		ToolStripProgBarOverall.Visible = False
-		ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
-		ToolStripProgBarOverall.Value = 0
-		ProgSecStop()
-
-		LvGEN.SelectedIndices.Clear()
-
-		Result = e.Result
-
-		'ShutDown when Unexpected Error
-		If e.Error IsNot Nothing Then
-			MsgBox("An Unexpected Error occurred!" & ChrW(10) & ChrW(10) &
-					e.Error.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error")
-			LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Error.ToString())
-		End If
-
-		'Options enable / GUI reset
-		LockGUI(False)
-		Button2.Text = "START V3"
-		Button2.Image = My.Resources.Play_icon
-		Status(LastModeName & " Mode")
-
-		'SLEEP reactivate
-		AllowSleepON()
-	End Sub
-
-	Private Sub VectoWorkerV3_OnProgressChanged(sender As Object, e As ProgressChangedEventArgs)
-		Dim progress As cWorkProg
-		progress = e.UserState
-
-		Select Case progress.Target
-			Case tWorkMsgType.StatusListBox
-				MSGtoForm(e.UserState.ID, e.UserState.Msg, progress.Source, progress.Link)
-
-			Case tWorkMsgType.ProgBars
-				ToolStripProgBarOverall.Value = e.ProgressPercentage
-				ProgSecStart()
-
-			Case tWorkMsgType.InitProgBar
-				ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
-
-			Case Else ' tWorkMsgType.Abort
-				Button2.Enabled = False
-				Button2.Text = "Aborting..."
-				Button2.Image = My.Resources.Play_icon_gray
-				VECTOworkerV3.CancelAsync()
-		End Select
-	End Sub
-
-	Private Sub VectoWorkerV3_OnDoWork(sender As Object, e As DoWorkEventArgs)
-		AllowSleepOFF()
-		Dim WorkProg As New cWorkProg(tWorkMsgType.StatusListBox)
-		WorkProg.ID = tMsgID.Normal
-		WorkProg.Msg = "Test 0%"
-		WorkProg.Source = "VectoWorkerV3_OnDoWork"
-		WorkProg.Link = ""
-		VECTOworkerV3.ReportProgress(0, WorkProg)
-		Thread.Sleep(1000)
-
-		WorkProg.ID = tMsgID.Normal
-		WorkProg.Msg = "Test 50%"
-		WorkProg.Source = "VectoWorkerV3_OnDoWork"
-		WorkProg.Link = ""
-		VECTOworkerV3.ReportProgress(50, WorkProg)
-		Thread.Sleep(1000)
-
-		WorkProg.ID = tMsgID.Normal
-		WorkProg.Msg = "Test 100%"
-		WorkProg.Source = "VectoWorkerV3_OnDoWork"
-		WorkProg.Link = ""
-		VECTOworkerV3.ReportProgress(100, WorkProg)
-		Thread.Sleep(1000)
-
-		e.Result = True
-	End Sub
-
 	'Declaration mode GUI settings
 	Private Sub DeclOnOff()
 
@@ -1584,16 +1510,15 @@ Imports System.Threading
 
 			LvGEN.SelectedItems.Clear()
 
-			Status("Launching VECTO V3...")
-
-			JobFileList.Clear()
-			JobFileList.AddRange(From listViewItem In LvGEN.CheckedItems Select fFileRepl(listViewItem.SubItems(0).Text))
-
-			If JobFileList.Count = 0 Then
+			If LvGEN.CheckedItems.Count = 0 Then
 				GUImsg(tMsgID.Err, "No job file selected!")
 				Exit Sub
 			End If
 
+			Status("Launching VECTO V3...")
+			JobFileList.Clear()
+			JobFileList.AddRange(From listViewItem In LvGEN.CheckedItems Select fFileRepl(listViewItem.SubItems(0).Text))
+
 			SetOptions()
 			Cfg.ConfigSAVE()
 			ClearMSG()
@@ -1604,12 +1529,9 @@ Imports System.Threading
 			Button2.Image = My.Resources.Stop_icon
 
 			ToolStripProgBarOverall.Value = 0
-			ToolStripProgBarOverall.Style = ProgressBarStyle.Marquee
+			ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
 			ToolStripProgBarOverall.Visible = True
 
-			ProgBarCtrl.ProgJobInt = 0
-			ProgSecStart()
-
 			VECTOworkerV3.RunWorkerAsync()
 		Else
 			Button2.Enabled = False
@@ -1619,6 +1541,65 @@ Imports System.Threading
 		End If
 	End Sub
 
+	Private Sub VectoWorkerV3_OnDoWork(sender As BackgroundWorker, e As DoWorkEventArgs)
+		AllowSleepOFF()
+		Dim prog As New cWorkProg(tWorkMsgType.StatusListBox)
+
+		Dim sumFileName As String = Path.GetFileNameWithoutExtension(JobFileList(0) + Constants.FileExtensions.SumFile)
+		Dim sumWriter As SummaryFileWriter = New SummaryFileWriter(sumFileName)
+		Dim jobContainer As JobContainer = New JobContainer(sumWriter)
+
+		For Each jobFile As String In JobFileList
+			Dim runsFactory As SimulatorFactory = New SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode, jobFile)
+			jobContainer.AddRuns(runsFactory)
+		Next
+
+		jobContainer.Execute()
+
+		While Not jobContainer.AllCompleted
+			Dim progress As Dictionary(Of String, Double) = jobContainer.GetProgress()
+
+			Dim NumLines As Integer = progress.Count
+			Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value)
+
+			ToolStripProgBarOverall.Value = Int(sumProgress/NumLines)*100
+			Thread.Sleep(250)
+		End While
+	End Sub
+
+	Private Sub VectoWorkerV3_OnProgressChanged(sender As Object, e As ProgressChangedEventArgs)
+	End Sub
+
+	Private Sub VectoWorkerV3_OnRunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
+		Dim Result As tCalcResult
+
+		'Progbar reset
+		ToolStripProgBarOverall.Visible = False
+		ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
+		ToolStripProgBarOverall.Value = 0
+		ProgSecStop()
+
+		LvGEN.SelectedIndices.Clear()
+
+		Result = e.Result
+
+		'ShutDown when Unexpected Error
+		If e.Error IsNot Nothing Then
+			MsgBox("An Unexpected Error occurred!" & ChrW(10) & ChrW(10) &
+					e.Error.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error")
+			LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Error.ToString())
+		End If
+
+		'Options enable / GUI reset
+		LockGUI(False)
+		Button2.Text = "START V3"
+		Button2.Image = My.Resources.Play_icon
+		Status(LastModeName & " Mode")
+
+		'SLEEP reactivate
+		AllowSleepON()
+	End Sub
+
 	'Mode Change (STANDARD/BATCH)
 	Private Sub CbBatch_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CbBatch.CheckedChanged
 		ModeUpdate()
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 550ea9bba7..bf5ab389b9 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -89,8 +89,9 @@
     <Reference Include="itextsharp">
       <HintPath>..\Third Party Libraries\itextsharp\itextsharp.dll</HintPath>
     </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>..\Third Party Libraries\JSON.Net\Bin\Net40\Newtonsoft.Json.dll</HintPath>
+    <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
@@ -363,6 +364,7 @@
     </None>
   </ItemGroup>
   <ItemGroup>
+    <None Include="packages.config" />
     <None Include="Resources\TUG-About.png" />
     <None Include="Resources\VECTO-About.png" />
     <None Include="Resources\VECTO-VEH.png" />
@@ -440,6 +442,12 @@
   <ItemGroup>
     <WCFMetadata Include="Service References\" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\VectoCore\VectoCore.csproj">
+      <Project>{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}</Project>
+      <Name>VectoCore</Name>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/VECTO/app.config b/VECTO/app.config
index bc998e0459..1c0d3993da 100644
--- a/VECTO/app.config
+++ b/VECTO/app.config
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <configSections>
     </configSections>
@@ -7,19 +7,28 @@
             <!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log -->
             <source name="DefaultSource" switchName="DefaultSwitch">
                 <listeners>
-                    <add name="FileLog"/>
+                    <add name="FileLog" />
                     <!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben -->
                     <!--<add name="EventLog"/>-->
                 </listeners>
             </source>
         </sources>
         <switches>
-            <add name="DefaultSwitch" value="Information"/>
+            <add name="DefaultSwitch" value="Information" />
         </switches>
         <sharedListeners>
-            <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
+            <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
             <!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
             <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
         </sharedListeners>
     </system.diagnostics>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
diff --git a/VECTO/packages.config b/VECTO/packages.config
new file mode 100644
index 0000000000..505e58836b
--- /dev/null
+++ b/VECTO/packages.config
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
+</packages>
\ No newline at end of file
-- 
GitLab