diff --git a/SQL/Schacht.sql b/SQL/Schacht.sql index f2828f3..38d0039 100644 --- a/SQL/Schacht.sql +++ b/SQL/Schacht.sql @@ -6,14 +6,16 @@ CREATE TABLE IF NOT EXISTS public.schacht ( schacht_id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ), objektbezeichnung text COLLATE pg_catalog."default", - rechtswert numeric(18,4) NOT NULL, - hochwert numeric(18,4) NOT NULL, - sohlhoehe numeric(18,4) NOT NULL, + deckelrechtswert numeric(18,4) NOT NULL, + deckelhochwert numeric(18,4) NOT NULL, deckelhoehe numeric(18,4) NOT NULL, + sohlrechtswert numeric(18,4), + sohlhochwert numeric(18,4), + sohlhoehe numeric(18,4) NOT NULL, entwaesserung integer NOT NULL, ref_projekt_id integer, - CONSTRAINT "PK_Schaechte" PRIMARY KEY (schacht_id), - CONSTRAINT "FK_Schaechte_Projekte_ProjektId" FOREIGN KEY (ref_projekt_id) + CONSTRAINT "PK_schacht" PRIMARY KEY (schacht_id), + CONSTRAINT "FK_schacht_Projekte_ProjektId" FOREIGN KEY (ref_projekt_id) REFERENCES public.projekt (projekt_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION diff --git a/SewerStammGen.ConsoleApp/Program.cs b/SewerStammGen.ConsoleApp/Program.cs index 9dd3fbf..183b4ba 100644 --- a/SewerStammGen.ConsoleApp/Program.cs +++ b/SewerStammGen.ConsoleApp/Program.cs @@ -11,33 +11,42 @@ namespace SewerStammGen.ConsoleApp { static void Main(string[] args) { - IProjektDataService projektService = new ProjektDataService(""); + Test t = new(); - Projekt neuesProjekt = new Projekt() - { - Erstelldatum = "test", - Projektname = "test", - Kodierungssystem = EKodierungssystem.EN13508_2_2011, - ExportType = EExportType.XML2006, - Ort = "test", - Strasse = "test", - }; - - //test(neuesProjekt, projektService); - readtest(projektService); - Console.WriteLine("Hello, World!"); - } - - private static async void readtest(IProjektDataService projektService) - { - var m = await projektService.GetAll(); Debugger.Break(); } + } - private static async void test(Projekt neuesProjekt, IProjektDataService projektService) + class Test + { + char[] zeile = new char[1476]; + public Test() { - var m = await projektService.Create(neuesProjekt); - Console.WriteLine(m.Id); + zeile = new char[1476]; + for(int i = 0; i < zeile.Length; i++) + { + zeile[i] = ' '; + } + WriteContent(new Tuple(3, 17), "29283829"); + WriteContent(new Tuple(56, 65), "S"); + WriteContent(new Tuple(67, 76), "IB"); + WriteContent(new Tuple(78, 87), "RESC"); + string result = new string(zeile); + } + + void WriteContent(Tuple spalten, string content) + { + uint start = spalten.Item1-1; + uint ende = spalten.Item2-1; + + int counter = 0; + + for(uint i = start; i < (content.Length+start); i++) + { + zeile[i] = content[counter]; + + counter++; + } } } } \ No newline at end of file diff --git a/SewerStammGen.DAL/Services/PostgresqlData/SchachtDataService.cs b/SewerStammGen.DAL/Services/PostgresqlData/SchachtDataService.cs index 524a40d..a4d0502 100644 --- a/SewerStammGen.DAL/Services/PostgresqlData/SchachtDataService.cs +++ b/SewerStammGen.DAL/Services/PostgresqlData/SchachtDataService.cs @@ -17,17 +17,21 @@ namespace SewerStammGen.DAL.Services.PostgresqlData public async Task Create(Schacht entity) { - string command = "INSERT INTO " + tableName + " (objektbezeichnung,rechtswert,hochwert,sohlhoehe,deckelhoehe,entwaesserung,ref_projekt_id) VALUES " + - "(@1,@2,@3,@4,@5,@6,@7) RETURNING schacht_id"; + string command = "INSERT INTO " + tableName + " (" + + "objektbezeichnung,deckelrechtswert,deckelhochwert," + + "sohlrechtswert,sohlhochwert,sohlhoehe,deckelhoehe,entwaesserung,ref_projekt_id) VALUES " + + "(@1,@2,@3,@4,@5,@6,@7,@8,@9) RETURNING schacht_id"; using(var cmd = new NpgsqlCommand(command,conn)) { cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung); - cmd.Parameters.AddWithValue("2", entity.RechtsWert); - cmd.Parameters.AddWithValue("3", entity.HochWert); - cmd.Parameters.AddWithValue("4", entity.SohlHoehe); - cmd.Parameters.AddWithValue("5", entity.DeckelHoehe); - cmd.Parameters.AddWithValue("6", (int)entity.Entwaesserung); - cmd.Parameters.AddWithValue("7", entity.Projekt.Id); + cmd.Parameters.AddWithValue("2", entity.DeckelRechtsWert); + cmd.Parameters.AddWithValue("3", entity.DeckelHochWert); + cmd.Parameters.AddWithValue("4", entity.SohlRechtsWert); + cmd.Parameters.AddWithValue("5", entity.SohlHochWert); + cmd.Parameters.AddWithValue("6", entity.SohlHoehe); + cmd.Parameters.AddWithValue("7", entity.DeckelHoehe); + cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung); + cmd.Parameters.AddWithValue("9", entity.Projekt.Id); using var reader = await cmd.ExecuteReaderAsync(); reader.Read(); entity.Id = reader.GetInt32(0); @@ -51,12 +55,14 @@ namespace SewerStammGen.DAL.Services.PostgresqlData { Id = reader.GetInt32(0), Objektbezeichnung = reader.IsDBNull(1) ? "": reader.GetString(1), - RechtsWert = reader.GetDecimal(2), - HochWert = reader.GetDecimal(3), - SohlHoehe = reader.GetDecimal(4), - DeckelHoehe = reader.GetDecimal(5), - Entwaesserung = (EEntwaeserung)reader.GetInt32(6), - Projekt = new Projekt() { Id = reader.GetInt32(7) }, + DeckelRechtsWert = reader.GetDecimal(2), + DeckelHochWert = reader.GetDecimal(3), + DeckelHoehe = reader.GetDecimal(4), + SohlRechtsWert = reader.GetDecimal(5), + SohlHochWert = reader.GetDecimal(6), + SohlHoehe = reader.GetDecimal(7), + Entwaesserung = (EEntwaeserung)reader.GetInt32(8), + Projekt = new Projekt() { Id = reader.GetInt32(9) }, }; } @@ -87,17 +93,20 @@ namespace SewerStammGen.DAL.Services.PostgresqlData public async Task Update(Schacht entity) { string command = @"UPDATE " + tableName + " SET " + - "objektbezeichnung=@1, rechtswert=@2, hochwert=@3, sohlhoehe=@4, deckelhoehe=@5, entwaesserung=@6, ref_projekt_id=@7 WHERE schacht_id=@8"; + "objektbezeichnung=@1, deckelrechtswert=@2, deckelhochwert=@3, deckelhoehe=@4, " + + "sohlrechtswert=@5, sohlhochwert=@6, sohlhoehe=@7, entwaesserung=@8, ref_projekt_id=@9 WHERE schacht_id=@10"; using(var cmd = new NpgsqlCommand(command,conn)) { cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung); - cmd.Parameters.AddWithValue("2", entity.RechtsWert); - cmd.Parameters.AddWithValue("3", entity.HochWert); - cmd.Parameters.AddWithValue("4", entity.SohlHoehe); - cmd.Parameters.AddWithValue("5", entity.DeckelHoehe); - cmd.Parameters.AddWithValue("6", (int)entity.Entwaesserung); - cmd.Parameters.AddWithValue("7", entity.Projekt.Id); - cmd.Parameters.AddWithValue("8", entity.Id); + cmd.Parameters.AddWithValue("2", entity.DeckelRechtsWert); + cmd.Parameters.AddWithValue("3", entity.DeckelHochWert); + cmd.Parameters.AddWithValue("4", entity.DeckelHoehe); + cmd.Parameters.AddWithValue("5", entity.SohlRechtsWert); + cmd.Parameters.AddWithValue("6", entity.SohlHochWert); + cmd.Parameters.AddWithValue("7", entity.SohlHoehe); + cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung); + cmd.Parameters.AddWithValue("9", entity.Projekt.Id); + cmd.Parameters.AddWithValue("10", entity.Id); await cmd.ExecuteNonQueryAsync(); } diff --git a/SewerStammGen.Shared/Domain/Schacht.cs b/SewerStammGen.Shared/Domain/Schacht.cs index 0709dab..09be655 100644 --- a/SewerStammGen.Shared/Domain/Schacht.cs +++ b/SewerStammGen.Shared/Domain/Schacht.cs @@ -10,10 +10,12 @@ namespace SewerStammGen.Shared.Domain public class Schacht : DBObject { public string Objektbezeichnung { get; set; } = String.Empty; - public decimal RechtsWert { get; set; } - public decimal HochWert { get; set; } - public decimal SohlHoehe { get; set; } + public decimal DeckelRechtsWert { get; set; } + public decimal DeckelHochWert { get; set; } public decimal DeckelHoehe { get; set; } + public decimal SohlRechtsWert { get; set; } + public decimal SohlHochWert { get; set; } + public decimal SohlHoehe { get; set; } public Projekt Projekt { get; set; } = new Projekt(); public EEntwaeserung Entwaesserung { get; set; } } diff --git a/SewerStammGen.WPF/ViewModel/Haltung/HaltungEditViewModel.cs b/SewerStammGen.WPF/ViewModel/Haltung/HaltungEditViewModel.cs index 95227cb..aa5ec6d 100644 --- a/SewerStammGen.WPF/ViewModel/Haltung/HaltungEditViewModel.cs +++ b/SewerStammGen.WPF/ViewModel/Haltung/HaltungEditViewModel.cs @@ -77,10 +77,10 @@ namespace SewerStammGen.WPF.ViewModel private void RecalculateLength() { - double x1 = (double)Model.StartSchacht.RechtsWert; - double x2 = (double)Model.EndSchacht.RechtsWert; - double y1 = (double)Model.StartSchacht.HochWert; - double y2 = (double)Model.EndSchacht.HochWert; + double x1 = (double)Model.StartSchacht.DeckelRechtsWert; + double x2 = (double)Model.EndSchacht.DeckelRechtsWert; + double y1 = (double)Model.StartSchacht.DeckelHochWert; + double y2 = (double)Model.EndSchacht.DeckelHochWert; double length = Math.Sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2))); diff --git a/SewerStammGen.WPF/ViewModel/Schacht/ManholeEditViewModel.cs b/SewerStammGen.WPF/ViewModel/Schacht/ManholeEditViewModel.cs index 99881bc..e673d27 100644 --- a/SewerStammGen.WPF/ViewModel/Schacht/ManholeEditViewModel.cs +++ b/SewerStammGen.WPF/ViewModel/Schacht/ManholeEditViewModel.cs @@ -36,25 +36,25 @@ namespace SewerStammGen.WPF.ViewModel } } } - public decimal RechtsWert + public decimal DeckelRechtsWert { - get => _model.RechtsWert; + get => _model.DeckelRechtsWert; set { - if(_model.RechtsWert != value) + if(_model.DeckelRechtsWert != value) { - _model.RechtsWert = value; + _model.DeckelRechtsWert = value; OnPropertyChanged(); } } } - public decimal HochWert + public decimal DeckelHochWert { - get => _model.HochWert; set + get => _model.DeckelHochWert; set { - if (_model.HochWert != value) + if (_model.DeckelHochWert != value) { - _model.HochWert = value; + _model.DeckelHochWert = value; OnPropertyChanged(); } } @@ -71,6 +71,31 @@ namespace SewerStammGen.WPF.ViewModel } } } + public decimal SohlHochWert + { + get => _model.SohlHochWert; + set + { + if(_model.SohlHochWert != value) + { + _model.SohlHochWert = value; + OnPropertyChanged(); + } + } + } + public decimal SohlRechtsWert + { + get => _model.SohlRechtsWert; + set + { + if(_model.SohlRechtsWert != value) + { + _model.SohlRechtsWert = value; + OnPropertyChanged(); + } + } + } + public decimal SohlHoehe { get => _model.SohlHoehe; diff --git a/SewerStammGen.WPF/Views/Converters/EqualValueToEntwaesserungConverter.cs b/SewerStammGen.WPF/Views/Converters/EqualValueToEntwaesserungConverter.cs new file mode 100644 index 0000000..2c274bc --- /dev/null +++ b/SewerStammGen.WPF/Views/Converters/EqualValueToEntwaesserungConverter.cs @@ -0,0 +1,24 @@ +using SewerStammGen.Shared.Domain; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace SewerStammGen.WPF.Views.Converters +{ + public class EqualValueToEntwaesserungConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value.ToString() == parameter.ToString(); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return (EEntwaeserung)parameter; + } + } +} diff --git a/SewerStammGen.WPF/Views/Schacht/SchachtEditView.xaml b/SewerStammGen.WPF/Views/Schacht/SchachtEditView.xaml index 6b7446d..c3cc595 100644 --- a/SewerStammGen.WPF/Views/Schacht/SchachtEditView.xaml +++ b/SewerStammGen.WPF/Views/Schacht/SchachtEditView.xaml @@ -3,9 +3,14 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:converter="clr-namespace:SewerStammGen.WPF.Views.Converters" + xmlns:stat="clr-namespace:SewerStammGen.Shared.Domain;assembly=SewerStammGen.Shared" xmlns:local="clr-namespace:SewerStammGen.WPF.Views" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> + + + @@ -18,29 +23,37 @@ + +