Fotodokumentation domain hinzugefügt zur EF

This commit is contained in:
HuskyTeufel
2022-03-30 14:19:03 +02:00
parent f59fc036d1
commit f34f4517ca
11 changed files with 562 additions and 2 deletions

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.Domain.Model
{
public class PhotoDocumentation : DomainObject
{
public string PicturePath { get; set; }
public string Description { get; set; }
}
}

View File

@@ -28,6 +28,7 @@ namespace DaSaSo.EntityFramework
public DbSet<PipeLiner>? PipeLiners { get; set; }
public DbSet<Impregnation>? Impregnations { get; set; }
public DbSet<SewerPoint>? SewerPoints { get; set; }
public DbSet<PhotoDocumentation>? PhotoDocumentation { get; set;}
}
}

View File

@@ -0,0 +1,405 @@
// <auto-generated />
using System;
using DaSaSo.EntityFramework;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DaSaSo.EntityFramework.Migrations
{
[DbContext(typeof(DaSaSoDbContext))]
[Migration("20220330120614_PhotoDocumentation_Added")]
partial class PhotoDocumentation_Added
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("DaSaSo.Domain.Model.Buildingsite", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("BuildingSiteNumber")
.HasColumnType("text");
b.Property<int?>("ClientId")
.HasColumnType("integer");
b.Property<string>("ContactPerson")
.HasColumnType("text");
b.Property<string>("Country")
.HasColumnType("text");
b.Property<int?>("ProjectId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("ClientId");
b.HasIndex("ProjectId");
b.ToTable("Buildingsites");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Client", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Country")
.HasColumnType("text");
b.Property<string>("Firstname")
.HasColumnType("text");
b.Property<string>("LastName")
.HasColumnType("text");
b.Property<string>("Postcode")
.HasColumnType("text");
b.Property<string>("Street")
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Clients");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Impregnation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("DN")
.HasColumnType("integer");
b.Property<DateOnly>("Date")
.HasColumnType("date");
b.Property<bool>("IsAvaible")
.HasColumnType("boolean");
b.Property<string>("LinerNumber")
.HasColumnType("text");
b.Property<decimal>("Linerlength")
.HasColumnType("numeric");
b.Property<string>("Number")
.HasColumnType("text");
b.Property<decimal>("WallThickness")
.HasColumnType("numeric");
b.HasKey("Id");
b.ToTable("Impregnations");
});
modelBuilder.Entity("DaSaSo.Domain.Model.PhotoDocumentation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.HasColumnType("text");
b.Property<string>("PicturePath")
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("PhotoDocumentation");
});
modelBuilder.Entity("DaSaSo.Domain.Model.PipeLiner", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<bool>("ClosedEnd")
.HasColumnType("boolean");
b.Property<DateOnly>("Date")
.HasColumnType("date");
b.Property<int?>("ImpregnationId")
.HasColumnType("integer");
b.Property<decimal>("InversionPressure")
.HasColumnType("numeric");
b.Property<decimal>("LinerLength")
.HasColumnType("numeric");
b.Property<string>("Operator")
.HasColumnType("text");
b.Property<bool>("Preliner")
.HasColumnType("boolean");
b.Property<int>("PreparationType")
.HasColumnType("integer");
b.Property<decimal>("TemperaturAssembly")
.HasColumnType("numeric");
b.Property<decimal>("TemperaturStorage")
.HasColumnType("numeric");
b.Property<decimal>("TemperatureOutdoors")
.HasColumnType("numeric");
b.Property<decimal>("TemperatureSewer")
.HasColumnType("numeric");
b.Property<string>("Weather")
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("ImpregnationId");
b.ToTable("PipeLiners");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Project", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.HasColumnType("text");
b.Property<string>("Projektnummer")
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Projects");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerDamage", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("DamageType")
.HasColumnType("integer");
b.Property<decimal>("Distance")
.HasColumnType("numeric");
b.Property<int?>("SewerObjectId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("SewerObjectId");
b.ToTable("SewerDamages");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerObject", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int?>("BuildingSiteId")
.HasColumnType("integer");
b.Property<bool>("BuildingsiteBarier")
.HasColumnType("boolean");
b.Property<int>("DN")
.HasColumnType("integer");
b.Property<string>("Hausnummer")
.HasColumnType("text");
b.Property<string>("Material")
.HasColumnType("text");
b.Property<string>("ObjektName")
.HasColumnType("text");
b.Property<bool>("PermitNeeded")
.HasColumnType("boolean");
b.Property<int?>("PipeLinerId")
.HasColumnType("integer");
b.Property<int?>("PunktObenId")
.HasColumnType("integer");
b.Property<int>("PunktObenType")
.HasColumnType("integer");
b.Property<int?>("PunktUntenId")
.HasColumnType("integer");
b.Property<int>("PunktUntenType")
.HasColumnType("integer");
b.Property<string>("SanNummer")
.HasColumnType("text");
b.Property<bool>("SewerActivated")
.HasColumnType("boolean");
b.Property<bool>("SewerCleaned")
.HasColumnType("boolean");
b.Property<decimal>("SewerLength")
.HasColumnType("numeric");
b.Property<string>("StreetName")
.HasColumnType("text");
b.Property<bool>("WaterBarrier")
.HasColumnType("boolean");
b.HasKey("Id");
b.HasIndex("BuildingSiteId");
b.HasIndex("PipeLinerId");
b.HasIndex("PunktObenId");
b.HasIndex("PunktUntenId");
b.ToTable("SewerObjects");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerPoint", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Objektnummer")
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("SewerPoints");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Buildingsite", b =>
{
b.HasOne("DaSaSo.Domain.Model.Client", "Client")
.WithMany()
.HasForeignKey("ClientId");
b.HasOne("DaSaSo.Domain.Model.Project", "Project")
.WithMany("BuildingSites")
.HasForeignKey("ProjectId");
b.Navigation("Client");
b.Navigation("Project");
});
modelBuilder.Entity("DaSaSo.Domain.Model.PipeLiner", b =>
{
b.HasOne("DaSaSo.Domain.Model.Impregnation", "Impregnation")
.WithMany()
.HasForeignKey("ImpregnationId");
b.Navigation("Impregnation");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerDamage", b =>
{
b.HasOne("DaSaSo.Domain.Model.SewerObject", "SewerObject")
.WithMany("SewerDamages")
.HasForeignKey("SewerObjectId");
b.Navigation("SewerObject");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerObject", b =>
{
b.HasOne("DaSaSo.Domain.Model.Buildingsite", "BuildingSite")
.WithMany("SewerObjects")
.HasForeignKey("BuildingSiteId");
b.HasOne("DaSaSo.Domain.Model.PipeLiner", "PipeLiner")
.WithMany()
.HasForeignKey("PipeLinerId");
b.HasOne("DaSaSo.Domain.Model.SewerPoint", "PunktOben")
.WithMany()
.HasForeignKey("PunktObenId");
b.HasOne("DaSaSo.Domain.Model.SewerPoint", "PunktUnten")
.WithMany()
.HasForeignKey("PunktUntenId");
b.Navigation("BuildingSite");
b.Navigation("PipeLiner");
b.Navigation("PunktOben");
b.Navigation("PunktUnten");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Buildingsite", b =>
{
b.Navigation("SewerObjects");
});
modelBuilder.Entity("DaSaSo.Domain.Model.Project", b =>
{
b.Navigation("BuildingSites");
});
modelBuilder.Entity("DaSaSo.Domain.Model.SewerObject", b =>
{
b.Navigation("SewerDamages");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,33 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DaSaSo.EntityFramework.Migrations
{
public partial class PhotoDocumentation_Added : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "PhotoDocumentation",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
PicturePath = table.Column<string>(type: "text", nullable: true),
Description = table.Column<string>(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_PhotoDocumentation", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "PhotoDocumentation");
}
}
}

View File

@@ -17,7 +17,7 @@ namespace DaSaSo.EntityFramework.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.0-rc.1.21452.10")
.HasAnnotation("ProductVersion", "6.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
@@ -116,6 +116,25 @@ namespace DaSaSo.EntityFramework.Migrations
b.ToTable("Impregnations");
});
modelBuilder.Entity("DaSaSo.Domain.Model.PhotoDocumentation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.HasColumnType("text");
b.Property<string>("PicturePath")
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("PhotoDocumentation");
});
modelBuilder.Entity("DaSaSo.Domain.Model.PipeLiner", b =>
{
b.Property<int>("Id")

View File

@@ -17,6 +17,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
<PackageReference Include="PresentationFramework" Version="4.6.0" />
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,12 +1,33 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DaSaSo.ViewModel
{
public static class BitmapConversion
{
//BitmapSource
}
public class SewerPictureDocumentationViewModel : BaseViewModel
{
public ObservableCollection<TabItem> Tabs { get; set; }
public SewerPictureDocumentationViewModel()
{
Tabs = new ObservableCollection<TabItem>();
Tabs.Add(new TabItem { Header = "One", Content = "One's content" });
Tabs.Add(new TabItem { Header = "Two", Content = "Two content" });
}
}
public sealed class TabItem
{
public string Header { get; set; }
public string Content { get; set; }
}
}

View File

@@ -52,6 +52,9 @@
<Compile Update="View\SewerObject\Controls\SewerRehabilation.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="View\SewerObject\PhotodocumentationView.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="View\SewerObject\SewerPipeLinerView.xaml.cs">
<SubType>Code</SubType>
</Compile>
@@ -120,6 +123,9 @@
<Page Update="View\SewerObject\Controls\SewerRehabilation.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="View\SewerObject\PhotodocumentationView.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="View\SewerObject\SewerPipeLinerView.xaml">
<SubType>Designer</SubType>
</Page>

View File

@@ -0,0 +1,28 @@
<UserControl x:Class="DaSaSo.Wpf.View.SewerObject.PhotodocumentationView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:local="clr-namespace:DaSaSo.Wpf.View.SewerObject" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:SewerPictureDocumentationViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="9*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
<TabControl ItemsSource="{Binding Tabs}" Name="tabImages" Grid.Column="1" Background="#00FFFFFF" TabStripPlacement="Bottom" MinHeight="150" AllowDrop="False" Focusable="False" TextOptions.TextFormattingMode="Display">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}" />
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
<TextBlock Name="txtBemerkung" Grid.Column="1" Grid.Row="1" TextWrapping="Wrap" Background="#FFFFFFFF" Foreground="#FF000000" VerticalAlignment="Center" Text="Kommentar" />
<Button Name="btnAddPhoto" Content="Hinzufügen" Width="50" Grid.RowSpan="2" VerticalAlignment="Top" />
</Grid>
</UserControl>

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace DaSaSo.Wpf.View.SewerObject
{
/// <summary>
/// Interaction logic for PhotodocumentationView.xaml
/// </summary>
public partial class PhotodocumentationView : UserControl
{
public PhotodocumentationView()
{
InitializeComponent();
}
}
}

View File

@@ -7,7 +7,7 @@
xmlns:local="clr-namespace:DaSaSo.Wpf.View.SewerObject" xmlns:Controls="clr-namespace:DaSaSo.Wpf.Controls" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:SewerMainListViewModel}"
mc:Ignorable="d"
xmlns:views ="clr-namespace:DaSaSo.Wpf.View.SewerObject"
d:DesignHeight="450" d:DesignWidth="800">
d:DesignHeight="900" d:DesignWidth="800">
<UserControl.Resources>
<DataTemplate DataType="{x:Type viewmodel:SewerStammdatenViewModel}">
<views:SewerStammdatenView />
@@ -21,6 +21,9 @@
<DataTemplate DataType="{x:Type viewmodel:SewerPipeLinerViewModel}">
<views:SewerPipeLinerView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:SewerPictureDocumentationViewModel}">
<views:PhotodocumentationView />
</DataTemplate>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</UserControl.Resources>
<Grid>