Store harvested transmitter in liteDB
This commit is contained in:
@@ -12,18 +12,34 @@ Public Class TransmitterHarvestView
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Private Sub FillTreeView()
|
||||
' For Each transmitter In TransmitterHarvester.ReadAllTransmitters()
|
||||
' If TransmittersTreeView.Nodes.ContainsKey(transmitter.Transmitter) = True Then
|
||||
' For Each log In transmitter.Loggings
|
||||
' If TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.ContainsKey(log.LogDate.Ticks.ToString) = False Then
|
||||
' TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
' End If
|
||||
' Next
|
||||
' Else
|
||||
' TransmittersTreeView.Nodes.Add(transmitter.Transmitter, transmitter.Transmitter)
|
||||
' For Each log In transmitter.Loggings
|
||||
' TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
' Next
|
||||
' End If
|
||||
' Next
|
||||
'End Sub
|
||||
Private Sub FillTreeView()
|
||||
For Each transmitter In TransmitterHarvester.ReadAllTransmitters()
|
||||
If TransmittersTreeView.Nodes.ContainsKey(transmitter.Transmitter) = True Then
|
||||
For Each log In transmitter.Loggings
|
||||
If TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.ContainsKey(log.LogDate.Ticks.ToString) = False Then
|
||||
TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
For Each transmitter In TransmitterHarvester.GetAllTransmitters()
|
||||
If TransmittersTreeView.Nodes.ContainsKey(transmitter) = True Then
|
||||
For Each log In TransmitterHarvester.GetAllTransmitterLogs(transmitter)
|
||||
If TransmittersTreeView.Nodes(transmitter).Nodes.ContainsKey(log.LogDate.Ticks.ToString) = False Then
|
||||
TransmittersTreeView.Nodes(transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
TransmittersTreeView.Nodes.Add(transmitter.Transmitter, transmitter.Transmitter)
|
||||
For Each log In transmitter.Loggings
|
||||
TransmittersTreeView.Nodes(transmitter.Transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
TransmittersTreeView.Nodes.Add(transmitter, transmitter)
|
||||
For Each log In TransmitterHarvester.GetAllTransmitterLogs(transmitter)
|
||||
TransmittersTreeView.Nodes(transmitter).Nodes.Add(log.LogDate.Ticks.ToString, log.ButtonPressed & " - " & log.LogDate)
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
|
||||
@@ -201,6 +201,9 @@
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.14.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DocumentFormat.OpenXml.2.14.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="LiteDB, Version=5.0.12.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\LiteDB.5.0.12\lib\net45\LiteDB.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
@@ -227,6 +230,7 @@
|
||||
<Reference Include="System.Management">
|
||||
<Name>System.Management</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Transactions" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.IO
|
||||
Imports System.Linq
|
||||
Imports LiteDB
|
||||
|
||||
Module TransmitterHarvester
|
||||
|
||||
@@ -9,77 +10,115 @@ Module TransmitterHarvester
|
||||
|
||||
Private ReadOnly Errorlog As NLog.Logger = NLog.LogManager.GetLogger("Error")
|
||||
Private ReadOnly harvestFileLocation As String = Path.Combine(FilePathConfigFiles, "Transmitters.harvest")
|
||||
Private ReadOnly harvestDBLocation As String = Path.Combine(FilePathConfigFiles, "Transmitters.db")
|
||||
|
||||
Public Event TransmitterUpdate()
|
||||
|
||||
Public Sub Harvest(uCSMessage As String)
|
||||
'Console.WriteLine($"Transmitter harvest {uCSMessage}")
|
||||
Dim id As String = uCSMessage.Substring(3, 7)
|
||||
Dim id As String = uCSMessage.Substring(3, 8)
|
||||
'Console.WriteLine($"Transmitter ID {id}")
|
||||
Dim button As String = uCSMessage.Substring(2, 1)
|
||||
'Console.WriteLine($"Transmitter button {button}")
|
||||
|
||||
Dim transmitterList As BindingList(Of HarvestedTransmitterList) = ReadAllTransmitters()
|
||||
Dim transmitter = transmitterList.Where(Function(x) x.Transmitter = id).SingleOrDefault()
|
||||
|
||||
If transmitter Is Nothing Then
|
||||
transmitterList.Add(New HarvestedTransmitterList(id, button))
|
||||
Else
|
||||
transmitter.AddLogging(button)
|
||||
End If
|
||||
Using db As New LiteDatabase("Filename=" & harvestDBLocation & ";connection=shared")
|
||||
Dim col = db.GetCollection(Of TransmitterLog)("Transmitters")
|
||||
col.Insert(New TransmitterLog With {
|
||||
.Transmitter = id,
|
||||
.ButtonPressed = button,
|
||||
.LogDate = DateTime.Now()
|
||||
})
|
||||
'col.EnsureIndex(Function(x) x.Transmitter)
|
||||
db.Commit()
|
||||
End Using
|
||||
|
||||
WriteAllTransmitters(transmitterList)
|
||||
'Dim transmitterList As BindingList(Of HarvestedTransmitterList) = ReadAllTransmitters()
|
||||
'Dim transmitter = transmitterList.Where(Function(x) x.Transmitter = id).SingleOrDefault()
|
||||
|
||||
'If transmitter Is Nothing Then
|
||||
' transmitterList.Add(New HarvestedTransmitterList(id, button))
|
||||
'Else
|
||||
' transmitter.AddLogging(button)
|
||||
'End If
|
||||
|
||||
'WriteAllTransmitters(transmitterList)
|
||||
RaiseEvent TransmitterUpdate()
|
||||
End Sub
|
||||
|
||||
Public Function ReadAllTransmitters() As BindingList(Of HarvestedTransmitterList)
|
||||
|
||||
Dim transmitters As New BindingList(Of HarvestedTransmitterList)
|
||||
|
||||
If File.Exists(harvestFileLocation) Then
|
||||
Dim Text As String = File.ReadAllText(harvestFileLocation)
|
||||
transmitters = Newtonsoft.Json.JsonConvert.DeserializeObject(Of BindingList(Of HarvestedTransmitterList))(Text)
|
||||
End If
|
||||
If transmitters Is Nothing Then
|
||||
Return New BindingList(Of HarvestedTransmitterList)
|
||||
End If
|
||||
Return transmitters
|
||||
Public Function GetAllTransmitters() As List(Of String)
|
||||
Using db As New LiteDatabase("Filename=" & harvestDBLocation & ";connection=shared")
|
||||
'Return db.GetCollection(Of TransmitterLog)("Transmitters").Query().OrderBy(Function(x) x.Transmitter).Select(Function(S) S.Transmitter).ToList()
|
||||
Return db.GetCollection(Of TransmitterLog)("Transmitters").Query().OrderBy(Function(x) x.Transmitter).Select(Function(S) S.Transmitter).ToList()
|
||||
End Using
|
||||
End Function
|
||||
|
||||
Private Sub WriteAllTransmitters(transmitters As BindingList(Of HarvestedTransmitterList))
|
||||
Try
|
||||
Dim output = Newtonsoft.Json.JsonConvert.SerializeObject(transmitters, Newtonsoft.Json.Formatting.Indented)
|
||||
My.Computer.FileSystem.WriteAllText(harvestFileLocation, output, False)
|
||||
Catch ex As Exception
|
||||
Errorlog.Error("Error writing transmitter harvest - " + ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Public Function GetAllTransmitterLogs(transmitter As String) As List(Of TransmitterLog)
|
||||
Using db As New LiteDatabase("Filename=" & harvestDBLocation & ";connection=shared")
|
||||
Return db.GetCollection(Of TransmitterLog)("Transmitters").Query().Where(Function(x) x.Transmitter Is transmitter).OrderBy(Function(d) d.LogDate).ToList()
|
||||
End Using
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
'Public Function ReadAllTransmitters() As BindingList(Of HarvestedTransmitterList)
|
||||
|
||||
' Dim transmitters As New BindingList(Of HarvestedTransmitterList)
|
||||
|
||||
' If File.Exists(harvestFileLocation) Then
|
||||
' Dim Text As String = File.ReadAllText(harvestFileLocation)
|
||||
' transmitters = Newtonsoft.Json.JsonConvert.DeserializeObject(Of BindingList(Of HarvestedTransmitterList))(Text)
|
||||
' End If
|
||||
' If transmitters Is Nothing Then
|
||||
' Return New BindingList(Of HarvestedTransmitterList)
|
||||
' End If
|
||||
' Return transmitters
|
||||
'End Function
|
||||
|
||||
'Private Sub WriteAllTransmitters(transmitters As BindingList(Of HarvestedTransmitterList))
|
||||
' Try
|
||||
' Dim output = Newtonsoft.Json.JsonConvert.SerializeObject(transmitters, Newtonsoft.Json.Formatting.Indented)
|
||||
' My.Computer.FileSystem.WriteAllText(harvestFileLocation, output, False)
|
||||
' Catch ex As Exception
|
||||
' Errorlog.Error("Error writing transmitter harvest - " + ex.Message)
|
||||
' End Try
|
||||
'End Sub
|
||||
|
||||
End Module
|
||||
|
||||
|
||||
Public Class HarvestedTransmitter
|
||||
Public Class TransmitterLog
|
||||
<BsonId>
|
||||
Public Property Id As ObjectId
|
||||
Public Property Transmitter As String
|
||||
Public Property ButtonPressed As String
|
||||
Public Property LogDate As DateTime
|
||||
|
||||
Public Sub New(ByVal button As String)
|
||||
Me.ButtonPressed = button
|
||||
Me.LogDate = DateTime.Now()
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Class HarvestedTransmitterList
|
||||
Public Property Transmitter As String
|
||||
Public Property Loggings As BindingList(Of HarvestedTransmitter)
|
||||
|
||||
Public Sub New(ByVal id As String, ByVal button As String)
|
||||
Me.Transmitter = id
|
||||
Loggings = New BindingList(Of HarvestedTransmitter)
|
||||
AddLogging(button)
|
||||
End Sub
|
||||
'Public Class HarvestedTransmitter
|
||||
' Public Property ButtonPressed As String
|
||||
' Public Property LogDate As DateTime
|
||||
|
||||
Public Sub AddLogging(ByVal button As String)
|
||||
Loggings.Add(New HarvestedTransmitter(button))
|
||||
End Sub
|
||||
End Class
|
||||
' Public Sub New(ByVal button As String)
|
||||
' Me.ButtonPressed = button
|
||||
' Me.LogDate = DateTime.Now()
|
||||
' End Sub
|
||||
'End Class
|
||||
|
||||
'Public Class HarvestedTransmitterList
|
||||
' Public Property Transmitter As String
|
||||
' Public Property Loggings As BindingList(Of HarvestedTransmitter)
|
||||
|
||||
' Public Sub New(ByVal id As String, ByVal button As String)
|
||||
' Me.Transmitter = id
|
||||
' Loggings = New BindingList(Of HarvestedTransmitter)
|
||||
' AddLogging(button)
|
||||
' End Sub
|
||||
|
||||
' Public Sub AddLogging(ByVal button As String)
|
||||
' Loggings.Add(New HarvestedTransmitter(button))
|
||||
' End Sub
|
||||
'End Class
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="DocumentFormat.OpenXml" version="2.14.0" targetFramework="net48" />
|
||||
<package id="LiteDB" version="5.0.12" targetFramework="net48" />
|
||||
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" />
|
||||
<package id="NLog" version="4.7.12" targetFramework="net48" />
|
||||
<package id="OpenXMLSDK-MOT" version="2.7.1" targetFramework="net48" />
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<ComponentRef Id="comp_Background.png"/>
|
||||
|
||||
<ComponentRef Id="NLog.dll" />
|
||||
<ComponentRef Id="LiteDB.dll" />
|
||||
|
||||
<ComponentRef Id="AxInterop.AXISMEDIACONTROLLib.dll" />
|
||||
<ComponentRef Id="Interop.AXISMEDIACONTROLLib.dll" />
|
||||
@@ -86,6 +87,9 @@
|
||||
<Component Id="NLog.dll" Guid="*">
|
||||
<File Id="NLog.dll" Source="$(var.BuildLocation)\NLog.dll" KeyPath="yes" Checksum="yes"/>
|
||||
</Component>
|
||||
<Component Id="LiteDB.dll" Guid="*">
|
||||
<File Id="LIteDB.dll" Source="$(var.BuildLocation)\LiteDB.dll" KeyPath="yes" Checksum="yes"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="AxInterop.AXISMEDIACONTROLLib.dll" Guid="*">
|
||||
<File Id="AxInterop.AXISMEDIACONTROLLib.dll" Source="$(var.BuildLocation)\AxInterop.AXISMEDIACONTROLLib.dll" KeyPath="yes" Checksum="yes"/>
|
||||
|
||||
Reference in New Issue
Block a user