From 28fbc4598e3894b6836765788ab62af37cfc8d51 Mon Sep 17 00:00:00 2001 From: littlefoot Date: Thu, 28 Oct 2021 17:03:15 -0400 Subject: [PATCH] DB added and more --- .../Controllers/GameConfigController.cs | 2 +- .../Controllers/PlayerDataController.cs | 28 +++++- .../{Models => DTO}/GameConfigResponse.cs | 15 +-- .../{Models => DTO}/IMethodBasedRequest.cs | 2 +- .../PlayerDataRequestObjects.cs | 2 +- .../PlayerDataResponseObjects.cs | 31 ++++-- TOOHUCardAPI/Data/AppDbContext.cs | 19 ++++ TOOHUCardAPI/Data/AutomapProfile.cs | 15 +++ TOOHUCardAPI/Data/Models/EncodedCardGroup.cs | 12 +++ TOOHUCardAPI/Data/Models/User.cs | 22 +++++ .../Data/Repositories/UserRepository.cs | 58 +++++++++++ .../20211028202203_initial.Designer.cs | 91 ++++++++++++++++++ .../Migrations/20211028202203_initial.cs | 65 +++++++++++++ .../Migrations/AppDbContextModelSnapshot.cs | 89 +++++++++++++++++ TOOHUCardAPI/Startup.cs | 9 ++ TOOHUCardAPI/TOOHUCardAPI.csproj | 11 +++ TOOHUCardAPI/appsettings.json | 3 + TOOHUCardAPI/test.db | Bin 0 -> 32768 bytes TOOHUCardAPI/test.db-shm | Bin 0 -> 32768 bytes TOOHUCardAPI/test.db-wal | Bin 0 -> 4152 bytes 20 files changed, 453 insertions(+), 21 deletions(-) rename TOOHUCardAPI/{Models => DTO}/GameConfigResponse.cs (72%) rename TOOHUCardAPI/{Models => DTO}/IMethodBasedRequest.cs (86%) rename TOOHUCardAPI/{Models => DTO}/PlayerDataRequestObjects.cs (85%) rename TOOHUCardAPI/{Models => DTO}/PlayerDataResponseObjects.cs (53%) create mode 100644 TOOHUCardAPI/Data/AppDbContext.cs create mode 100644 TOOHUCardAPI/Data/AutomapProfile.cs create mode 100644 TOOHUCardAPI/Data/Models/EncodedCardGroup.cs create mode 100644 TOOHUCardAPI/Data/Models/User.cs create mode 100644 TOOHUCardAPI/Data/Repositories/UserRepository.cs create mode 100644 TOOHUCardAPI/Migrations/20211028202203_initial.Designer.cs create mode 100644 TOOHUCardAPI/Migrations/20211028202203_initial.cs create mode 100644 TOOHUCardAPI/Migrations/AppDbContextModelSnapshot.cs create mode 100644 TOOHUCardAPI/test.db create mode 100644 TOOHUCardAPI/test.db-shm create mode 100644 TOOHUCardAPI/test.db-wal diff --git a/TOOHUCardAPI/Controllers/GameConfigController.cs b/TOOHUCardAPI/Controllers/GameConfigController.cs index eda6a8b..9561500 100644 --- a/TOOHUCardAPI/Controllers/GameConfigController.cs +++ b/TOOHUCardAPI/Controllers/GameConfigController.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using TOOHUCardAPI.Models; +using TOOHUCardAPI.DTO; namespace TOOHUCardAPI.Controllers { diff --git a/TOOHUCardAPI/Controllers/PlayerDataController.cs b/TOOHUCardAPI/Controllers/PlayerDataController.cs index 841ec32..006b9dc 100644 --- a/TOOHUCardAPI/Controllers/PlayerDataController.cs +++ b/TOOHUCardAPI/Controllers/PlayerDataController.cs @@ -5,12 +5,16 @@ using System.Linq; using System.Net.Http; using System.Reflection; using System.Threading.Tasks; +using AutoMapper; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TOOHUCardAPI.Data; -using TOOHUCardAPI.Models; +using TOOHUCardAPI.Data.Models; +using TOOHUCardAPI.Data.Repositories; +using TOOHUCardAPI.DTO; namespace TOOHUCardAPI.Controllers { @@ -18,6 +22,17 @@ namespace TOOHUCardAPI.Controllers [ApiController] public class PlayerDataController : MethodBasedController { + private readonly ILogger _logger; + private readonly UserRepository _userRepository; + private readonly IMapper _mapper; + + public PlayerDataController(ILogger logger, UserRepository userRepository, IMapper mapper) + { + _logger = logger; + _userRepository = userRepository; + _mapper = mapper; + } + /** * The game uses a single endpoint for player data. * The object they send has a method field that's used to decide what's being done @@ -33,10 +48,17 @@ namespace TOOHUCardAPI.Controllers } [EndpointHandler("get")] - private async Task GetDummy(string body) + private async Task Get(string body) { PlayerDataGetRequestObject requestObject = JsonConvert.DeserializeObject(body); - PlayerDataGetResponseObject response = new PlayerDataGetResponseObject(requestObject.Ids.Keys.Count); + Dictionary users = requestObject.Ids.Aggregate(new Dictionary(), + (dictionary, pair) => + { + User user = _userRepository.GetOrCreateUser(pair.Value); + dictionary[pair.Key] = user; + return dictionary; + }); + PlayerDataGetResponseObject response = new PlayerDataGetResponseObject(users, _mapper); return response; } diff --git a/TOOHUCardAPI/Models/GameConfigResponse.cs b/TOOHUCardAPI/DTO/GameConfigResponse.cs similarity index 72% rename from TOOHUCardAPI/Models/GameConfigResponse.cs rename to TOOHUCardAPI/DTO/GameConfigResponse.cs index 489ab99..1197dcc 100644 --- a/TOOHUCardAPI/Models/GameConfigResponse.cs +++ b/TOOHUCardAPI/DTO/GameConfigResponse.cs @@ -2,15 +2,15 @@ using System; using System.Text.Json.Serialization; using Newtonsoft.Json; -namespace TOOHUCardAPI.Models +namespace TOOHUCardAPI.DTO { /** * GameRules.GameData.code = data.code // "0000" for success GameRules.GameData.msg = data.msg // error message if any - GameRules.GameData.game_code = data.game_code or "" - GameRules.GameData.game_msg = data.game_msg or "" - GameRules.GameData.luck_card = data.luck_card or "" - GameRules.GameData.luck_crit = data.luck_crit or 0 + GameRules.GameData.game_code = data.game_code or "" // Possibly some incrementing value for the room num + GameRules.GameData.game_msg = data.game_msg or "" // message shown on startup + GameRules.GameData.luck_card = data.luck_card or "" // card that luck_crit applies to or "all" + GameRules.GameData.luck_crit = data.luck_crit or 0 // above GameRules.GameData.new_card_list = data.new_card_list or "" GameRules.GameData.open_day_list = data.open_day_list or "" GameRules.GameData.is_open_day = data.is_open_day or 0 @@ -19,14 +19,15 @@ namespace TOOHUCardAPI.Models public class GameConfigResponse { private static string SUCCESS_CODE = "0000"; + private static string DEFAULT_GAME_MESSAGE = "Welcome to english Touhou Card"; [JsonProperty("code")] public string Code { get; set; } = SUCCESS_CODE; [JsonProperty("msg")] public string Message { get; set; } = string.Empty; [JsonProperty("game_code")] public string GameCode { get; set; } = string.Empty; - [JsonProperty("game_msg")] public string GameMessage { get; set; } = string.Empty; + [JsonProperty("game_msg")] public string GameMessage { get; set; } = DEFAULT_GAME_MESSAGE; [JsonProperty("luck_card")] public string LuckCard { get; set; } = string.Empty; [JsonProperty("luck_crit")] public float LuckCrit { get; set; } [JsonProperty("new_card_list")] public string NewCardList { get; set; } = string.Empty; - [JsonProperty("open_day_list")] public string OpenDayList { get; set; } = String.Empty; + [JsonProperty("open_day_list")] public string OpenDayList { get; set; } = string.Empty; [JsonProperty("is_open_day")] public int IsOpenDay { get; set; } [JsonProperty("server_time")] public string ServerTime { get; set; } = string.Empty; diff --git a/TOOHUCardAPI/Models/IMethodBasedRequest.cs b/TOOHUCardAPI/DTO/IMethodBasedRequest.cs similarity index 86% rename from TOOHUCardAPI/Models/IMethodBasedRequest.cs rename to TOOHUCardAPI/DTO/IMethodBasedRequest.cs index 1ec22f5..aecebad 100644 --- a/TOOHUCardAPI/Models/IMethodBasedRequest.cs +++ b/TOOHUCardAPI/DTO/IMethodBasedRequest.cs @@ -1,7 +1,7 @@ using System.Text.Json.Serialization; using Newtonsoft.Json; -namespace TOOHUCardAPI.Models +namespace TOOHUCardAPI.DTO { public interface IMethodBasedRequest { diff --git a/TOOHUCardAPI/Models/PlayerDataRequestObjects.cs b/TOOHUCardAPI/DTO/PlayerDataRequestObjects.cs similarity index 85% rename from TOOHUCardAPI/Models/PlayerDataRequestObjects.cs rename to TOOHUCardAPI/DTO/PlayerDataRequestObjects.cs index 0140308..a4897ff 100644 --- a/TOOHUCardAPI/Models/PlayerDataRequestObjects.cs +++ b/TOOHUCardAPI/DTO/PlayerDataRequestObjects.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace TOOHUCardAPI.Models +namespace TOOHUCardAPI.DTO { public class PlayerDataGetRequestObject { diff --git a/TOOHUCardAPI/Models/PlayerDataResponseObjects.cs b/TOOHUCardAPI/DTO/PlayerDataResponseObjects.cs similarity index 53% rename from TOOHUCardAPI/Models/PlayerDataResponseObjects.cs rename to TOOHUCardAPI/DTO/PlayerDataResponseObjects.cs index 3a85732..eac53ed 100644 --- a/TOOHUCardAPI/Models/PlayerDataResponseObjects.cs +++ b/TOOHUCardAPI/DTO/PlayerDataResponseObjects.cs @@ -1,20 +1,35 @@ using System.Collections.Generic; using System.Linq; +using AutoMapper; using Newtonsoft.Json; +using TOOHUCardAPI.Data.Models; -namespace TOOHUCardAPI.Models +namespace TOOHUCardAPI.DTO { public class PlayerDataGetResponseObject { - public Dictionary bo { get; set; } + [JsonProperty("bo")] + public Dictionary Players { get; set; } - public PlayerDataGetResponseObject(int players) + public PlayerDataGetResponseObject(Dictionary users, IMapper mapper) { - this.bo = new Dictionary(); - foreach (int i in Enumerable.Range(0, players)) - { - bo[i] = new PlayerDataGetResponseObjectPlayer(); - } + this.Players = users.Aggregate(new Dictionary(), + (players, pair) => + { + User user = pair.Value; + players[pair.Key] = new PlayerDataGetResponseObjectPlayer() + { + EndTime = user.EndTime.ToShortDateString(), + KeyTotal = user.KeyTotal, + KeySaveDate = user.KeySaveDate.ToShortDateString(), + LevelList = user.LevelList, + MaxTeamWave = user.MaxTeamWave, + MaxWave = user.MaxWave, + PetLevel = user.PetLevel, + Point = user.Point + }; + return players; + }); } } /** diff --git a/TOOHUCardAPI/Data/AppDbContext.cs b/TOOHUCardAPI/Data/AppDbContext.cs new file mode 100644 index 0000000..fe617e8 --- /dev/null +++ b/TOOHUCardAPI/Data/AppDbContext.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore; +using TOOHUCardAPI.Data.Models; + +namespace TOOHUCardAPI.Data +{ + public class AppDbContext : DbContext + { + public DbSet Users { get; set; } + + public AppDbContext(DbContextOptions options) : base(options) + { + } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + base.OnConfiguring(optionsBuilder); + } + } +} \ No newline at end of file diff --git a/TOOHUCardAPI/Data/AutomapProfile.cs b/TOOHUCardAPI/Data/AutomapProfile.cs new file mode 100644 index 0000000..33df9e7 --- /dev/null +++ b/TOOHUCardAPI/Data/AutomapProfile.cs @@ -0,0 +1,15 @@ +using AutoMapper; +using TOOHUCardAPI.Data.Models; +using TOOHUCardAPI.DTO; + +namespace TOOHUCardAPI.Data +{ + public class AutomapProfile : Profile + { + public AutomapProfile() + { + CreateMap(); + CreateMap(); + } + } +} \ No newline at end of file diff --git a/TOOHUCardAPI/Data/Models/EncodedCardGroup.cs b/TOOHUCardAPI/Data/Models/EncodedCardGroup.cs new file mode 100644 index 0000000..ebe2a43 --- /dev/null +++ b/TOOHUCardAPI/Data/Models/EncodedCardGroup.cs @@ -0,0 +1,12 @@ +using System.ComponentModel.DataAnnotations; + +namespace TOOHUCardAPI.Data.Models +{ + public class EncodedCardGroup + { + [Key] + public int Id { get; set; } + public int CardGroupNumber { get; set; } + public string EncodedString { get; set; } + } +} \ No newline at end of file diff --git a/TOOHUCardAPI/Data/Models/User.cs b/TOOHUCardAPI/Data/Models/User.cs new file mode 100644 index 0000000..a850294 --- /dev/null +++ b/TOOHUCardAPI/Data/Models/User.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace TOOHUCardAPI.Data.Models +{ + public class User + { + [Key] + public string SteamId { get; set; } + public int MaxWave { get; set; } + public int MaxTeamWave { get; set; } + public int PetLevel { get; set; } + public DateTime EndTime { get; set; } + public int KeyTotal { get; set; } + public DateTime KeySaveDate { get; set; } + public bool Vip { get; set; } + public int Point { get; set; } + public string LevelList { get; set; } + public List EncodedCardGroups { get; set; } + } +} \ No newline at end of file diff --git a/TOOHUCardAPI/Data/Repositories/UserRepository.cs b/TOOHUCardAPI/Data/Repositories/UserRepository.cs new file mode 100644 index 0000000..b8c77b2 --- /dev/null +++ b/TOOHUCardAPI/Data/Repositories/UserRepository.cs @@ -0,0 +1,58 @@ +using System; +using System.Linq; +using AutoMapper; +using TOOHUCardAPI.Data.Models; + +namespace TOOHUCardAPI.Data.Repositories +{ + public class UserRepository + { + private readonly AppDbContext _appDbContext; + private readonly IMapper _mapper; + + public UserRepository(AppDbContext appDbContext, IMapper mapper) + { + _appDbContext = appDbContext; + _mapper = mapper; + } + + public User GetUser(string steamId) + { + return _appDbContext.Users.Where((user => user.SteamId.Equals(steamId))).FirstOrDefault(); + } + + public User CreateUser(string steamId) + { + User user = new User() + { + SteamId = steamId, + Vip = true, + EndTime = DateTime.MaxValue, + LevelList = string.Empty, + PetLevel = 1 + }; + _appDbContext.Users.Add(user); + _appDbContext.SaveChanges(); + return user; + } + + public User UpdateUser(User user) + { + var trackedUser = _appDbContext.Users.FirstOrDefault(u => u.SteamId == user.SteamId); + if (trackedUser == default) + { + return trackedUser; + } + + _appDbContext.Update(user); + _appDbContext.SaveChanges(); + return user; + } + + public User GetOrCreateUser(string steamId) + { + User user = GetUser(steamId) ?? CreateUser(steamId); + return user; + } + } +} \ No newline at end of file diff --git a/TOOHUCardAPI/Migrations/20211028202203_initial.Designer.cs b/TOOHUCardAPI/Migrations/20211028202203_initial.Designer.cs new file mode 100644 index 0000000..6c69f3b --- /dev/null +++ b/TOOHUCardAPI/Migrations/20211028202203_initial.Designer.cs @@ -0,0 +1,91 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TOOHUCardAPI.Data; + +namespace TOOHUCardAPI.Migrations +{ + [DbContext(typeof(AppDbContext))] + [Migration("20211028202203_initial")] + partial class initial + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "5.0.11"); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.EncodedCardGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("EncodedString") + .HasColumnType("TEXT"); + + b.Property("UserSteamId") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("UserSteamId"); + + b.ToTable("EncodedCardGroup"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.User", b => + { + b.Property("SteamId") + .HasColumnType("TEXT"); + + b.Property("EndTime") + .HasColumnType("TEXT"); + + b.Property("KeySaveDate") + .HasColumnType("TEXT"); + + b.Property("KeyTotal") + .HasColumnType("INTEGER"); + + b.Property("LevelList") + .HasColumnType("TEXT"); + + b.Property("MaxTeamWave") + .HasColumnType("INTEGER"); + + b.Property("MaxWave") + .HasColumnType("INTEGER"); + + b.Property("PetLevel") + .HasColumnType("INTEGER"); + + b.Property("Point") + .HasColumnType("INTEGER"); + + b.Property("Vip") + .HasColumnType("INTEGER"); + + b.HasKey("SteamId"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.EncodedCardGroup", b => + { + b.HasOne("TOOHUCardAPI.Data.Models.User", null) + .WithMany("EncodedCardGroups") + .HasForeignKey("UserSteamId"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.User", b => + { + b.Navigation("EncodedCardGroups"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/TOOHUCardAPI/Migrations/20211028202203_initial.cs b/TOOHUCardAPI/Migrations/20211028202203_initial.cs new file mode 100644 index 0000000..cb81b7e --- /dev/null +++ b/TOOHUCardAPI/Migrations/20211028202203_initial.cs @@ -0,0 +1,65 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace TOOHUCardAPI.Migrations +{ + public partial class initial : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Users", + columns: table => new + { + SteamId = table.Column(type: "TEXT", nullable: false), + MaxWave = table.Column(type: "INTEGER", nullable: false), + MaxTeamWave = table.Column(type: "INTEGER", nullable: false), + PetLevel = table.Column(type: "INTEGER", nullable: false), + EndTime = table.Column(type: "TEXT", nullable: false), + KeyTotal = table.Column(type: "INTEGER", nullable: false), + KeySaveDate = table.Column(type: "TEXT", nullable: false), + Vip = table.Column(type: "INTEGER", nullable: false), + Point = table.Column(type: "INTEGER", nullable: false), + LevelList = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Users", x => x.SteamId); + }); + + migrationBuilder.CreateTable( + name: "EncodedCardGroup", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + EncodedString = table.Column(type: "TEXT", nullable: true), + UserSteamId = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_EncodedCardGroup", x => x.Id); + table.ForeignKey( + name: "FK_EncodedCardGroup_Users_UserSteamId", + column: x => x.UserSteamId, + principalTable: "Users", + principalColumn: "SteamId", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "IX_EncodedCardGroup_UserSteamId", + table: "EncodedCardGroup", + column: "UserSteamId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "EncodedCardGroup"); + + migrationBuilder.DropTable( + name: "Users"); + } + } +} diff --git a/TOOHUCardAPI/Migrations/AppDbContextModelSnapshot.cs b/TOOHUCardAPI/Migrations/AppDbContextModelSnapshot.cs new file mode 100644 index 0000000..e91366b --- /dev/null +++ b/TOOHUCardAPI/Migrations/AppDbContextModelSnapshot.cs @@ -0,0 +1,89 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TOOHUCardAPI.Data; + +namespace TOOHUCardAPI.Migrations +{ + [DbContext(typeof(AppDbContext))] + partial class AppDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "5.0.11"); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.EncodedCardGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("EncodedString") + .HasColumnType("TEXT"); + + b.Property("UserSteamId") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("UserSteamId"); + + b.ToTable("EncodedCardGroup"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.User", b => + { + b.Property("SteamId") + .HasColumnType("TEXT"); + + b.Property("EndTime") + .HasColumnType("TEXT"); + + b.Property("KeySaveDate") + .HasColumnType("TEXT"); + + b.Property("KeyTotal") + .HasColumnType("INTEGER"); + + b.Property("LevelList") + .HasColumnType("TEXT"); + + b.Property("MaxTeamWave") + .HasColumnType("INTEGER"); + + b.Property("MaxWave") + .HasColumnType("INTEGER"); + + b.Property("PetLevel") + .HasColumnType("INTEGER"); + + b.Property("Point") + .HasColumnType("INTEGER"); + + b.Property("Vip") + .HasColumnType("INTEGER"); + + b.HasKey("SteamId"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.EncodedCardGroup", b => + { + b.HasOne("TOOHUCardAPI.Data.Models.User", null) + .WithMany("EncodedCardGroups") + .HasForeignKey("UserSteamId"); + }); + + modelBuilder.Entity("TOOHUCardAPI.Data.Models.User", b => + { + b.Navigation("EncodedCardGroups"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/TOOHUCardAPI/Startup.cs b/TOOHUCardAPI/Startup.cs index 34a64c7..3ffb706 100644 --- a/TOOHUCardAPI/Startup.cs +++ b/TOOHUCardAPI/Startup.cs @@ -6,11 +6,14 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; +using TOOHUCardAPI.Data; +using TOOHUCardAPI.Data.Repositories; namespace TOOHUCardAPI { @@ -27,6 +30,12 @@ namespace TOOHUCardAPI public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddNewtonsoftJson(); + services.AddDbContext(opt => + { + opt.UseSqlite(Configuration.GetConnectionString("Sqlite")); + }); + services.AddScoped(); + services.AddAutoMapper(typeof(AutomapProfile)); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo {Title = "TOOHUCardAPI", Version = "v1"}); diff --git a/TOOHUCardAPI/TOOHUCardAPI.csproj b/TOOHUCardAPI/TOOHUCardAPI.csproj index d0246d9..4f5e4af 100644 --- a/TOOHUCardAPI/TOOHUCardAPI.csproj +++ b/TOOHUCardAPI/TOOHUCardAPI.csproj @@ -6,9 +6,20 @@ + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + diff --git a/TOOHUCardAPI/appsettings.json b/TOOHUCardAPI/appsettings.json index d9d9a9b..e098544 100644 --- a/TOOHUCardAPI/appsettings.json +++ b/TOOHUCardAPI/appsettings.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "Sqlite": "Data Source=test.db" + }, "Logging": { "LogLevel": { "Default": "Information", diff --git a/TOOHUCardAPI/test.db b/TOOHUCardAPI/test.db new file mode 100644 index 0000000000000000000000000000000000000000..c3af0d8b19a245beea7c7588b9a1e90c3234fd9b GIT binary patch literal 32768 zcmeI)Pfyxl90%|glz#^Cu%z*{XFW+2)zvp>Azo$khq5isJIVO4EY9AU7$#QdC zAizB*gyXm%TO(|}DO2o4Z@nq}&5L`UgIs#!Q#|pD3&*~3v)>b6;!kEj&wQOR*(M4E zAOHafKmY;|fB*#kfx!7(I4qP?{CUo@o93yq)1dZVt7$e%M!UJuZgr0uTOG4qcTD3@ zY5Mm?N*XQdlql*N-67&%&K5~kC89ruNEXC_Cd6bd6cQE}`CZ3&cVKpo57>X)jgEQT zHSInBX4q?AFTSWy;yZT1HV(}tc4qQoe>yCrQv4Q2#5RI-=jjAPDCvJv1y;ONK zK}`0Nxkf9LrC+0L$Vy3%B|nCOVL=f1%MY$}ud^NZVd}1_TgSrnhkO&$8_yU@@0gRw!V-PEl^)<{1gULU;{%I2Bga*Xk3vjgg^ zi))56Cc?ILG`8tl%d(xZd);nVtPVTkcCN&d$*GX=OyD{9s`f4nqwBCp>?-#rg6xV; zpKtMDA)n_j6gOv$23_B@_S=SIwd~GI7P!?u8(A5+o70iU+~)W;WbdlEW9YwR#>5%U zd#&AScK4iZHpf_3eNkgcB@hzc=Eo6?Y^5QOtiFA3A7_7Y`NR*7EhrFx00bZa0SG_< z0uX=z1Rwwb2s})I$9%9bpOG@MEM->Mb4JQGEZcG{;~0TWxk|fC~ zcOjCr>Ms5J|JPjNdg7QcAP7JJ0uX=z1Rwwb2tWV=5P-n{DDWuwG&=NYLGS)Q`_VrX z2tWV=5P$##AOHafKmY;|fB*z0SOD+;Cpftn8U!E!0SG_<0uX=z1Rwwb2tdFS=zaem d_x~{+AOHafKmY;|fB*y_009U<00NUO@Ee_}$T0u_ literal 0 HcmV?d00001 diff --git a/TOOHUCardAPI/test.db-shm b/TOOHUCardAPI/test.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..c88bd57c2dba6b79ecedad1c013f8dab28aff883 GIT binary patch literal 32768 zcmeI)FA4%t5C`B{*kD;O?j_6yFCgrd?6P@_P4Ea7v%$J;5vzCs4sn{W$L;>wpSPz=@oCr1raJ7pclqUh@^|z}()rZq^T11h z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ;130+J6}S8009C72oNAZfB*pk1PBly tK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!Ct+3k=i>D!c#y literal 0 HcmV?d00001 diff --git a/TOOHUCardAPI/test.db-wal b/TOOHUCardAPI/test.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..dbd2595607a972cb4bbf2869169049a94f8fb555 GIT binary patch literal 4152 zcmXr7XKP~6eI&uaAiw|u?VCInZRh=au3UfXtbZc2z5#_;fS3a&KA*Ak;FIe|Z}I{K z8TmIe0MRHI4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVCsA>hr(tC9ow$;fMNW@=_=XlZU~ZeU?-U~FJ&2?V-^M!Lp^3P#3Orj|gY2NDAU0|Ns?T`*EG JFt7q6BLE_7C0zgj literal 0 HcmV?d00001