Compare commits
17 Commits
business-l
...
Tests
Author | SHA1 | Date | |
---|---|---|---|
|
8578b62989 | ||
|
b45909ab63 | ||
|
f8ee73f50b | ||
|
76f84a6afa | ||
|
03740b08bc | ||
|
6de2d1db6a | ||
|
982ff0da15 | ||
|
b2215cdd8f | ||
|
04f5e9e455 | ||
|
199ac62f4b | ||
|
e6e3e64601 | ||
|
58f470ffbc | ||
|
ee776460b2 | ||
|
219b0483f6 | ||
|
39e9737476 | ||
|
54e64cbb87 | ||
|
8e0e5ad34a |
15
LuminousSales/Business/Business.csproj
Normal file
15
LuminousSales/Business/Business.csproj
Normal file
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.12" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Models\Data.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
17
LuminousSales/Business/Business/UsersController.cs
Normal file
17
LuminousSales/Business/Business/UsersController.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using Models;
|
||||
using Models.Models;
|
||||
using System.Linq;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class UsersController
|
||||
{
|
||||
|
||||
private LuminousContext contex;
|
||||
|
||||
public UsersController()
|
||||
{
|
||||
this.contex = new LuminousContext();
|
||||
}
|
||||
}
|
||||
}
|
20
LuminousSales/Display/Display.csproj
Normal file
20
LuminousSales/Display/Display.csproj
Normal file
@@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.12">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Business\Business.csproj" />
|
||||
<ProjectReference Include="..\Models\Data.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
12
LuminousSales/Display/Program.cs
Normal file
12
LuminousSales/Display/Program.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using LuminousSales.Business;
|
||||
using System;
|
||||
|
||||
namespace Display
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.31019.35
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LuminousSales", "LuminousSales\LuminousSales.csproj", "{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Data", "Models\Data.csproj", "{40C482BF-B9C4-4460-BB1C-5A90959D1838}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Business", "Business\Business.csproj", "{E1661853-3081-4C40-8E68-C063B3BC88A4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Display", "Display\Display.csproj", "{61E060C5-4360-4880-9ED7-6A139C988F0F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -11,10 +15,18 @@ Global
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{40C482BF-B9C4-4460-BB1C-5A90959D1838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{40C482BF-B9C4-4460-BB1C-5A90959D1838}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{40C482BF-B9C4-4460-BB1C-5A90959D1838}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{40C482BF-B9C4-4460-BB1C-5A90959D1838}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E1661853-3081-4C40-8E68-C063B3BC88A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E1661853-3081-4C40-8E68-C063B3BC88A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E1661853-3081-4C40-8E68-C063B3BC88A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E1661853-3081-4C40-8E68-C063B3BC88A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{61E060C5-4360-4880-9ED7-6A139C988F0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{61E060C5-4360-4880-9ED7-6A139C988F0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{61E060C5-4360-4880-9ED7-6A139C988F0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{61E060C5-4360-4880-9ED7-6A139C988F0F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class DealsBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class PermissionsBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class ProductBusiness
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class RolesBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class RolesToPermissionBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class StocksBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class UsersBusiness
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Business
|
||||
{
|
||||
public class UsersToRolesBusiness
|
||||
{
|
||||
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Data.Model
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace LuminousSales.Data
|
||||
{
|
||||
public class ProductContext
|
||||
{
|
||||
}
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="EntityFramework" Version="6.4.4" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@@ -1,15 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace LuminousSales
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
int a = int.Parse(Console.ReadLine());
|
||||
Console.WriteLine(a);
|
||||
Console.WriteLine("Jazcurka");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
11
LuminousSales/Models/Configuration.cs
Normal file
11
LuminousSales/Models/Configuration.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Data
|
||||
{
|
||||
public static class Configuration
|
||||
{
|
||||
public const string ConnectionString = "Data Source=CYNTHIA-PC;Initial Catalog=LuminousSales;Integrated Security=True";
|
||||
}
|
||||
}
|
21
LuminousSales/Models/Data.csproj
Normal file
21
LuminousSales/Models/Data.csproj
Normal file
@@ -0,0 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.12" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.12">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.12" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.12" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.12">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
49
LuminousSales/Models/LuminousContext.cs
Normal file
49
LuminousSales/Models/LuminousContext.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Models.Models;
|
||||
|
||||
namespace Models
|
||||
{
|
||||
public class LuminousContext : DbContext
|
||||
{
|
||||
public LuminousContext()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public LuminousContext(DbContextOptions options) : base(options)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DbSet<User> User { get; set; }
|
||||
public DbSet<Role> Role { get; set; }
|
||||
public DbSet<Permission> Permission { get; set; }
|
||||
public DbSet<Product> Product { get; set; }
|
||||
public DbSet<Deal> Deal { get; set; }
|
||||
public DbSet<Stock> Stock { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
optionsBuilder
|
||||
.UseLazyLoadingProxies()
|
||||
.UseSqlServer(Configuration.ConnectionString);
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<User>()
|
||||
.HasIndex(user => new { user.Name, user.Password })
|
||||
.IsUnique(true);
|
||||
modelBuilder.Entity<Role>()
|
||||
.HasIndex(role => new { role.Name })
|
||||
.IsUnique(true);
|
||||
modelBuilder.Entity<Permission>()
|
||||
.HasIndex(permission => new { permission.Name })
|
||||
.IsUnique(true);
|
||||
modelBuilder.Entity<Product>()
|
||||
.HasIndex(product => new { product.Name })
|
||||
.IsUnique(true);
|
||||
}
|
||||
}
|
||||
}
|
223
LuminousSales/Models/Migrations/20210314081427_IntialMigration.Designer.cs
generated
Normal file
223
LuminousSales/Models/Migrations/20210314081427_IntialMigration.Designer.cs
generated
Normal file
@@ -0,0 +1,223 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Models;
|
||||
|
||||
namespace Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(LuminousContext))]
|
||||
[Migration("20210314081427_IntialMigration")]
|
||||
partial class IntialMigration
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "3.1.12")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128)
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
modelBuilder.Entity("Models.Models.Deal", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<byte[]>("Time")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("rowversion");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("Deal");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Permission", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<int?>("RoleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.ToTable("Permission");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Product", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<double>("AmountInStock")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<int?>("DealId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<double>("Price")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<int?>("StockId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("DealId");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("StockId");
|
||||
|
||||
b.ToTable("Product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Role", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Role");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Stock", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<byte[]>("Time")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("rowversion");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("Stock");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.User", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<int>("RoleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.HasIndex("Name", "Password")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("User");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Deal", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.User", "User")
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Permission", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Role", null)
|
||||
.WithMany("Permissions")
|
||||
.HasForeignKey("RoleId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Product", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Deal", null)
|
||||
.WithMany("Products")
|
||||
.HasForeignKey("DealId");
|
||||
|
||||
b.HasOne("Models.Models.Stock", null)
|
||||
.WithMany("Products")
|
||||
.HasForeignKey("StockId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Stock", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.User", "User")
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.User", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Role", "Role")
|
||||
.WithMany()
|
||||
.HasForeignKey("RoleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace Data.Migrations
|
||||
{
|
||||
public partial class IntialMigration : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Role",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Role", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Permission",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(nullable: false),
|
||||
RoleId = table.Column<int>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Permission", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Permission_Role_RoleId",
|
||||
column: x => x.RoleId,
|
||||
principalTable: "Role",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "User",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(nullable: false),
|
||||
Password = table.Column<string>(nullable: false),
|
||||
RoleId = table.Column<int>(nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_User", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_User_Role_RoleId",
|
||||
column: x => x.RoleId,
|
||||
principalTable: "Role",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Deal",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
UserId = table.Column<int>(nullable: false),
|
||||
Time = table.Column<byte[]>(rowVersion: true, nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Deal", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Deal_User_UserId",
|
||||
column: x => x.UserId,
|
||||
principalTable: "User",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Stock",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
UserId = table.Column<int>(nullable: false),
|
||||
Time = table.Column<byte[]>(rowVersion: true, nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Stock", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Stock_User_UserId",
|
||||
column: x => x.UserId,
|
||||
principalTable: "User",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Product",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(nullable: false),
|
||||
Price = table.Column<double>(nullable: false),
|
||||
AmountInStock = table.Column<double>(nullable: false),
|
||||
DealId = table.Column<int>(nullable: true),
|
||||
StockId = table.Column<int>(nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Product", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Product_Deal_DealId",
|
||||
column: x => x.DealId,
|
||||
principalTable: "Deal",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
table.ForeignKey(
|
||||
name: "FK_Product_Stock_StockId",
|
||||
column: x => x.StockId,
|
||||
principalTable: "Stock",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Deal_UserId",
|
||||
table: "Deal",
|
||||
column: "UserId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Permission_Name",
|
||||
table: "Permission",
|
||||
column: "Name",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Permission_RoleId",
|
||||
table: "Permission",
|
||||
column: "RoleId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Product_DealId",
|
||||
table: "Product",
|
||||
column: "DealId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Product_Name",
|
||||
table: "Product",
|
||||
column: "Name",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Product_StockId",
|
||||
table: "Product",
|
||||
column: "StockId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Role_Name",
|
||||
table: "Role",
|
||||
column: "Name",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Stock_UserId",
|
||||
table: "Stock",
|
||||
column: "UserId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_User_RoleId",
|
||||
table: "User",
|
||||
column: "RoleId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_User_Name_Password",
|
||||
table: "User",
|
||||
columns: new[] { "Name", "Password" },
|
||||
unique: true);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "Permission");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Product");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Deal");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Stock");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "User");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Role");
|
||||
}
|
||||
}
|
||||
}
|
221
LuminousSales/Models/Migrations/LuminousContextModelSnapshot.cs
Normal file
221
LuminousSales/Models/Migrations/LuminousContextModelSnapshot.cs
Normal file
@@ -0,0 +1,221 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Models;
|
||||
|
||||
namespace Data.Migrations
|
||||
{
|
||||
[DbContext(typeof(LuminousContext))]
|
||||
partial class LuminousContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "3.1.12")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128)
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
modelBuilder.Entity("Models.Models.Deal", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<byte[]>("Time")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("rowversion");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("Deal");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Permission", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<int?>("RoleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.ToTable("Permission");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Product", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<double>("AmountInStock")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<int?>("DealId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<double>("Price")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<int?>("StockId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("DealId");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("StockId");
|
||||
|
||||
b.ToTable("Product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Role", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Role");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Stock", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<byte[]>("Time")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("rowversion");
|
||||
|
||||
b.Property<int>("UserId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("Stock");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.User", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(450)");
|
||||
|
||||
b.Property<int>("RoleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("RoleId");
|
||||
|
||||
b.HasIndex("Name", "Password")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("User");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Deal", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.User", "User")
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Permission", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Role", null)
|
||||
.WithMany("Permissions")
|
||||
.HasForeignKey("RoleId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Product", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Deal", null)
|
||||
.WithMany("Products")
|
||||
.HasForeignKey("DealId");
|
||||
|
||||
b.HasOne("Models.Models.Stock", null)
|
||||
.WithMany("Products")
|
||||
.HasForeignKey("StockId");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.Stock", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.User", "User")
|
||||
.WithMany()
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Models.Models.User", b =>
|
||||
{
|
||||
b.HasOne("Models.Models.Role", "Role")
|
||||
.WithMany()
|
||||
.HasForeignKey("RoleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
30
LuminousSales/Models/Models/Base/BaseSales.cs
Normal file
30
LuminousSales/Models/Models/Base/BaseSales.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Models.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace Data.Base
|
||||
{
|
||||
public abstract class BaseSales
|
||||
{
|
||||
protected BaseSales()
|
||||
{
|
||||
|
||||
}
|
||||
protected BaseSales(User User, ICollection<Product> Products)
|
||||
{
|
||||
this.User = User;
|
||||
this.Products = Products;
|
||||
}
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
[Required]
|
||||
public virtual User User { get; set; }
|
||||
[Required]
|
||||
public virtual ICollection<Product> Products { get; set; }
|
||||
[Timestamp]
|
||||
[Required]
|
||||
public byte[] Time { get; set; }
|
||||
}
|
||||
}
|
20
LuminousSales/Models/Models/Base/BaseUserManagmentEntity.cs
Normal file
20
LuminousSales/Models/Models/Base/BaseUserManagmentEntity.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace Data.Base
|
||||
{
|
||||
public abstract class BaseUserManagmentEntity
|
||||
{
|
||||
public BaseUserManagmentEntity(){}
|
||||
protected BaseUserManagmentEntity(string Name)
|
||||
{
|
||||
this.Name = Name;
|
||||
}
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
[Required]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
13
LuminousSales/Models/Models/Deal.cs
Normal file
13
LuminousSales/Models/Models/Deal.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Data.Base;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class Deal : BaseSales
|
||||
{
|
||||
public Deal() : base(){}
|
||||
public Deal(User User, ICollection<Product> Products) : base(User, Products){}
|
||||
}
|
||||
}
|
12
LuminousSales/Models/Models/Permission.cs
Normal file
12
LuminousSales/Models/Models/Permission.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Data.Base;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class Permission : BaseUserManagmentEntity
|
||||
{
|
||||
public Permission() : base(){}
|
||||
public Permission(string Name) : base(Name){}
|
||||
}
|
||||
}
|
30
LuminousSales/Models/Models/Product.cs
Normal file
30
LuminousSales/Models/Models/Product.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
public Product(){}
|
||||
public Product(string Name, double Price)
|
||||
{
|
||||
this.Name = Name;
|
||||
this.Price = Price;
|
||||
this.AmountInStock = 0;
|
||||
}
|
||||
public Product(string Name, double Price, double AmountInStock)
|
||||
{
|
||||
this.Name = Name;
|
||||
this.Price = Price;
|
||||
this.AmountInStock = AmountInStock;
|
||||
}
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
[Required]
|
||||
public string Name { get; set; }
|
||||
[Required]
|
||||
public double Price { get; set; }
|
||||
[Required]
|
||||
public double AmountInStock { get; set; }
|
||||
}
|
||||
}
|
17
LuminousSales/Models/Models/Role.cs
Normal file
17
LuminousSales/Models/Models/Role.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using Data.Base;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class Role : BaseUserManagmentEntity
|
||||
{
|
||||
public Role() : base(){}
|
||||
public Role(string Name, ICollection<Permission> Permissions) : base(Name)
|
||||
{
|
||||
this.Permissions = Permissions;
|
||||
}
|
||||
[Required]
|
||||
public virtual ICollection<Permission> Permissions { get; set; }
|
||||
}
|
||||
}
|
14
LuminousSales/Models/Models/Stock.cs
Normal file
14
LuminousSales/Models/Models/Stock.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Data.Base;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class Stock : BaseSales
|
||||
{
|
||||
public Stock() : base(){}
|
||||
public Stock(User User, ICollection<Product> Products) : base(User, Products){}
|
||||
}
|
||||
}
|
22
LuminousSales/Models/Models/User.cs
Normal file
22
LuminousSales/Models/Models/User.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Data.Base;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace Models.Models
|
||||
{
|
||||
public class User : BaseUserManagmentEntity
|
||||
{
|
||||
public User() : base() { }
|
||||
public User(string Name, string Password, Role Role) : base(Name)
|
||||
{
|
||||
this.Password = Password;
|
||||
this.Role = Role;
|
||||
}
|
||||
[Required]
|
||||
public string Password { get; set; }
|
||||
[Required]
|
||||
public virtual Role Role { get; set; }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user