From af54cf837554f4b19c24e6e74c3dcab2fc45bebd Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Mon, 13 Mar 2023 15:49:19 +0100 Subject: [PATCH] Changing Dbcontext/Manager from Singleton to Scoped --- .../Controllers/ChampionsController.cs | 13 ++++--- .../Controllers/Request/PageRequest.cs | 21 +----------- .../Controllers/RuneController.cs | 8 ++--- .../Controllers/RunePageController.cs | 7 ++-- .../Controllers/SkillController.cs | 4 +-- .../Controllers/SkinController.cs | 4 +-- .../API_LoL_Project/Entities.LolDatabase.db | Bin 0 -> 4096 bytes .../Entities.LolDatabase.db-shm} | Bin 32768 -> 32768 bytes .../Entities.LolDatabase.db-wal} | Bin 135168 -> 127752 bytes .../API_LoL_Project/Mapper/ChampionMapper.cs | 3 +- .../API_LoL_Project/Mapper/RuneMapper.cs | 32 ++++++++++-------- .../API_LoL_Project/Mapper/SkinMapper.cs | 2 +- .../Sources/API_LoL_Project/Program.cs | 10 ++++-- .../appsettings.Development.json | 2 +- .../appsettings.Production.json | 6 ++-- .../Sources/API_LoL_Project/appsettings.json | 2 +- .../Sources/Business/DbData.Champions.cs | 1 + .../Sources/Business/DbData.cs | 2 +- .../Sources/Business/Extensions.cs | 2 +- .../Sources/DTO/ChampionDTO.cs | 3 +- EntityFramework_LoL/Sources/DTO/RuneDTO.cs | 1 + .../Entities/Entities.Champions.db-wal | Bin 1067112 -> 0 bytes .../Sources/Entities/LolDbContext.cs | 1 + .../Sources/Entities/Program.cs | 2 +- .../Sources/EntityMappers/ChampionMapper.cs | 2 +- .../Sources/EntityMappers/RuneMapper.cs | 22 ++++++------ .../Sources/EntityMappers/SkinMapper.cs | 1 - .../Model/Properties/launchSettings.json | 7 ++++ 28 files changed, 78 insertions(+), 80 deletions(-) create mode 100644 EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db rename EntityFramework_LoL/Sources/{Entities/Entities.Champions.db-shm => API_LoL_Project/Entities.LolDatabase.db-shm} (87%) rename EntityFramework_LoL/Sources/{Entities/Entities.Champions.db => API_LoL_Project/Entities.LolDatabase.db-wal} (88%) delete mode 100644 EntityFramework_LoL/Sources/Entities/Entities.Champions.db-wal create mode 100644 EntityFramework_LoL/Sources/Model/Properties/launchSettings.json diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/ChampionsController.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/ChampionsController.cs index 48775fc..ce3fe29 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/ChampionsController.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/ChampionsController.cs @@ -4,7 +4,6 @@ using DTO; using Microsoft.AspNetCore.Mvc; using Model; using StubLib; -using System.Text.Json; using System.Xml.Linq; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 @@ -43,9 +42,9 @@ namespace API_LoL_Project.Controllers return BadRequest("No chamions found with Id "); } _logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), request);; - var champions = await dataManager.GetItems(request.PageNumber, totalcount, request.orderingPropertyName, (request.descending == null ? false : (bool)request.descending)); - IEnumerable res = champions.Select(c => c.toDTO()); - if (res.Count() >= 0 || res == null) + var champions = await dataManager.GetItems(request.index, request.count, request.orderingPropertyName, request.descending); + IEnumerable res = champions.Select(c => c.ToDTO()); + if (res.Count() <= 0 || res == null) { _logger.LogWarning("No chamions found with Id"); return BadRequest("No chamions found with Id "); @@ -73,7 +72,7 @@ namespace API_LoL_Project.Controllers var champion = await dataManager .GetItemsByName(name, 0, await dataManager.GetNbItems()); _logger.LogInformation("Executing {Action} with name : {championName}", nameof(GetChampionsByName), name); - ChampionDTO res = champion.First().toDTO(); + ChampionDTO res = champion.First().ToDTO(); if (res == null) { _logger.LogWarning("No chamions found with {name}", name); ; @@ -96,7 +95,7 @@ namespace API_LoL_Project.Controllers { try { - var newChampion = value.toModel(); + var newChampion = value.ToModel(); await dataManager.AddItem(newChampion); return CreatedAtAction(nameof(Get), newChampion) ; } @@ -118,7 +117,7 @@ namespace API_LoL_Project.Controllers { var champion = await dataManager .GetItemsByName(name, 0, await dataManager.GetNbItems()); - await dataManager.UpdateItem(champion.First(), value.toModel()); + await dataManager.UpdateItem(champion.First(), value.ToModel()); return Ok(); } catch(Exception e) diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/Request/PageRequest.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/Request/PageRequest.cs index 1950fa3..d4b5580 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/Request/PageRequest.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/Request/PageRequest.cs @@ -2,28 +2,9 @@ { public class PageRequest { - //max leght public string? orderingPropertyName { get; set; } = null; - public bool? descending { get; set; } = false; - const int maxPageSize = 50; - public int PageNumber { get; set; } = 1; - + public bool descending { get; set; } = false; public int index { get; set; } = 1; public int count { get; set; } = 1; - - - //max lentght - private int _pageSize; - public int PageSize - { - get - { - return _pageSize; - } - set - { - _pageSize = (value > maxPageSize) ? maxPageSize : value; - } - } } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RuneController.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RuneController.cs index 7b9a2f2..f22363b 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RuneController.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RuneController.cs @@ -12,7 +12,7 @@ namespace API_LoL_Project.Controllers [ApiController] public class RuneController : ControllerBase { - public IRunesManager runesManager; + /*public IRunesManager runesManager; // you should create a custom logger to be prety private readonly ILogger _logger; @@ -26,7 +26,7 @@ namespace API_LoL_Project.Controllers - /*// GET: api/ + *//*// GET: api/ [HttpGet] public async Task> Get() { @@ -42,7 +42,7 @@ namespace API_LoL_Project.Controllers return BadRequest(e.Message); } - }*/ + }*//* // GET: api/ [HttpGet] @@ -127,6 +127,6 @@ namespace API_LoL_Project.Controllers [HttpDelete("{id}")] public void Delete(int id) { - } + }*/ } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RunePageController.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RunePageController.cs index 2d0934b..76a0d96 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RunePageController.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/RunePageController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc; +using DTO; +using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 @@ -8,7 +9,7 @@ namespace API_LoL_Project.Controllers [ApiController] public class RunePageController : ControllerBase { - // GET: api/ +/* // GET: api/ [HttpGet] public async Task>> Get([FromQuery] Request.PageRequest request) { @@ -65,6 +66,6 @@ namespace API_LoL_Project.Controllers [HttpDelete("{id}")] public void Delete(int id) { - } + }*/ } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkillController.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkillController.cs index 950897f..042bc7e 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkillController.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkillController.cs @@ -8,7 +8,7 @@ namespace API_LoL_Project.Controllers [ApiController] public class SkillController : ControllerBase { - // GET: api/ + /* // GET: api/ [HttpGet] public async Task>> Get([FromQuery] Request.PageRequest request) { @@ -65,6 +65,6 @@ namespace API_LoL_Project.Controllers [HttpDelete("{id}")] public void Delete(int id) { - } + }*/ } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkinController.cs b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkinController.cs index db11f8d..fa3ddfd 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkinController.cs +++ b/EntityFramework_LoL/Sources/API_LoL_Project/Controllers/SkinController.cs @@ -8,7 +8,7 @@ namespace API_LoL_Project.Controllers [ApiController] public class SkinController : ControllerBase { - // GET: api/ + /* // GET: api/ [HttpGet] public async Task>> Get([FromQuery] Request.PageRequest request) { @@ -65,6 +65,6 @@ namespace API_LoL_Project.Controllers [HttpDelete("{id}")] public void Delete(int id) { - } + }*/ } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db b/EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db new file mode 100644 index 0000000000000000000000000000000000000000..81dae899f351f43f4e0ef4b510c62a2f6b578c80 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYCM3;st3JAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*DxU_5 literal 0 HcmV?d00001 diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-shm b/EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db-shm similarity index 87% rename from EntityFramework_LoL/Sources/Entities/Entities.Champions.db-shm rename to EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db-shm index 927dd669d3b534d572ef7d952d8d09e65a5e92e1..fbf399190040d917ca62415bc97b9740e0ea5b4a 100644 GIT binary patch delta 368 zcmZo@U}|V!s+V}A%K!q55G)`Mq(OM^gZT@W?hO90ZqHlC2O1WKxg2Kxe$(HvgjDrF zqrd=U=6@sr6`oknJ9!0D#pWq24z`;YuuNcP6x%$JMU#<{5lCHTWE6++m>@g}2#*=U zlZ5bCAUr7uj}^j`hVa-RJQ)a&9m11^@HikmIS7vv!jp&axPa7OCPr=u#RH*uArv2k Z;)hTI5K0h22|*}f2qglcM1hnhBLHAIb3*_C literal 32768 zcmeI5XLJ=+6otPefD|L42%*V~qS&x^MKN~ly*ChhL9r{MqF}*ZP!ud!u`3op#EMw3 z3-%Iw1$!6IksO>KlC`oRGkGt2*4i)c-h1ZmeZHCZGc)B?J@BKesR+tS?4!cISCsaw z8e3U9VD$8%!zPUwGH_aD_ugYBPUv4=%X;7258roI;+Q@A-={6Jkg26vQ~1W-aem|ukLWM*4fm>w1~;CQ_fUj^8B%@o~-+ z8R`>j&*%3++@HZZ=KOkj|NqB2?%lX1ab2U&VD0O{F<6IR+#@~?j=?%=g0+uxCeIVB zqb7bEK6c)bA#2taMTZE8fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCv-> zfl?~jhcg(-?L5q{1<_O8G*M*Ff@o#Wi|AA_a)z-}DCq4eh%PT&+y=PYjJ zF7D@Xp5{4T;x*pnT|TOtNZNHC33Olswq;*N@jSoH<6eb*`f{Aj$A#TugX^xbJrQO@ zj^rAq@_U2pzBUan&pCWjn-f%9?+LVI88+f5uH_Ey<&S!wH@kqXS%JeimnnRjT?jeP zR{~AgnC;kw>$sEqn8;H+%L}~9bl%|u{+zE~`Mp^iR^)Jo@eH5kcOyzahd>$2vI*O> zD}6YaBN)K(oXlyQ$@M(Khx|3CvY~(J#7Z2?dA!W$4IM?n^uH;68O>P!E|`w$s*%pD z%yFF0D|}H`7TPyu0-LcPhj0Uvn3b|~zS(tS6$WtuZ}DZmMOWUr5a`X(+{mL$p8c5D zxm0Ny7H3sX*0-H0Cn|P5Tf5fql8VEFHHFoDB9^mU5sg>VAJjgdS)@d<+2yDsz4CNLcqw3!`Oyp1Uw3Bva4Nl||Ugz7it>q^I z8578{CMR(z)0mNQ64{GD+60POi>QPKi9m(~ z+OZycaS$UI$CLb&VG>!3K-vV_(~G?s%vFr%J$_ExUVb8wA%RBrUiY^49`!CP$`UNi S`s~crOyGTf$uL!YwEhRAcefM( diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db b/EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db-wal similarity index 88% rename from EntityFramework_LoL/Sources/Entities/Entities.Champions.db rename to EntityFramework_LoL/Sources/API_LoL_Project/Entities.LolDatabase.db-wal index 9ee7a58807821a4266b48aec554fdb10dec31bd8..ea04235c627316c1ed1f630e6db804cf8a98ba3e 100644 GIT binary patch delta 2162 zcmds(ZA?>V6vumRZ|{ZH+gqTtg+i;2_%f-sP^4s{wA8AD87$2ZFkwX*8eL)X;@d#M zE}FqI>UDV*GdAf$vkz=j*}^taVP?~)i{i@%hl<;rO!wxT%gica&%L#9w+{>Zx|{TQ zde85klXH8X^FQ5nFlO&<+LpbOYL%G2(McpK34guc|C9aZ9NS6Fh*&Tj>WK5=(*9Ie%AVNZFzw{lZe-Np^RI$??LtJnsk zK+KKj77%mDgxyIjS57<$s=hDX-~%dGMQK;fX}w+tdNm^ znUK-u247X3u*my*N+A_zB*z)0s03SuMc5RrZW@i3fdOLr4CRmslqH7JE;S12jh2C$ zjBUx1p_VnE0}35j18-9EC`!8|iGP4IGD?zeNtALH#sDN&#B7m~QE%=Rqb6l7M&KSX zGlAfY$|k&aDy=i5kxFP7yz|wWsAkZ5x_10zS=kZuRdz|1)nzl=t!7hp{!*vOYPC8{ zHm7}|$>PX%S*=-iOO`Xk>-A!HAzt)E%t9%ua>L$rNAj+*i>49-2Oz~sbanWzG&OJ7 za-`@Y>vA|VGcxk?Z6>SJVK-SFPM67%kzqDD7CQ1XbFy>tvn>`k{+(;R)m0T19ELwr z6YsO*26uRWc(75(Wh$YtFC`9;wzZ%t^_csIV66%teF-gQFMV8}xuJXTwcsv+#fX`* z``o3w^@j$79RiCLvpe@Y3xBOnsgO9KN@+HGO%lXTCOjo0wJ9^v9CPbF-LMq-XEGCf$?H^?^8{| zOwFn7A#(&Kh~c~IXJ0$MBI9HzF9OwK`07fN@15}4m=Py7NVi8kf%??U#B8EvIM#vhPgGw-2bjR zB>PZOjFxy{<^N1~mhn0vvGO0IHAtn)F3DDt?H$~v$?QlK*zQUb#sY0C^9GS@>M_IR-#yrAVQFc&|KZ`5234xvGd8=w%9P+J2$ z4~gi00~CXfzcccJpNw`kLS}Rnk%@j?0{W;C%%JYO-8eaV^a=kyqrL~(KS$BuW>pP9 zWB?`eoym9agt844IKtc^-}=aL=bM-ROyKS`w^TQ_!!X&r$zog?`%HG}#a1RX5a}|# z7%q^s4*b^sc>~rbK4yxTtr#9Y_xi1wrzYd3im`8gwOT#&b7eHHK@3AlpFy>KkL$7S W@qY=7Q8np$`{uEG#h-NZj(-7V-iv(z delta 3989 zcmds)TWl0%6vyYx&d%Ou=9^yj(qhZBXt=hSYr7i)vb5V+Dc6>p0?R68yDhY&EsBY{ z7V(lu6xhViM2%oW8Xpj_8oazfg0}}ic`#xi(U^F7FhZi?0gQgL+iiE28TH8rH#swt zZ+?5e@0&UQGv_@2gXgKE-bLMOyE3D_($1mb-KkMYqeP0Psb!KxQIt%qf!Nd!IuGyA zmdaFfver$80NpZgM9?kaRlb@3gzMzNe~t_JlKz+34}2`6u{-HauHWb;x(TkqHHsRm z4B|)oU=r)w(kmOZclD$iV94@2OtWW#G0<_^0exjk-)sX8Ddd~hQy1u>WO-i1%~gE0Ar z`!jHfY#5*246B%m1NZZ}T5o&qvbzos4M4@@LGKj+0dLy^8yK`-59H4JL%^N6w1q4J zICJ8=uzwqH48MP!57%xZ!~V%Qrvv!$U=rlIz?k9jgllSGe_}NC(5~K*fy}O5BZZ?E zf0TsR!JA773mD&6(4Bips0TLpw(uyhxIP6k;~AUn$~}M@@$v0|axb7EH^YWI=a`$q z=pl$8^LcyCr`<`j;jOLajchWR=vbLa52r>mLxUstWkyDah965Rw!^NmP2dT)w!;3^ z`SsaCwu5xrxS~EPf zWADSG8+wOF$h}6XC$XtVTD6+kda}(B&y!<>(<$^l`VbvPedt~k5`GcR3$F^pLZ=|{ zH~EYFasF|>n_s{K_ceEtdzRbE>60n(b|5=9;#v__WmS_kSy5Wl7A=ilRTfZDHPr#E zEPz=}&bw3;!-=dYb*UPL>I8}wP;W5|hq=)Vn2jl_ZWvCFQkWr4P}da)m%J6!bf*Wz z&45wzy0bCI*BG#pvLQRn?JorlLvaLs7EmW4m(1G7n%7FIYKz0%9t)@$n$sfL8BkYb zqjf6Gvvo|Bw(OWsF@e2wNH3G!U9*W)i?15fQXPw&Jh0GPb&}Dr4*vUpdE> zo!Y&*B73!0SRARgLKn*zJBgz*rl9VuHTMc-ke#ym62=s@ou;`m#!k)wlgZ}ay(&i) zdnx-Zj!5Vc6_<5xnFO+Cd@aZaugub{c@T3nCGZ7oe5%k@~3-fF~~$hS`?S8Zy0A{LEC z+tpMmHQ6U!MR)%jc=9RvGHTWnaanKIJDTKp3vt%2Mw_DTt>j9N#oCv*8M@M;uG>4< zyC;?IO)3TN|K>mAr`Cw$pKTY%zuhBFT)zzBxOi9`pLa|gUv^qFYrE5bqSDKwH^hne z0mO+fD#+od1`wlWfx>%gDRhtUjSv-p&+skWliXVWZU5)KBfhk!mOaP3$SkJcptn;= zN-vba><{?*R;b0?AaJvSPd{1Z35Ub*+=IocanLLp2S=*Uyw(jr0=uNFxV09)gTSmU zscLNt-%o+wSgdSq>fWz`o^LI1ORL{Hpp`;}%LFWyuLktOd_i01`=`qHHCmaja!YF8 zM_9vJ<1+5DB6yJfzZARD-xRxDUA%w38EOl7UnNyR4^U`=ALSbY&jdPr312Pyj`xE5 zSNCG(OQy;7itAqbJUu|ZXmOg}SdTl?Adz4yc1aS{;WyK;2pY_xm85B@>mz`Km-a!F zbW{1>Yqr^YZ7@U7?78ak$_%8SrqGDh6&kUK*@$)Fcl)3c@9T&4qzAj$58cE=x*ule zuKOZ*^8gsG1Cb#9Y5-&ipYiM>;YzoK@Sy=%9;hMO$hRv~UE6;g=`<=RIBV7nG`dNl z+vHH_WoMJKX?4Wvr_Sc}EMgKdb1X=#y5wx~5n^FtW(options => + options.UseSqlite(connectionString), ServiceLifetime.Singleton); builder.Services.AddControllers(); -// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(); +//builder.Services.AddSingleton(); + var app = builder.Build(); +app?.Services?.GetService()?.Database.EnsureCreated(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Development.json b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Development.json index ddbc6bd..c64007f 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Development.json +++ b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Development.json @@ -6,6 +6,6 @@ } }, "ConnectionStrings": { - "LolDatabase": "Data Source=Entities.Champions.db" + "LolDatabase": "Data Source=Entities.LolDatabase.db" } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Production.json b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Production.json index 21fc35e..c64007f 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Production.json +++ b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.Production.json @@ -3,9 +3,9 @@ "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" - }, - "ConnectionStrings": { - "LolDatabase": "Data Source=Entities.Champions.db" } + }, + "ConnectionStrings": { + "LolDatabase": "Data Source=Entities.LolDatabase.db" } } diff --git a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.json b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.json index 5db0727..064a744 100644 --- a/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.json +++ b/EntityFramework_LoL/Sources/API_LoL_Project/appsettings.json @@ -6,7 +6,7 @@ } }, "ConnectionStrings": { - "LolDatabase": "Data Source=Entities.Champions.db" + "LolDatabase": "Data Source=Entities.LolDatabase.db" }, "AllowedHosts": "*" } diff --git a/EntityFramework_LoL/Sources/Business/DbData.Champions.cs b/EntityFramework_LoL/Sources/Business/DbData.Champions.cs index a2002f4..c768c6c 100644 --- a/EntityFramework_LoL/Sources/Business/DbData.Champions.cs +++ b/EntityFramework_LoL/Sources/Business/DbData.Champions.cs @@ -27,6 +27,7 @@ namespace Business public async Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) { + Console.WriteLine("GET"); return parent.DbContext.champions.GetItemsWithFilterAndOrdering( c => true, index, count, diff --git a/EntityFramework_LoL/Sources/Business/DbData.cs b/EntityFramework_LoL/Sources/Business/DbData.cs index 99c30e9..f983819 100644 --- a/EntityFramework_LoL/Sources/Business/DbData.cs +++ b/EntityFramework_LoL/Sources/Business/DbData.cs @@ -6,7 +6,6 @@ namespace Business { public partial class DbData : IDataManager { - public DbData(LolDbContext dbContext) { DbContext = dbContext; @@ -15,6 +14,7 @@ namespace Business RunesMgr = new RunesManager(this); RunePagesMgr = new RunePagesManager(this); } + protected LolDbContext DbContext{ get; } public IChampionsManager ChampionsMgr { get; } diff --git a/EntityFramework_LoL/Sources/Business/Extensions.cs b/EntityFramework_LoL/Sources/Business/Extensions.cs index 9f99257..ac81eaa 100644 --- a/EntityFramework_LoL/Sources/Business/Extensions.cs +++ b/EntityFramework_LoL/Sources/Business/Extensions.cs @@ -22,7 +22,7 @@ namespace Business : temp.OrderBy(item => prop.GetValue(item)); } } - return temp.Skip(index * count).Take(count) + return temp.Skip(index * count).Take(count); } } } diff --git a/EntityFramework_LoL/Sources/DTO/ChampionDTO.cs b/EntityFramework_LoL/Sources/DTO/ChampionDTO.cs index 5d0e9f6..0f77a48 100644 --- a/EntityFramework_LoL/Sources/DTO/ChampionDTO.cs +++ b/EntityFramework_LoL/Sources/DTO/ChampionDTO.cs @@ -1,4 +1,5 @@ using Model; +using System.Buffers.Text; namespace DTO { @@ -14,7 +15,7 @@ namespace DTO public string Name { get; set; } public string Bio { get; set; } public string Characteristics { get; set; } - public byte[] LargeImage { get; set; } + public string LargeImage { get; set; } public IEnumerable skins { get; set; } public IEnumerable skills { get; set; } diff --git a/EntityFramework_LoL/Sources/DTO/RuneDTO.cs b/EntityFramework_LoL/Sources/DTO/RuneDTO.cs index 495f618..f0a5d4f 100644 --- a/EntityFramework_LoL/Sources/DTO/RuneDTO.cs +++ b/EntityFramework_LoL/Sources/DTO/RuneDTO.cs @@ -1,4 +1,5 @@ using Model; +using Shared; using System; using System.Collections.Generic; using System.Linq; diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-wal b/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-wal deleted file mode 100644 index 50a0bc3ea592735653ec46043997d792b8fa7819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067112 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 diff --git a/EntityFramework_LoL/Sources/Entities/LolDbContext.cs b/EntityFramework_LoL/Sources/Entities/LolDbContext.cs index 51777b7..c2bcad4 100644 --- a/EntityFramework_LoL/Sources/Entities/LolDbContext.cs +++ b/EntityFramework_LoL/Sources/Entities/LolDbContext.cs @@ -21,6 +21,7 @@ namespace Entities protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { + Console.WriteLine("!IsConfigured..."); optionsBuilder.UseSqlite($"Data Source=Entities.Champions.db"); } } diff --git a/EntityFramework_LoL/Sources/Entities/Program.cs b/EntityFramework_LoL/Sources/Entities/Program.cs index 13fdf1b..61929c4 100644 --- a/EntityFramework_LoL/Sources/Entities/Program.cs +++ b/EntityFramework_LoL/Sources/Entities/Program.cs @@ -7,7 +7,7 @@ ChampionEntity imri = new() Bio = "Fou Furieux", Class = ChampionClass.Assassin }; -using (var context = new LolDbContext()) +using (var context = new LolDbContext(null)) { // Crée des nounours et les insère dans la base Console.WriteLine("Creates and inserts new Champion"); diff --git a/EntityFramework_LoL/Sources/EntityMappers/ChampionMapper.cs b/EntityFramework_LoL/Sources/EntityMappers/ChampionMapper.cs index 212007b..fe54594 100644 --- a/EntityFramework_LoL/Sources/EntityMappers/ChampionMapper.cs +++ b/EntityFramework_LoL/Sources/EntityMappers/ChampionMapper.cs @@ -19,7 +19,7 @@ namespace EntityMapper public static Champion ToModel(this ChampionEntity entity) { - return new(entity.Name, entity.Class, entity.Icon, entity.Image.Base64, entity.Bio); + return new(entity.Name, entity.Class, entity.Icon, "", entity.Bio); } } diff --git a/EntityFramework_LoL/Sources/EntityMappers/RuneMapper.cs b/EntityFramework_LoL/Sources/EntityMappers/RuneMapper.cs index 5f88a16..05c8bf2 100644 --- a/EntityFramework_LoL/Sources/EntityMappers/RuneMapper.cs +++ b/EntityFramework_LoL/Sources/EntityMappers/RuneMapper.cs @@ -3,21 +3,21 @@ using Model; namespace EntityMapper { - public static class RuneMapper + public static class RuneMapper + { + public static RuneEntity ToEntity(this Rune item) { - public static RuneEntity ToEntity(this Rune item) - { - throw new NotImplementedException(); - } - + throw new NotImplementedException(); + } - public static Rune ToModel(this RuneEntity entity) - { - throw new NotImplementedException(); - } + public static Rune ToModel(this RuneEntity entity) + { + throw new NotImplementedException(); } + } -} +} + diff --git a/EntityFramework_LoL/Sources/EntityMappers/SkinMapper.cs b/EntityFramework_LoL/Sources/EntityMappers/SkinMapper.cs index c3d91a3..a5ccc39 100644 --- a/EntityFramework_LoL/Sources/EntityMappers/SkinMapper.cs +++ b/EntityFramework_LoL/Sources/EntityMappers/SkinMapper.cs @@ -19,4 +19,3 @@ namespace EntityMapper } } -} diff --git a/EntityFramework_LoL/Sources/Model/Properties/launchSettings.json b/EntityFramework_LoL/Sources/Model/Properties/launchSettings.json new file mode 100644 index 0000000..de72c15 --- /dev/null +++ b/EntityFramework_LoL/Sources/Model/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "Model": { + "commandName": "Project" + } + } +} \ No newline at end of file