From 33640bbd6f322704acbe8ce7d7426b19e34f4b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Sun, 13 Feb 2022 22:39:02 +0100 Subject: [PATCH] Byte Av DataModelLibrary --- DatamodelLibrary/DatamodelLibrary.csproj | 18 +- .../20210301205458_initial.Designer.cs | 90 ----- .../Migrations/20210301205458_initial.cs | 59 --- ...1633_completion_person_address.Designer.cs | 125 ------- ...0210306151633_completion_person_address.cs | 65 ---- ...074530_completion_person_stock.Designer.cs | 145 -------- .../20210307074530_completion_person_stock.cs | 31 -- ...9_ChangedFormat_Person_Address.Designer.cs | 151 -------- ...0307212939_ChangedFormat_Person_Address.cs | 75 ---- .../20210316200448_backupregister.Designer.cs | 174 --------- .../20210316200448_backupregister.cs | 33 -- .../20210512210945_NewStockFields.Designer.cs | 177 --------- .../20210512210945_NewStockFields.cs | 24 -- ...220201161420_StockGroups_table.Designer.cs | 194 ---------- .../20220201161420_StockGroups_table.cs | 30 -- .../20220210222657_StockGroupTable.cs | 340 ------------------ ... 20220212144423_InitialCreate.Designer.cs} | 9 +- .../20220212144423_InitialCreate.cs | 141 ++++++++ .../Migrations/StockContextModelSnapshot.cs | 5 +- StockInfoCore/StockInfoCore.csproj | 3 +- StockInfoCore/Stocks.db | Bin 200704 -> 102400 bytes StockInfoCoreApp.sln | 12 +- 22 files changed, 162 insertions(+), 1739 deletions(-) delete mode 100644 DatamodelLibrary/Migrations/20210301205458_initial.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210301205458_initial.cs delete mode 100644 DatamodelLibrary/Migrations/20210306151633_completion_person_address.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210306151633_completion_person_address.cs delete mode 100644 DatamodelLibrary/Migrations/20210307074530_completion_person_stock.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210307074530_completion_person_stock.cs delete mode 100644 DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.cs delete mode 100644 DatamodelLibrary/Migrations/20210316200448_backupregister.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210316200448_backupregister.cs delete mode 100644 DatamodelLibrary/Migrations/20210512210945_NewStockFields.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20210512210945_NewStockFields.cs delete mode 100644 DatamodelLibrary/Migrations/20220201161420_StockGroups_table.Designer.cs delete mode 100644 DatamodelLibrary/Migrations/20220201161420_StockGroups_table.cs delete mode 100644 DatamodelLibrary/Migrations/20220210222657_StockGroupTable.cs rename DatamodelLibrary/Migrations/{20220210222657_StockGroupTable.Designer.cs => 20220212144423_InitialCreate.Designer.cs} (97%) create mode 100644 DatamodelLibrary/Migrations/20220212144423_InitialCreate.cs diff --git a/DatamodelLibrary/DatamodelLibrary.csproj b/DatamodelLibrary/DatamodelLibrary.csproj index 1e0b4fb..9b9b4a7 100644 --- a/DatamodelLibrary/DatamodelLibrary.csproj +++ b/DatamodelLibrary/DatamodelLibrary.csproj @@ -7,21 +7,15 @@ - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - diff --git a/DatamodelLibrary/Migrations/20210301205458_initial.Designer.cs b/DatamodelLibrary/Migrations/20210301205458_initial.Designer.cs deleted file mode 100644 index e0dcfeb..0000000 --- a/DatamodelLibrary/Migrations/20210301205458_initial.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210301205458_initial")] - partial class initial - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.3"); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210301205458_initial.cs b/DatamodelLibrary/Migrations/20210301205458_initial.cs deleted file mode 100644 index 69e9559..0000000 --- a/DatamodelLibrary/Migrations/20210301205458_initial.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class initial : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Persons", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - FirstName = table.Column(type: "TEXT", nullable: true), - LastName = table.Column(type: "TEXT", nullable: true), - NickName = table.Column(type: "TEXT", nullable: true), - Born = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Persons", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Stocks", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - StockId = table.Column(type: "TEXT", nullable: true), - StockExtId = table.Column(type: "TEXT", nullable: true), - BuyValue = table.Column(type: "TEXT", nullable: false), - BuyDate = table.Column(type: "TEXT", nullable: false), - ActValue = table.Column(type: "TEXT", nullable: false), - ActDate = table.Column(type: "TEXT", nullable: true), - ActAmount = table.Column(type: "INTEGER", nullable: false), - SoldValue = table.Column(type: "TEXT", nullable: true), - SoldDate = table.Column(type: "TEXT", nullable: true), - Comment = table.Column(type: "TEXT", nullable: true), - PostAmount = table.Column(type: "INTEGER", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Stocks", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Persons"); - - migrationBuilder.DropTable( - name: "Stocks"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20210306151633_completion_person_address.Designer.cs b/DatamodelLibrary/Migrations/20210306151633_completion_person_address.Designer.cs deleted file mode 100644 index 5192534..0000000 --- a/DatamodelLibrary/Migrations/20210306151633_completion_person_address.Designer.cs +++ /dev/null @@ -1,125 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210306151633_completion_person_address")] - partial class completion_person_address - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.3"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Gata") - .HasColumnType("TEXT"); - - b.Property("Gata2") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("PostNr") - .HasColumnType("INTEGER"); - - b.Property("PostOrt") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210306151633_completion_person_address.cs b/DatamodelLibrary/Migrations/20210306151633_completion_person_address.cs deleted file mode 100644 index 2078fb3..0000000 --- a/DatamodelLibrary/Migrations/20210306151633_completion_person_address.cs +++ /dev/null @@ -1,65 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class completion_person_address : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Comments", - table: "Persons", - type: "TEXT", - nullable: true); - - migrationBuilder.AddColumn( - name: "HomeAddress", - table: "Persons", - type: "INTEGER", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "InvoiceAddress", - table: "Persons", - type: "INTEGER", - nullable: false, - defaultValue: 0); - - migrationBuilder.CreateTable( - name: "Addresses", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - Gata = table.Column(type: "TEXT", nullable: true), - Gata2 = table.Column(type: "TEXT", nullable: true), - PostNr = table.Column(type: "INTEGER", nullable: false), - PostOrt = table.Column(type: "TEXT", nullable: true), - Nation = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Addresses", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Addresses"); - - migrationBuilder.DropColumn( - name: "Comments", - table: "Persons"); - - migrationBuilder.DropColumn( - name: "HomeAddress", - table: "Persons"); - - migrationBuilder.DropColumn( - name: "InvoiceAddress", - table: "Persons"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.Designer.cs b/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.Designer.cs deleted file mode 100644 index 963374f..0000000 --- a/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.Designer.cs +++ /dev/null @@ -1,145 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210307074530_completion_person_stock")] - partial class completion_person_stock - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.3"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Gata") - .HasColumnType("TEXT"); - - b.Property("Gata2") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("PostNr") - .HasColumnType("INTEGER"); - - b.Property("PostOrt") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.PersonStock", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PersonId") - .HasColumnType("INTEGER"); - - b.Property("StockId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("PersonStocks"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.cs b/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.cs deleted file mode 100644 index a15cc94..0000000 --- a/DatamodelLibrary/Migrations/20210307074530_completion_person_stock.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class completion_person_stock : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "PersonStocks", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - PersonId = table.Column(type: "INTEGER", nullable: false), - StockId = table.Column(type: "INTEGER", nullable: false), - Comment = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_PersonStocks", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "PersonStocks"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.Designer.cs b/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.Designer.cs deleted file mode 100644 index 352329a..0000000 --- a/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.Designer.cs +++ /dev/null @@ -1,151 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210307212939_ChangedFormat_Person_Address")] - partial class ChangedFormat_Person_Address - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.3"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Destination") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("Street") - .HasColumnType("TEXT"); - - b.Property("Street2") - .HasColumnType("TEXT"); - - b.Property("Zipcode") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("AccountNo") - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("ClearingNo") - .HasColumnType("INTEGER"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.PersonStock", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PersonId") - .HasColumnType("INTEGER"); - - b.Property("StockId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("PersonStocks"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.cs b/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.cs deleted file mode 100644 index 949c9ca..0000000 --- a/DatamodelLibrary/Migrations/20210307212939_ChangedFormat_Person_Address.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class ChangedFormat_Person_Address : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.RenameColumn( - name: "PostOrt", - table: "Addresses", - newName: "Street2"); - - migrationBuilder.RenameColumn( - name: "PostNr", - table: "Addresses", - newName: "Zipcode"); - - migrationBuilder.RenameColumn( - name: "Gata2", - table: "Addresses", - newName: "Street"); - - migrationBuilder.RenameColumn( - name: "Gata", - table: "Addresses", - newName: "Destination"); - - migrationBuilder.AddColumn( - name: "AccountNo", - table: "Persons", - type: "INTEGER", - nullable: false, - defaultValue: 0L); - - migrationBuilder.AddColumn( - name: "ClearingNo", - table: "Persons", - type: "INTEGER", - nullable: false, - defaultValue: 0); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "AccountNo", - table: "Persons"); - - migrationBuilder.DropColumn( - name: "ClearingNo", - table: "Persons"); - - migrationBuilder.RenameColumn( - name: "Zipcode", - table: "Addresses", - newName: "PostNr"); - - migrationBuilder.RenameColumn( - name: "Street2", - table: "Addresses", - newName: "PostOrt"); - - migrationBuilder.RenameColumn( - name: "Street", - table: "Addresses", - newName: "Gata2"); - - migrationBuilder.RenameColumn( - name: "Destination", - table: "Addresses", - newName: "Gata"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20210316200448_backupregister.Designer.cs b/DatamodelLibrary/Migrations/20210316200448_backupregister.Designer.cs deleted file mode 100644 index 277cad6..0000000 --- a/DatamodelLibrary/Migrations/20210316200448_backupregister.Designer.cs +++ /dev/null @@ -1,174 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210316200448_backupregister")] - partial class backupregister - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.3"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Destination") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("Street") - .HasColumnType("TEXT"); - - b.Property("Street2") - .HasColumnType("TEXT"); - - b.Property("Zipcode") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.BackupRegister", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("BackedUp") - .HasColumnType("TEXT"); - - b.Property("BackupDbName") - .HasColumnType("TEXT"); - - b.Property("BackupPath") - .HasColumnType("TEXT"); - - b.Property("DbName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("BackupRegings"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("AccountNo") - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("ClearingNo") - .HasColumnType("INTEGER"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.PersonStock", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PersonId") - .HasColumnType("INTEGER"); - - b.Property("StockId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("PersonStocks"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210316200448_backupregister.cs b/DatamodelLibrary/Migrations/20210316200448_backupregister.cs deleted file mode 100644 index 4843482..0000000 --- a/DatamodelLibrary/Migrations/20210316200448_backupregister.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class backupregister : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "BackupRegings", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - BackedUp = table.Column(type: "TEXT", nullable: false), - DbName = table.Column(type: "TEXT", nullable: true), - BackupDbName = table.Column(type: "TEXT", nullable: true), - BackupPath = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_BackupRegings", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "BackupRegings"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20210512210945_NewStockFields.Designer.cs b/DatamodelLibrary/Migrations/20210512210945_NewStockFields.Designer.cs deleted file mode 100644 index c37f568..0000000 --- a/DatamodelLibrary/Migrations/20210512210945_NewStockFields.Designer.cs +++ /dev/null @@ -1,177 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20210512210945_NewStockFields")] - partial class NewStockFields - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.6"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Destination") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("Street") - .HasColumnType("TEXT"); - - b.Property("Street2") - .HasColumnType("TEXT"); - - b.Property("Zipcode") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.BackupRegister", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("BackedUp") - .HasColumnType("TEXT"); - - b.Property("BackupDbName") - .HasColumnType("TEXT"); - - b.Property("BackupPath") - .HasColumnType("TEXT"); - - b.Property("DbName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("BackupRegings"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("AccountNo") - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("ClearingNo") - .HasColumnType("INTEGER"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.PersonStock", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PersonId") - .HasColumnType("INTEGER"); - - b.Property("StockId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("PersonStocks"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldStockPrice") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20210512210945_NewStockFields.cs b/DatamodelLibrary/Migrations/20210512210945_NewStockFields.cs deleted file mode 100644 index 2693677..0000000 --- a/DatamodelLibrary/Migrations/20210512210945_NewStockFields.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class NewStockFields : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "SoldStockPrice", - table: "Stocks", - type: "TEXT", - nullable: false, - defaultValue: 0m); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "SoldStockPrice", - table: "Stocks"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.Designer.cs b/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.Designer.cs deleted file mode 100644 index 11cf98b..0000000 --- a/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.Designer.cs +++ /dev/null @@ -1,194 +0,0 @@ -// -using System; -using DatamodelLibrary; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace DatamodelLibrary.Migrations -{ - [DbContext(typeof(StockContext))] - [Migration("20220201161420_StockGroups_table")] - partial class StockGroups_table - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.6"); - - modelBuilder.Entity("DataDomain.Address", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Destination") - .HasColumnType("TEXT"); - - b.Property("Nation") - .HasColumnType("TEXT"); - - b.Property("Street") - .HasColumnType("TEXT"); - - b.Property("Street2") - .HasColumnType("TEXT"); - - b.Property("Zipcode") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("Addresses"); - }); - - modelBuilder.Entity("DataDomain.BackupRegister", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("BackedUp") - .HasColumnType("TEXT"); - - b.Property("BackupDbName") - .HasColumnType("TEXT"); - - b.Property("BackupPath") - .HasColumnType("TEXT"); - - b.Property("DbName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("BackupRegings"); - }); - - modelBuilder.Entity("DataDomain.Person", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("AccountNo") - .HasColumnType("INTEGER"); - - b.Property("Born") - .HasColumnType("TEXT"); - - b.Property("ClearingNo") - .HasColumnType("INTEGER"); - - b.Property("Comments") - .HasColumnType("TEXT"); - - b.Property("FirstName") - .HasColumnType("TEXT"); - - b.Property("HomeAddress") - .HasColumnType("INTEGER"); - - b.Property("InvoiceAddress") - .HasColumnType("INTEGER"); - - b.Property("LastName") - .HasColumnType("TEXT"); - - b.Property("NickName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Persons"); - }); - - modelBuilder.Entity("DataDomain.PersonStock", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PersonId") - .HasColumnType("INTEGER"); - - b.Property("StockId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.ToTable("PersonStocks"); - }); - - modelBuilder.Entity("DataDomain.ShareModel", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("GroupName") - .HasColumnType("TEXT"); - - b.Property("StockName") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("StockGroups"); - }); - - modelBuilder.Entity("DataDomain.StockMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ActAmount") - .HasColumnType("INTEGER"); - - b.Property("ActDate") - .HasColumnType("TEXT"); - - b.Property("ActValue") - .HasColumnType("TEXT"); - - b.Property("BuyDate") - .HasColumnType("TEXT"); - - b.Property("BuyValue") - .HasColumnType("TEXT"); - - b.Property("Comment") - .HasColumnType("TEXT"); - - b.Property("PostAmount") - .HasColumnType("INTEGER"); - - b.Property("SoldDate") - .HasColumnType("TEXT"); - - b.Property("SoldStockPrice") - .HasColumnType("TEXT"); - - b.Property("SoldValue") - .HasColumnType("TEXT"); - - b.Property("StockExtId") - .HasColumnType("TEXT"); - - b.Property("StockId") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Stocks"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.cs b/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.cs deleted file mode 100644 index a3cfccd..0000000 --- a/DatamodelLibrary/Migrations/20220201161420_StockGroups_table.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class StockGroups_table : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "StockGroups", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - GroupName = table.Column(type: "TEXT", nullable: true), - StockName = table.Column(type: "TEXT", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_StockGroups", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "StockGroups"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20220210222657_StockGroupTable.cs b/DatamodelLibrary/Migrations/20220210222657_StockGroupTable.cs deleted file mode 100644 index 357d861..0000000 --- a/DatamodelLibrary/Migrations/20220210222657_StockGroupTable.cs +++ /dev/null @@ -1,340 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace DatamodelLibrary.Migrations -{ - public partial class StockGroupTable : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "GroupName", - table: "StockGroups"); - - migrationBuilder.AlterColumn( - name: "StockId", - table: "Stocks", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "StockExtId", - table: "Stocks", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Comment", - table: "Stocks", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "StockName", - table: "StockGroups", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AddColumn( - name: "StockGroup", - table: "StockGroups", - type: "TEXT", - nullable: false, - defaultValue: ""); - - migrationBuilder.AlterColumn( - name: "Comment", - table: "PersonStocks", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "NickName", - table: "Persons", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "LastName", - table: "Persons", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "FirstName", - table: "Persons", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Comments", - table: "Persons", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Born", - table: "Persons", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "DbName", - table: "BackupRegings", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "BackupPath", - table: "BackupRegings", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "BackupDbName", - table: "BackupRegings", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Street2", - table: "Addresses", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Street", - table: "Addresses", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Nation", - table: "Addresses", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Destination", - table: "Addresses", - type: "TEXT", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "TEXT", - oldNullable: true); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "StockGroup", - table: "StockGroups"); - - migrationBuilder.AlterColumn( - name: "StockId", - table: "Stocks", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "StockExtId", - table: "Stocks", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Comment", - table: "Stocks", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "StockName", - table: "StockGroups", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AddColumn( - name: "GroupName", - table: "StockGroups", - type: "TEXT", - nullable: true); - - migrationBuilder.AlterColumn( - name: "Comment", - table: "PersonStocks", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "NickName", - table: "Persons", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "LastName", - table: "Persons", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "FirstName", - table: "Persons", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Comments", - table: "Persons", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Born", - table: "Persons", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "DbName", - table: "BackupRegings", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "BackupPath", - table: "BackupRegings", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "BackupDbName", - table: "BackupRegings", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Street2", - table: "Addresses", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Street", - table: "Addresses", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Nation", - table: "Addresses", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - - migrationBuilder.AlterColumn( - name: "Destination", - table: "Addresses", - type: "TEXT", - nullable: true, - oldClrType: typeof(string), - oldType: "TEXT"); - } - } -} diff --git a/DatamodelLibrary/Migrations/20220210222657_StockGroupTable.Designer.cs b/DatamodelLibrary/Migrations/20220212144423_InitialCreate.Designer.cs similarity index 97% rename from DatamodelLibrary/Migrations/20220210222657_StockGroupTable.Designer.cs rename to DatamodelLibrary/Migrations/20220212144423_InitialCreate.Designer.cs index 790d57e..e91c985 100644 --- a/DatamodelLibrary/Migrations/20220210222657_StockGroupTable.Designer.cs +++ b/DatamodelLibrary/Migrations/20220212144423_InitialCreate.Designer.cs @@ -6,17 +6,18 @@ using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +#nullable disable + namespace DatamodelLibrary.Migrations { [DbContext(typeof(StockContext))] - [Migration("20220210222657_StockGroupTable")] - partial class StockGroupTable + [Migration("20220212144423_InitialCreate")] + partial class InitialCreate { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.6"); + modelBuilder.HasAnnotation("ProductVersion", "6.0.2"); modelBuilder.Entity("DataDomain.Address", b => { diff --git a/DatamodelLibrary/Migrations/20220212144423_InitialCreate.cs b/DatamodelLibrary/Migrations/20220212144423_InitialCreate.cs new file mode 100644 index 0000000..0d1633a --- /dev/null +++ b/DatamodelLibrary/Migrations/20220212144423_InitialCreate.cs @@ -0,0 +1,141 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace DatamodelLibrary.Migrations +{ + public partial class InitialCreate : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Addresses", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Street = table.Column(type: "TEXT", nullable: true), + Street2 = table.Column(type: "TEXT", nullable: true), + Zipcode = table.Column(type: "INTEGER", nullable: false), + Destination = table.Column(type: "TEXT", nullable: true), + Nation = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Addresses", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "BackupRegings", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + BackedUp = table.Column(type: "TEXT", nullable: false), + DbName = table.Column(type: "TEXT", nullable: true), + BackupDbName = table.Column(type: "TEXT", nullable: true), + BackupPath = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_BackupRegings", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Persons", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + FirstName = table.Column(type: "TEXT", nullable: true), + LastName = table.Column(type: "TEXT", nullable: true), + NickName = table.Column(type: "TEXT", nullable: false), + Born = table.Column(type: "TEXT", nullable: true), + Comments = table.Column(type: "TEXT", nullable: true), + HomeAddress = table.Column(type: "INTEGER", nullable: false), + InvoiceAddress = table.Column(type: "INTEGER", nullable: false), + ClearingNo = table.Column(type: "INTEGER", nullable: false), + AccountNo = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Persons", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "PersonStocks", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + PersonId = table.Column(type: "INTEGER", nullable: false), + StockId = table.Column(type: "INTEGER", nullable: false), + Comment = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_PersonStocks", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "StockGroups", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + StockGroup = table.Column(type: "TEXT", nullable: true), + StockName = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_StockGroups", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Stocks", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + StockId = table.Column(type: "TEXT", nullable: true), + StockExtId = table.Column(type: "TEXT", nullable: true), + BuyValue = table.Column(type: "TEXT", nullable: false), + BuyDate = table.Column(type: "TEXT", nullable: false), + ActValue = table.Column(type: "TEXT", nullable: false), + ActDate = table.Column(type: "TEXT", nullable: true), + ActAmount = table.Column(type: "INTEGER", nullable: false), + SoldValue = table.Column(type: "TEXT", nullable: true), + SoldDate = table.Column(type: "TEXT", nullable: true), + Comment = table.Column(type: "TEXT", nullable: true), + PostAmount = table.Column(type: "INTEGER", nullable: false), + SoldStockPrice = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Stocks", x => x.Id); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Addresses"); + + migrationBuilder.DropTable( + name: "BackupRegings"); + + migrationBuilder.DropTable( + name: "Persons"); + + migrationBuilder.DropTable( + name: "PersonStocks"); + + migrationBuilder.DropTable( + name: "StockGroups"); + + migrationBuilder.DropTable( + name: "Stocks"); + } + } +} diff --git a/DatamodelLibrary/Migrations/StockContextModelSnapshot.cs b/DatamodelLibrary/Migrations/StockContextModelSnapshot.cs index 5e1ce8c..81eceea 100644 --- a/DatamodelLibrary/Migrations/StockContextModelSnapshot.cs +++ b/DatamodelLibrary/Migrations/StockContextModelSnapshot.cs @@ -5,6 +5,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +#nullable disable + namespace DatamodelLibrary.Migrations { [DbContext(typeof(StockContext))] @@ -13,8 +15,7 @@ namespace DatamodelLibrary.Migrations protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.6"); + modelBuilder.HasAnnotation("ProductVersion", "6.0.2"); modelBuilder.Entity("DataDomain.Address", b => { diff --git a/StockInfoCore/StockInfoCore.csproj b/StockInfoCore/StockInfoCore.csproj index 80aec0e..9b27a24 100644 --- a/StockInfoCore/StockInfoCore.csproj +++ b/StockInfoCore/StockInfoCore.csproj @@ -18,7 +18,7 @@ Always - PreserveNewest + Never @@ -33,7 +33,6 @@ - diff --git a/StockInfoCore/Stocks.db b/StockInfoCore/Stocks.db index ca4a7e12d252577d5329f51c198a134c7b49de58..1e27f94f10680b62be7a4143c84836c05c77b323 100644 GIT binary patch delta 10248 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 H53&CO&}yID literal 200704 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 diff --git a/StockInfoCoreApp.sln b/StockInfoCoreApp.sln index 02150b0..433567f 100644 --- a/StockInfoCoreApp.sln +++ b/StockInfoCoreApp.sln @@ -15,14 +15,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StockDAL", "StockDAL\StockD EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StockDAL.Interface", "StockDal.Interface\StockDAL.Interface.csproj", "{90C9E06C-4774-4FD0-B15E-2BE6E23328E6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DatamodelLibrary", "DatamodelLibrary\DatamodelLibrary.csproj", "{D08DA97B-3B26-4A81-B778-440DA9BC55FF}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StockBL", "StockBL\StockBL.csproj", "{BA58D226-460C-41B8-8C7D-7A43B75151E1}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StockBL.Interface", "StockBL.Interface\StockBL.Interface.csproj", "{BEAD00C3-74AD-416B-9B36-EBE40DAFF16F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserHelper", "BrowserHelper\BrowserHelper.csproj", "{7F507F7A-609F-468F-AA38-41F3240EBF1B}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DatamodelLibrary", "DatamodelLibrary\DatamodelLibrary.csproj", "{8A2963C8-96D9-4BCE-B937-0486CF84473C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -53,10 +53,6 @@ Global {90C9E06C-4774-4FD0-B15E-2BE6E23328E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {90C9E06C-4774-4FD0-B15E-2BE6E23328E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {90C9E06C-4774-4FD0-B15E-2BE6E23328E6}.Release|Any CPU.Build.0 = Release|Any CPU - {D08DA97B-3B26-4A81-B778-440DA9BC55FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D08DA97B-3B26-4A81-B778-440DA9BC55FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D08DA97B-3B26-4A81-B778-440DA9BC55FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D08DA97B-3B26-4A81-B778-440DA9BC55FF}.Release|Any CPU.Build.0 = Release|Any CPU {BA58D226-460C-41B8-8C7D-7A43B75151E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BA58D226-460C-41B8-8C7D-7A43B75151E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {BA58D226-460C-41B8-8C7D-7A43B75151E1}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -69,6 +65,10 @@ Global {7F507F7A-609F-468F-AA38-41F3240EBF1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F507F7A-609F-468F-AA38-41F3240EBF1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F507F7A-609F-468F-AA38-41F3240EBF1B}.Release|Any CPU.Build.0 = Release|Any CPU + {8A2963C8-96D9-4BCE-B937-0486CF84473C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A2963C8-96D9-4BCE-B937-0486CF84473C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A2963C8-96D9-4BCE-B937-0486CF84473C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A2963C8-96D9-4BCE-B937-0486CF84473C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE