Add project files.

This commit is contained in:
Suphonchai Phoonsawat 2023-06-05 20:22:51 +07:00
parent cc6b248537
commit 717b0f0a8e
31 changed files with 1296 additions and 0 deletions

View file

@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
<PackageReference Include="Oracle.EntityFrameworkCore" Version="7.21.9" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BMA.EHR.Application\BMA.EHR.Application.csproj" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,23 @@
using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace BMA.EHR.Infrastructure
{
public static class InfrastructureServiceRegistration
{
public static IServiceCollection AddPersistence(this IServiceCollection services,
IConfiguration configuration)
{
services.AddDbContext<ApplicationDBContext>(options =>
options.UseOracle(configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly(typeof(ApplicationDBContext).Assembly.FullName)), ServiceLifetime.Transient);
services.AddScoped<IApplicationDBContext>(provider => provider.GetService<ApplicationDBContext>());
return services;
}
}
}

View file

@ -0,0 +1,142 @@
// <auto-generated />
using System;
using BMA.EHR.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
[DbContext(typeof(ApplicationDBContext))]
[Migration("20230605123842_Initial Database")]
partial class InitialDatabase
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.BloodGroupEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActivable")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(2)
.HasColumnType("NVARCHAR2(2)")
.HasColumnOrder(1)
.HasComment("ชื่อหมู่โลหิต");
b.HasKey("Id");
b.ToTable("BloodGroups");
});
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.PrefixEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActivable")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("NVARCHAR2(100)")
.HasColumnOrder(1)
.HasComment("รายละเอียดคำนำหน้า");
b.HasKey("Id");
b.ToTable("Prefixes");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,63 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class InitialDatabase : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "BloodGroups",
columns: table => new
{
Id = table.Column<Guid>(type: "RAW(16)", nullable: false, comment: "คีย์หลัก"),
Name = table.Column<string>(type: "NVARCHAR2(2)", maxLength: 2, nullable: false, comment: "ชื่อหมู่โลหิต"),
IsActivable = table.Column<bool>(type: "NUMBER(1)", nullable: false, comment: "สถานะการใช้งาน"),
CreatedUserId = table.Column<Guid>(type: "RAW(16)", nullable: false, comment: "User Id ที่สร้างข้อมูล"),
CreatedUserFullName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล"),
CreatedDate = table.Column<DateTime>(type: "TIMESTAMP(7)", nullable: false, comment: "สร้างข้อมูลเมื่อ"),
ModifiedUserId = table.Column<Guid>(type: "RAW(16)", nullable: true, comment: "User Id ที่แก้ไขข้อมูล"),
ModifiedUserFullName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true, comment: "ชื่อ User ที่แก้ไจข้อมูล"),
ModifiedDate = table.Column<DateTime>(type: "TIMESTAMP(7)", nullable: true, comment: "แก้ไขข้อมูลเมื่อ")
},
constraints: table =>
{
table.PrimaryKey("PK_BloodGroups", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Prefixes",
columns: table => new
{
Id = table.Column<Guid>(type: "RAW(16)", nullable: false, comment: "คีย์หลัก"),
Name = table.Column<string>(type: "NVARCHAR2(100)", maxLength: 100, nullable: false, comment: "รายละเอียดคำนำหน้า"),
IsActivable = table.Column<bool>(type: "NUMBER(1)", nullable: false, comment: "สถานะการใช้งาน"),
CreatedUserId = table.Column<Guid>(type: "RAW(16)", nullable: false, comment: "User Id ที่สร้างข้อมูล"),
CreatedUserFullName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล"),
CreatedDate = table.Column<DateTime>(type: "TIMESTAMP(7)", nullable: false, comment: "สร้างข้อมูลเมื่อ"),
ModifiedUserId = table.Column<Guid>(type: "RAW(16)", nullable: true, comment: "User Id ที่แก้ไขข้อมูล"),
ModifiedUserFullName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true, comment: "ชื่อ User ที่แก้ไจข้อมูล"),
ModifiedDate = table.Column<DateTime>(type: "TIMESTAMP(7)", nullable: true, comment: "แก้ไขข้อมูลเมื่อ")
},
constraints: table =>
{
table.PrimaryKey("PK_Prefixes", x => x.Id);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "BloodGroups");
migrationBuilder.DropTable(
name: "Prefixes");
}
}
}

View file

@ -0,0 +1,142 @@
// <auto-generated />
using System;
using BMA.EHR.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
[DbContext(typeof(ApplicationDBContext))]
[Migration("20230605131808_Change Field Name")]
partial class ChangeFieldName
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.BloodGroupEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(2)
.HasColumnType("NVARCHAR2(2)")
.HasColumnOrder(1)
.HasComment("ชื่อหมู่โลหิต");
b.HasKey("Id");
b.ToTable("BloodGroups");
});
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.PrefixEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("NVARCHAR2(100)")
.HasColumnOrder(1)
.HasComment("รายละเอียดคำนำหน้า");
b.HasKey("Id");
b.ToTable("Prefixes");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,38 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class ChangeFieldName : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "IsActivable",
table: "Prefixes",
newName: "IsActive");
migrationBuilder.RenameColumn(
name: "IsActivable",
table: "BloodGroups",
newName: "IsActive");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "IsActive",
table: "Prefixes",
newName: "IsActivable");
migrationBuilder.RenameColumn(
name: "IsActive",
table: "BloodGroups",
newName: "IsActivable");
}
}
}

View file

@ -0,0 +1,139 @@
// <auto-generated />
using System;
using BMA.EHR.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
[DbContext(typeof(ApplicationDBContext))]
partial class ApplicationDBContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.BloodGroupEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(2)
.HasColumnType("NVARCHAR2(2)")
.HasColumnOrder(1)
.HasComment("ชื่อหมู่โลหิต");
b.HasKey("Id");
b.ToTable("BloodGroups");
});
modelBuilder.Entity("BMA.EHR.Domain.Entities.MetaData.PrefixEntity", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("RAW(16)")
.HasColumnOrder(0)
.HasComment("คีย์หลัก");
b.Property<DateTime>("CreatedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(993)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedUserFullName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(992)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<Guid>("CreatedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(991)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("NUMBER(1)")
.HasColumnOrder(990)
.HasComment("สถานะการใช้งาน");
b.Property<DateTime?>("ModifiedDate")
.HasColumnType("TIMESTAMP(7)")
.HasColumnOrder(996)
.HasComment("แก้ไขข้อมูลเมื่อ");
b.Property<string>("ModifiedUserFullName")
.HasColumnType("NVARCHAR2(2000)")
.HasColumnOrder(995)
.HasComment("ชื่อ User ที่แก้ไจข้อมูล");
b.Property<Guid?>("ModifiedUserId")
.HasColumnType("RAW(16)")
.HasColumnOrder(994)
.HasComment("User Id ที่แก้ไขข้อมูล");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("NVARCHAR2(100)")
.HasColumnOrder(1)
.HasComment("รายละเอียดคำนำหน้า");
b.HasKey("Id");
b.ToTable("Prefixes");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,22 @@
using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Domain.Entities.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Infrastructure.Persistence
{
public class ApplicationDBContext : DbContext, IApplicationDBContext
{
public ApplicationDBContext(DbContextOptions<ApplicationDBContext> options)
: base(options)
{
}
public DbSet<PrefixEntity> Prefixes { get; set; }
public DbSet<BloodGroupEntity> BloodGroups { get; set; }
public Task<int> SaveChangesAsync()
{
return base.SaveChangesAsync();
}
}
}