Skip to content
Snippets Groups Projects
Commit 115a208b authored by Dennis Eisold's avatar Dennis Eisold
Browse files

Merge branch 'master' into 'master'

frontend.db in GUI integriert

See merge request wetterstation/frontend!12
parents 0c351ad7 34a4efe0
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<configuration> <configuration>
<connectionStrings>
<add name="Default" connectionString="Data Source=.\frontend.db;Version=3;" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup> </startup>
......
This diff is collapsed.
...@@ -14,10 +14,37 @@ namespace Wetterstation ...@@ -14,10 +14,37 @@ namespace Wetterstation
{ {
public partial class Settings : Form public partial class Settings : Form
{ {
//List<SettingsModel> WeatherstationSettings = new List<SettingsModel>();
SettingsModel WeatherstationSettings = new SettingsModel();
public Settings() public Settings()
{ {
InitializeComponent(); InitializeComponent();
lblFrontendId.Text = "Frontend Id: " + generateId(); lblFrontendId.Text = "Frontend Id: " + generateId();
//SqliteDataAccess.CreateAndOpenDb();
Console.WriteLine("Daten werden aus DB ausgelesen ...");
WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings();
//Console.WriteLine("Ausgabe der Daten:" + WeatherstationSettings.mqtt_host);
//WeatherstationSettings = LoadWeatherstationSettings();
//Console.WriteLine("Ausgabe der Daten:" + WeatherstationSettings.;
}
private void LoadWeatherstationSettings()
{
//WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings();
//SqliteDataAccess.CreateAndOpenDb();
//WeatherstationSettings = SqliteDataAccess.GetUserByName();
tbHost.Text = WeatherstationSettings.mqtt_host;
tbUser.Text = WeatherstationSettings.mqtt_user;
tbPasswort.Text = WeatherstationSettings.mqtt_pass;
tbTopicFrontend.Text = WeatherstationSettings.mqtt_topic_frontend;
tbTobicBackend.Text = WeatherstationSettings.mqtt_topic_backend;
tbQos.Text = WeatherstationSettings.mqtt_qos.ToString();
tbTimeout.Text = WeatherstationSettings.mqtt_timeout;
tbPort.Text = WeatherstationSettings.mqtt_port.ToString();
tbPlz.Text = WeatherstationSettings.plz.ToString();
} }
private void TextBox2_TextChanged(object sender, EventArgs e) private void TextBox2_TextChanged(object sender, EventArgs e)
...@@ -79,6 +106,40 @@ namespace Wetterstation ...@@ -79,6 +106,40 @@ namespace Wetterstation
} }
private void Settings_Load(object sender, EventArgs e) private void Settings_Load(object sender, EventArgs e)
{
Console.WriteLine("Bin in Settings_Load !!!!!!!");
LoadWeatherstationSettings();
}
private void TbSettingsHost_TextChanged(object sender, EventArgs e)
{
}
//SettingsForm in SettingsModell ablegen
private void Button1_Click(object sender, EventArgs e)
{
SettingsModel mqttSettings = new SettingsModel();
mqttSettings.mqtt_host = tbHost.Text;
mqttSettings.mqtt_user = tbPasswort.Text;
mqttSettings.mqtt_pass = tbTopicFrontend.Text;
mqttSettings.mqtt_topic_frontend = tbTobicBackend.Text;
mqttSettings.mqtt_topic_backend = tbQos.Text;
mqttSettings.mqtt_qos = Int32.Parse(tbQos.Text);
mqttSettings.mqtt_timeout = tbTimeout.Text;
mqttSettings.mqtt_port = Int32.Parse(tbPort.Text);
mqttSettings.frontendId = generateId(); //wird automatisch berechnet und gesetzt und soll nicht geändert werden
mqttSettings.plz = Int16.Parse(tbPlz.Text);
mqttSettings.city = tbPlz.Text;
Console.WriteLine("Speichere Settings ");
SqliteDataAccess.SaveWeatherstationSettings(mqttSettings);
this.Close();
}
private void TextBox1_TextChanged(object sender, EventArgs e)
{ {
} }
......
File added
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Wetterstation
{
public class SettingsModel
{
public string mqtt_host { get; set; }
public string mqtt_user { get; set; }
public string mqtt_pass { get; set; }
public string mqtt_topic_frontend { get; set; }
public string mqtt_topic_backend { get; set; }
public int mqtt_qos { get; set; }
public string mqtt_timeout { get; set; }
public int mqtt_port { get; set; }
public string frontendId { get; set; }
public int plz { get; set; }
public string city { get; set; }
}
}
using Dapper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace Wetterstation
{
public static class SqliteDataAccess
{
public static SQLiteConnection _dbConnection;
//public static void CreateAndOpenDb()
//{
// //var dbFilePath = "./TestDb.sqlite";
// var dbFilePath = "./frontend.db";
// if (!File.Exists(dbFilePath))
// {
// SQLiteConnection.CreateFile(dbFilePath);
// }
// _dbConnection = new SQLiteConnection(string.Format(
// "Data Source={0};Version=3;", dbFilePath));
// _dbConnection.Open();
//}
public static SettingsModel LoadWeatherstationSettings()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
var output = cnn.Query<SettingsModel>("SELECT * FROM settings LIMIT 1;");
//Console.WriteLine("Der Horst ist:" + output.ToString);
return output.FirstOrDefault();
}
}
public static void SaveWeatherstationSettings(SettingsModel mqttSettings)
{
//Console.WriteLine("Port aus DB ..." + mqttSettings.dbMqttHost);
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
cnn.Execute("UPDATE settings SET mqtt_host = @mqtt_host, mqtt_user = @mqtt_user, mqtt_pass = @mqtt_pass, mqtt_topic_frontend = @mqtt_topic_frontend, mqtt_topic_backend = @mqtt_topic_backend, mqtt_qos = @mqtt_qos, mqtt_timeout = @mqtt_timeout, mqtt_port = @mqtt_port, plz = @plz;", mqttSettings);
}
}
//holt den ConnectionString aus der App.config (siehe ProjektmappenExplorer)
private static string LoadConnectionString(string id = "Default")
{
return ConfigurationManager.ConnectionStrings[id].ConnectionString;
}
//public static SettingsModel GetUserByName()
//{
// var userCollection = _dbConnection.Query<SettingsModel>("SELECT * FROM settings LIMIT 1;");
// //new { Port = port });
// return userCollection.FirstOrDefault();
//}
//public static void SaveWeatherstationSettings(SettingsModel mqttSettings)
//{
// _dbConnection.ExecuteNonQuery(@"UPDATE settings SET mqtt_host = @mqtt_host, mqtt_user = @mqtt_user, mqtt_pass = @mqtt_pass, mqtt_topic_frontend = @mqtt_topic_frontend, mqtt_topic_backend = @mqtt_topic_backend, mqtt_qos = @mqtt_qos, mqtt_timeout = @mqtt_timeout, mqtt_port = @mqtt_port, plz = @plz, city = @city ; ");
//}
//
}
}
// public static SettingsModel LoadWeatherstationSettings()
// {
// using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
// {
// var output = cnn.Query<SettingsModel>("select * from settings where mqtt_port=1883");
// //Console.WriteLine("Der Horst ist:" + output.ToString);
// return output.FirstOrDefault();
// }
// }
// public static void SaveWeatherstationSettings(SettingsModel mqttSettings)
// {
// Console.WriteLine("Port aus DB ..." + mqttSettings.dbMqttHost);
// using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
// {
// cnn.Execute("UPDATE settings SET mqtt_host = @mqtt_host, mqtt_user = @mqtt_user, mqtt_pass = @mqtt_pass, mqtt_topic_frontend = @mqtt_topic_frontend, mqtt_topic_backend = @mqtt_topic_backend, mqtt_qos = @mqtt_qos, mqtt_timeout = @mqtt_timeout, mqtt_port = @mqtt_port, plz = @plz, city = @city ;");
// }
// }
//}
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
...@@ -33,6 +35,9 @@ ...@@ -33,6 +35,9 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapper.2.0.30\lib\net461\Dapper.dll</HintPath>
</Reference>
<Reference Include="LiveCharts, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL"> <Reference Include="LiveCharts, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>..\packages\LiveCharts.0.9.7\lib\net45\LiveCharts.dll</HintPath> <HintPath>..\packages\LiveCharts.0.9.7\lib\net45\LiveCharts.dll</HintPath>
</Reference> </Reference>
...@@ -43,7 +48,11 @@ ...@@ -43,7 +48,11 @@
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Management" /> <Reference Include="System.Management" />
<Reference Include="System.Windows.Forms.DataVisualization" /> <Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
...@@ -57,6 +66,8 @@ ...@@ -57,6 +66,8 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="SqliteDataAccess.cs" />
<Compile Include="SettingsModel.cs" />
<Compile Include="Form1.cs"> <Compile Include="Form1.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
...@@ -87,6 +98,9 @@ ...@@ -87,6 +98,9 @@
<EmbeddedResource Include="Settings.resx"> <EmbeddedResource Include="Settings.resx">
<DependentUpon>Settings.cs</DependentUpon> <DependentUpon>Settings.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<Content Include="frontend.db">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
...@@ -144,4 +158,11 @@ ...@@ -144,4 +158,11 @@
<None Include="Resources\Zahnrad.png" /> <None Include="Resources\Zahnrad.png" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets'))" />
</Target>
</Project> </Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Dapper" version="2.0.30" targetFramework="net472" />
<package id="LiveCharts" version="0.9.7" targetFramework="net472" /> <package id="LiveCharts" version="0.9.7" targetFramework="net472" />
<package id="M2Mqtt" version="4.3.0.0" targetFramework="net472" /> <package id="M2Mqtt" version="4.3.0.0" targetFramework="net472" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" /> <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net472" />
</packages> </packages>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment